ciscollm-cli 1.0.2 → 1.0.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 (32) hide show
  1. package/README.md +30 -4
  2. package/dist/core/agent/AgentLoop.d.ts +1 -0
  3. package/dist/core/agent/AgentLoop.js +40 -3
  4. package/dist/core/agent/AgentLoop.js.map +1 -1
  5. package/dist/core/agent/MultiAgentCoordinator.js +9 -5
  6. package/dist/core/agent/MultiAgentCoordinator.js.map +1 -1
  7. package/dist/core/agent/PromptEngine.js +2 -2
  8. package/dist/core/rollback/TransactionManager.js +22 -18
  9. package/dist/core/rollback/TransactionManager.js.map +1 -1
  10. package/dist/index.js +154 -9
  11. package/dist/index.js.map +1 -1
  12. package/dist/infrastructure/protocols/BaseSession.d.ts +3 -0
  13. package/dist/infrastructure/protocols/BaseSession.js +14 -0
  14. package/dist/infrastructure/protocols/BaseSession.js.map +1 -1
  15. package/dist/infrastructure/protocols/CmlSession.d.ts +15 -0
  16. package/dist/infrastructure/protocols/CmlSession.js +416 -28
  17. package/dist/infrastructure/protocols/CmlSession.js.map +1 -1
  18. package/dist/infrastructure/protocols/MockSession.js +6 -2
  19. package/dist/infrastructure/protocols/MockSession.js.map +1 -1
  20. package/dist/infrastructure/protocols/NetconfSession.d.ts +67 -2
  21. package/dist/infrastructure/protocols/NetconfSession.js +530 -42
  22. package/dist/infrastructure/protocols/NetconfSession.js.map +1 -1
  23. package/dist/infrastructure/protocols/PlinkSerial.d.ts +2 -0
  24. package/dist/infrastructure/protocols/PlinkSerial.js +79 -39
  25. package/dist/infrastructure/protocols/PlinkSerial.js.map +1 -1
  26. package/dist/infrastructure/protocols/SshSession.d.ts +2 -0
  27. package/dist/infrastructure/protocols/SshSession.js +54 -18
  28. package/dist/infrastructure/protocols/SshSession.js.map +1 -1
  29. package/dist/infrastructure/protocols/TelnetSession.d.ts +2 -0
  30. package/dist/infrastructure/protocols/TelnetSession.js +45 -17
  31. package/dist/infrastructure/protocols/TelnetSession.js.map +1 -1
  32. package/package.json +4 -2
@@ -71,7 +71,7 @@ class PlinkSerialSession extends BaseSession_1.BaseSession {
71
71
  else if (fs.existsSync(nextToExecPath)) {
72
72
  plinkPath = nextToExecPath;
73
73
  }
74
- console.log(chalk_1.default.dim(`[PlinkSerial]: Spawning plink process at ${plinkPath} with serial port ${this.comPort}...`));
74
+ console.log(chalk_1.default.cyan(`❯ Spawning connection via serial port ${this.comPort}...`));
75
75
  this.process = (0, child_process_1.spawn)(plinkPath, args);
76
76
  this.process.stdin.setDefaultEncoding('utf-8');
77
77
  let finished = false;
@@ -80,6 +80,11 @@ class PlinkSerialSession extends BaseSession_1.BaseSession {
80
80
  return;
81
81
  finished = true;
82
82
  clearTimeout(connectTimer);
83
+ this.eventEmitter.removeListener('stream_updated', onStreamUpdate);
84
+ if (this.process) {
85
+ this.process.kill('SIGKILL');
86
+ this.process = null;
87
+ }
83
88
  const available = await PlinkSerialSession.listAvailableComPorts();
84
89
  const portMsg = available.length > 0
85
90
  ? `Active COM ports detected: ${available.join(', ')}`
@@ -87,54 +92,79 @@ class PlinkSerialSession extends BaseSession_1.BaseSession {
87
92
  reject(new Error(`${errMessage}. ${portMsg}`));
88
93
  };
89
94
  this.process.stdin.on('error', (err) => {
90
- console.error(chalk_1.default.dim(`[PlinkSerial Stdin Error]: ${err.message}`));
95
+ console.error(chalk_1.default.red(`⚠ Stdin Error: ${err.message}`));
91
96
  });
92
97
  this.process.stdout.on('data', (data) => this.handleData(data));
93
98
  this.process.stderr.on('data', (data) => {
94
- console.error(chalk_1.default.dim(`[Plink Stderr]: ${data.toString()}`));
99
+ console.error(chalk_1.default.red(`⚠ Stderr: ${data.toString()}`));
95
100
  });
96
101
  this.process.on('error', async (err) => {
97
102
  await cleanupAndReject(`Failed to start plink process: ${err.message}`);
98
103
  });
99
104
  this.process.on('close', async (code) => {
100
- console.log(chalk_1.default.dim(`[PlinkSerial]: plink process closed with code ${code}`));
105
+ console.log(chalk_1.default.gray(`❯ Plink process closed with code ${code}`));
101
106
  await cleanupAndReject(`plink process exited prematurely with code ${code}`);
102
107
  });
103
- const connectTimer = setTimeout(async () => {
104
- try {
105
- const match = constants_1.PROMPT_REGEX.exec(this.buffer);
106
- if (match) {
107
- this.updateStateFromPrompt(match[1]);
108
- console.log(chalk_1.default.dim(`[PlinkSerial]: Sending 'terminal length 0' to disable pagination...`));
109
- await this.execute('terminal length 0').catch(err => {
110
- console.warn(chalk_1.default.dim(`[PlinkSerial Warning]: Failed to set terminal length 0: ${err.message}`));
111
- });
112
- finished = true;
113
- this.process?.removeAllListeners('close');
114
- this.process?.on('close', (code) => {
115
- console.log(chalk_1.default.dim(`[PlinkSerial]: plink process closed with code ${code}`));
108
+ const onStreamUpdate = async () => {
109
+ const match = constants_1.PROMPT_REGEX.exec(this.buffer);
110
+ if (match) {
111
+ this.eventEmitter.removeListener('stream_updated', onStreamUpdate);
112
+ clearTimeout(connectTimer);
113
+ this.updateStateFromPrompt(match[1]);
114
+ console.log(chalk_1.default.cyan(`❯ Disabling pagination with 'terminal length 0'...`));
115
+ await this.execute('terminal length 0').catch(err => {
116
+ console.warn(chalk_1.default.yellow(`⚠ Failed to set terminal length 0: ${err.message}`));
117
+ });
118
+ finished = true;
119
+ if (this.process) {
120
+ this.process.removeAllListeners('close');
121
+ this.process.on('close', (code) => {
122
+ console.log(chalk_1.default.gray(`❯ Plink process closed with code ${code}`));
116
123
  });
117
- resolve();
118
- }
119
- else {
120
- await cleanupAndReject(`Failed to sync serial prompt on ${this.comPort}`);
121
124
  }
125
+ resolve();
122
126
  }
123
- catch (e) {
124
- await cleanupAndReject(`Connection synchronization failed: ${e.message}`);
125
- }
126
- }, 3000);
127
+ };
128
+ const connectTimer = setTimeout(async () => {
129
+ await cleanupAndReject(`Failed to sync serial prompt on ${this.comPort} due to timeout.`);
130
+ }, 15000);
131
+ this.eventEmitter.on('stream_updated', onStreamUpdate);
132
+ onStreamUpdate();
127
133
  });
128
134
  }
129
- handleData(data) {
130
- const chunk = data.toString('utf-8');
131
- this.buffer += chunk;
132
- if (constants_1.MORE_REGEX.test(this.buffer)) {
133
- if (this.process && !this.process.killed) {
135
+ cleanBuffer() {
136
+ const globalMoreRegex = new RegExp(constants_1.MORE_REGEX.source, 'gi');
137
+ if (globalMoreRegex.test(this.buffer)) {
138
+ if (this.process && !this.process.killed && this.process.stdin.writable) {
134
139
  this.process.stdin.write(' ');
135
140
  }
136
- this.buffer = this.buffer.replace(constants_1.MORE_REGEX, '');
141
+ this.buffer = this.buffer.replace(globalMoreRegex, '');
142
+ }
143
+ this.buffer = this.buffer.replace(/[\x08\b]+/g, '');
144
+ }
145
+ extractSyslogs() {
146
+ const lines = this.buffer.split(/\r?\n/);
147
+ if (lines.length <= 1)
148
+ return;
149
+ const completedLines = lines.slice(0, -1);
150
+ const lastLine = lines[lines.length - 1];
151
+ const remainingLines = [];
152
+ for (const line of completedLines) {
153
+ if (/%[A-Za-z0-9_]+-[0-7]-[A-Za-z0-9_]+:/.test(line)) {
154
+ console.log(chalk_1.default.yellow(`[Syslog Notification] ${line}`));
155
+ this.emitNotification(line);
156
+ }
157
+ else {
158
+ remainingLines.push(line);
159
+ }
137
160
  }
161
+ this.buffer = remainingLines.join('\n') + (remainingLines.length > 0 ? '\n' : '') + lastLine;
162
+ }
163
+ handleData(data) {
164
+ const chunk = data.toString('utf-8');
165
+ this.buffer += chunk;
166
+ this.cleanBuffer();
167
+ this.extractSyslogs();
138
168
  this.eventEmitter.emit('stream_updated');
139
169
  }
140
170
  async execute(command, timeoutMs = 15000) {
@@ -143,18 +173,22 @@ class PlinkSerialSession extends BaseSession_1.BaseSession {
143
173
  throw new Error('Process is inactive. Cannot execute command.');
144
174
  }
145
175
  return new Promise((resolve, reject) => {
146
- this.buffer = '';
176
+ const commandStartIndex = this.buffer.length;
147
177
  const timeout = setTimeout(() => {
148
178
  this.eventEmitter.removeAllListeners('stream_updated');
149
179
  reject(new Error(`Command execution timed out after ${timeoutMs}ms: "${command}"`));
150
180
  }, timeoutMs);
151
181
  this.eventEmitter.on('stream_updated', () => {
152
- const match = constants_1.PROMPT_REGEX.exec(this.buffer);
182
+ const commandOutput = this.buffer.slice(commandStartIndex);
183
+ const match = constants_1.PROMPT_REGEX.exec(commandOutput);
153
184
  if (match) {
154
185
  clearTimeout(timeout);
155
186
  this.eventEmitter.removeAllListeners('stream_updated');
156
- const fullOutput = this.buffer;
187
+ const fullOutput = commandOutput;
157
188
  this.updateStateFromPrompt(match[1]);
189
+ const matchIndex = commandOutput.indexOf(match[0]);
190
+ const newStart = commandStartIndex + matchIndex + match[0].length;
191
+ this.buffer = this.buffer.slice(newStart);
158
192
  resolve(fullOutput);
159
193
  }
160
194
  });
@@ -182,9 +216,15 @@ class PlinkSerialSession extends BaseSession_1.BaseSession {
182
216
  }
183
217
  async disconnect() {
184
218
  if (this.process) {
185
- console.log(chalk_1.default.dim('[PlinkSerial]: Detaching sub-process pipelines...'));
186
- this.process.kill('SIGTERM');
219
+ console.log(chalk_1.default.gray(`❯ Detaching sub-process pipelines...`));
220
+ const proc = this.process;
187
221
  this.process = null;
222
+ proc.kill('SIGTERM');
223
+ setTimeout(() => {
224
+ if (!proc.killed) {
225
+ proc.kill('SIGKILL');
226
+ }
227
+ }, 500);
188
228
  }
189
229
  }
190
230
  getProcess() {
@@ -193,7 +233,7 @@ class PlinkSerialSession extends BaseSession_1.BaseSession {
193
233
  static async listAvailableComPorts() {
194
234
  return new Promise((resolve) => {
195
235
  const { exec } = require('child_process');
196
- const cmd = 'powershell -Command "Get-CimInstance Win32_PnPEntity | Where-Object { $_.Caption -match \'USB.*Serial|USB-to-Serial|Prolific|CH340|FTDI|Silicon Labs|CP210\' } | Select-Object -ExpandProperty Caption"';
236
+ const cmd = 'reg query HKLM\\HARDWARE\\DEVICEMAP\\SERIALCOMM';
197
237
  exec(cmd, (error, stdout) => {
198
238
  if (error) {
199
239
  resolve([]);
@@ -202,9 +242,9 @@ class PlinkSerialSession extends BaseSession_1.BaseSession {
202
242
  const ports = [];
203
243
  const lines = stdout.split(/\r?\n/).map(l => l.trim()).filter(l => l.length > 0);
204
244
  for (const line of lines) {
205
- const match = /\((COM\d+)\)/i.exec(line);
245
+ const match = /\b(COM\d+)\b/i.exec(line);
206
246
  if (match) {
207
- ports.push(match[1]);
247
+ ports.push(match[1].toUpperCase());
208
248
  }
209
249
  }
210
250
  resolve(ports);
@@ -1 +1 @@
1
- {"version":3,"file":"PlinkSerial.js","sourceRoot":"","sources":["../../../src/infrastructure/protocols/PlinkSerial.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlinkSerial.js","sourceRoot":"","sources":["../../../src/infrastructure/protocols/PlinkSerial.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ export declare class SshSession extends BaseSession {
13
13
  privateKey?: string;
14
14
  });
15
15
  connect(): Promise<void>;
16
+ private cleanBuffer;
17
+ private extractSyslogs;
16
18
  private handleData;
17
19
  execute(command: string, timeoutMs?: number): Promise<string>;
18
20
  disconnect(): Promise<void>;
@@ -23,7 +23,7 @@ class SshSession extends BaseSession_1.BaseSession {
23
23
  return new Promise((resolve, reject) => {
24
24
  this.client = new ssh2_1.Client();
25
25
  this.client.on('ready', () => {
26
- console.log(chalk_1.default.dim('[SshSession]: SSH connection ready. Launching interactive shell...'));
26
+ console.log(chalk_1.default.cyan(`❯ SSH connection ready to host ${this.config.host}. Launching interactive shell...`));
27
27
  this.client.shell((err, stream) => {
28
28
  if (err) {
29
29
  return reject(new Error(`Failed to open SSH shell channel: ${err.message}`));
@@ -31,19 +31,27 @@ class SshSession extends BaseSession_1.BaseSession {
31
31
  this.channel = stream;
32
32
  this.channel.on('data', (data) => this.handleData(data));
33
33
  this.channel.on('close', () => {
34
- console.log(chalk_1.default.dim('[SshSession]: SSH channel closed.'));
34
+ console.log(chalk_1.default.gray(`❯ SSH channel closed.`));
35
35
  });
36
- setTimeout(async () => {
36
+ const onStreamUpdate = async () => {
37
37
  const match = constants_1.PROMPT_REGEX.exec(this.buffer);
38
38
  if (match) {
39
+ this.eventEmitter.removeListener('stream_updated', onStreamUpdate);
40
+ clearTimeout(connectTimeout);
39
41
  this.updateStateFromPrompt(match[1]);
42
+ console.log(chalk_1.default.cyan(`❯ Disabling pagination with 'terminal length 0'...`));
43
+ await this.execute('terminal length 0').catch(err => {
44
+ console.warn(chalk_1.default.yellow(`⚠ Failed to set terminal length 0: ${err.message}`));
45
+ });
46
+ resolve();
40
47
  }
41
- console.log(chalk_1.default.dim(`[SshSession]: Disabling pagination with 'terminal length 0'...`));
42
- await this.execute('terminal length 0').catch(err => {
43
- console.warn(chalk_1.default.dim(`[SshSession Warning]: Failed to set terminal length 0: ${err.message}`));
44
- });
45
- resolve();
46
- }, 2000);
48
+ };
49
+ const connectTimeout = setTimeout(() => {
50
+ this.eventEmitter.removeListener('stream_updated', onStreamUpdate);
51
+ reject(new Error(`SSH prompt detection timed out after 15000ms. Received: ${this.buffer}`));
52
+ }, 15000);
53
+ this.eventEmitter.on('stream_updated', onStreamUpdate);
54
+ onStreamUpdate();
47
55
  });
48
56
  });
49
57
  this.client.on('error', (err) => {
@@ -59,15 +67,39 @@ class SshSession extends BaseSession_1.BaseSession {
59
67
  });
60
68
  });
61
69
  }
62
- handleData(data) {
63
- const chunk = data.toString('utf-8');
64
- this.buffer += chunk;
65
- if (constants_1.MORE_REGEX.test(this.buffer)) {
70
+ cleanBuffer() {
71
+ const globalMoreRegex = new RegExp(constants_1.MORE_REGEX.source, 'gi');
72
+ if (globalMoreRegex.test(this.buffer)) {
66
73
  if (this.channel) {
67
74
  this.channel.write(' ');
68
75
  }
69
- this.buffer = this.buffer.replace(constants_1.MORE_REGEX, '');
76
+ this.buffer = this.buffer.replace(globalMoreRegex, '');
70
77
  }
78
+ this.buffer = this.buffer.replace(/[\x08\b]+/g, '');
79
+ }
80
+ extractSyslogs() {
81
+ const lines = this.buffer.split(/\r?\n/);
82
+ if (lines.length <= 1)
83
+ return;
84
+ const completedLines = lines.slice(0, -1);
85
+ const lastLine = lines[lines.length - 1];
86
+ const remainingLines = [];
87
+ for (const line of completedLines) {
88
+ if (/%[A-Za-z0-9_]+-[0-7]-[A-Za-z0-9_]+:/.test(line)) {
89
+ console.log(chalk_1.default.yellow(`[Syslog Notification] ${line}`));
90
+ this.emitNotification(line);
91
+ }
92
+ else {
93
+ remainingLines.push(line);
94
+ }
95
+ }
96
+ this.buffer = remainingLines.join('\n') + (remainingLines.length > 0 ? '\n' : '') + lastLine;
97
+ }
98
+ handleData(data) {
99
+ const chunk = data.toString('utf-8');
100
+ this.buffer += chunk;
101
+ this.cleanBuffer();
102
+ this.extractSyslogs();
71
103
  this.eventEmitter.emit('stream_updated');
72
104
  }
73
105
  async execute(command, timeoutMs = 15000) {
@@ -76,18 +108,22 @@ class SshSession extends BaseSession_1.BaseSession {
76
108
  throw new Error('SSH channel is inactive. Cannot execute command.');
77
109
  }
78
110
  return new Promise((resolve, reject) => {
79
- this.buffer = '';
111
+ const commandStartIndex = this.buffer.length;
80
112
  const timeout = setTimeout(() => {
81
113
  this.eventEmitter.removeAllListeners('stream_updated');
82
114
  reject(new Error(`SSH Command execution timed out after ${timeoutMs}ms: "${command}"`));
83
115
  }, timeoutMs);
84
116
  this.eventEmitter.on('stream_updated', () => {
85
- const match = constants_1.PROMPT_REGEX.exec(this.buffer);
117
+ const commandOutput = this.buffer.slice(commandStartIndex);
118
+ const match = constants_1.PROMPT_REGEX.exec(commandOutput);
86
119
  if (match) {
87
120
  clearTimeout(timeout);
88
121
  this.eventEmitter.removeAllListeners('stream_updated');
89
- const fullOutput = this.buffer;
122
+ const fullOutput = commandOutput;
90
123
  this.updateStateFromPrompt(match[1]);
124
+ const matchIndex = commandOutput.indexOf(match[0]);
125
+ const newStart = commandStartIndex + matchIndex + match[0].length;
126
+ this.buffer = this.buffer.slice(newStart);
91
127
  resolve(fullOutput);
92
128
  }
93
129
  });
@@ -103,7 +139,7 @@ class SshSession extends BaseSession_1.BaseSession {
103
139
  this.client.end();
104
140
  this.client = null;
105
141
  }
106
- console.log(chalk_1.default.dim('[SshSession]: SSH Session disconnected cleanly.'));
142
+ console.log(chalk_1.default.green(`✔ SSH Session to ${this.config.host} disconnected cleanly.`));
107
143
  }
108
144
  }
109
145
  exports.SshSession = SshSession;
@@ -1 +1 @@
1
- {"version":3,"file":"SshSession.js","sourceRoot":"","sources":["../../../src/infrastructure/protocols/SshSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SshSession.js","sourceRoot":"","sources":["../../../src/infrastructure/protocols/SshSession.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export declare class TelnetSession extends BaseSession {
11
11
  password?: string;
12
12
  });
13
13
  connect(): Promise<void>;
14
+ private cleanBuffer;
15
+ private extractSyslogs;
14
16
  private handleRawData;
15
17
  execute(command: string, timeoutMs?: number): Promise<string>;
16
18
  disconnect(): Promise<void>;
@@ -54,16 +54,16 @@ class TelnetSession extends BaseSession_1.BaseSession {
54
54
  async connect() {
55
55
  return new Promise((resolve, reject) => {
56
56
  const port = this.config.port || 23;
57
- console.log(chalk_1.default.dim(`[TelnetSession]: Connecting to ${this.config.host}:${port}...`));
57
+ console.log(chalk_1.default.cyan(`❯ Connecting to telnet host ${this.config.host}:${port}...`));
58
58
  this.socket = net.createConnection({ host: this.config.host, port }, () => {
59
- console.log(chalk_1.default.dim('[TelnetSession]: TCP socket connection established.'));
59
+ console.log(chalk_1.default.green(`✔ TCP socket connection established.`));
60
60
  });
61
61
  this.socket.on('data', (data) => this.handleRawData(data));
62
62
  this.socket.on('error', (err) => {
63
63
  reject(new Error(`Telnet Socket Error: ${err.message}`));
64
64
  });
65
65
  this.socket.on('close', () => {
66
- console.log(chalk_1.default.dim('[TelnetSession]: Socket connection closed.'));
66
+ console.log(chalk_1.default.gray(`❯ Telnet socket connection closed.`));
67
67
  });
68
68
  let loginState = 'USER';
69
69
  const connectTimeout = setTimeout(() => {
@@ -73,13 +73,13 @@ class TelnetSession extends BaseSession_1.BaseSession {
73
73
  const checkState = async () => {
74
74
  const lowerBuf = this.buffer.toLowerCase();
75
75
  if (loginState === 'USER' && (lowerBuf.includes('username:') || lowerBuf.includes('login:'))) {
76
- console.log(chalk_1.default.dim('[TelnetSession]: Sending username...'));
76
+ console.log(chalk_1.default.cyan(`❯ Sending username...`));
77
77
  this.socket?.write(`${this.config.username || ''}\r\n`);
78
78
  this.buffer = '';
79
79
  loginState = 'PASS';
80
80
  }
81
81
  else if (loginState === 'PASS' && lowerBuf.includes('password:')) {
82
- console.log(chalk_1.default.dim('[TelnetSession]: Sending password...'));
82
+ console.log(chalk_1.default.cyan(`❯ Sending password...`));
83
83
  this.socket?.write(`${this.config.password || ''}\r\n`);
84
84
  this.buffer = '';
85
85
  loginState = 'PROMPT';
@@ -90,9 +90,9 @@ class TelnetSession extends BaseSession_1.BaseSession {
90
90
  clearTimeout(connectTimeout);
91
91
  this.eventEmitter.removeListener('stream_updated', checkState);
92
92
  this.updateStateFromPrompt(match[1]);
93
- console.log(chalk_1.default.dim(`[TelnetSession]: Logged in successfully. Syncing terminal settings...`));
93
+ console.log(chalk_1.default.green(`✔ Logged in successfully. Syncing terminal settings...`));
94
94
  await this.execute('terminal length 0').catch(err => {
95
- console.warn(chalk_1.default.dim(`[TelnetSession Warning]: Failed to set terminal length 0: ${err.message}`));
95
+ console.warn(chalk_1.default.yellow(`⚠ Failed to set terminal length 0: ${err.message}`));
96
96
  });
97
97
  resolve();
98
98
  }
@@ -101,6 +101,34 @@ class TelnetSession extends BaseSession_1.BaseSession {
101
101
  this.eventEmitter.on('stream_updated', checkState);
102
102
  });
103
103
  }
104
+ cleanBuffer() {
105
+ const globalMoreRegex = new RegExp(constants_1.MORE_REGEX.source, 'gi');
106
+ if (globalMoreRegex.test(this.buffer)) {
107
+ if (this.socket && !this.socket.destroyed) {
108
+ this.socket.write(' ');
109
+ }
110
+ this.buffer = this.buffer.replace(globalMoreRegex, '');
111
+ }
112
+ this.buffer = this.buffer.replace(/[\x08\b]+/g, '');
113
+ }
114
+ extractSyslogs() {
115
+ const lines = this.buffer.split(/\r?\n/);
116
+ if (lines.length <= 1)
117
+ return;
118
+ const completedLines = lines.slice(0, -1);
119
+ const lastLine = lines[lines.length - 1];
120
+ const remainingLines = [];
121
+ for (const line of completedLines) {
122
+ if (/%[A-Za-z0-9_]+-[0-7]-[A-Za-z0-9_]+:/.test(line)) {
123
+ console.log(chalk_1.default.yellow(`[Syslog Notification] ${line}`));
124
+ this.emitNotification(line);
125
+ }
126
+ else {
127
+ remainingLines.push(line);
128
+ }
129
+ }
130
+ this.buffer = remainingLines.join('\n') + (remainingLines.length > 0 ? '\n' : '') + lastLine;
131
+ }
104
132
  handleRawData(data) {
105
133
  const cleaned = [];
106
134
  let i = 0;
@@ -132,12 +160,8 @@ class TelnetSession extends BaseSession_1.BaseSession {
132
160
  if (cleaned.length > 0) {
133
161
  const chunk = Buffer.from(cleaned).toString('utf-8');
134
162
  this.buffer += chunk;
135
- if (constants_1.MORE_REGEX.test(this.buffer)) {
136
- if (this.socket && !this.socket.destroyed) {
137
- this.socket.write(' ');
138
- }
139
- this.buffer = this.buffer.replace(constants_1.MORE_REGEX, '');
140
- }
163
+ this.cleanBuffer();
164
+ this.extractSyslogs();
141
165
  this.eventEmitter.emit('stream_updated');
142
166
  }
143
167
  }
@@ -147,18 +171,22 @@ class TelnetSession extends BaseSession_1.BaseSession {
147
171
  throw new Error('Telnet socket is inactive. Cannot execute command.');
148
172
  }
149
173
  return new Promise((resolve, reject) => {
150
- this.buffer = '';
174
+ const commandStartIndex = this.buffer.length;
151
175
  const timeout = setTimeout(() => {
152
176
  this.eventEmitter.removeAllListeners('stream_updated');
153
177
  reject(new Error(`Telnet command execution timed out after ${timeoutMs}ms: "${command}"`));
154
178
  }, timeoutMs);
155
179
  this.eventEmitter.on('stream_updated', () => {
156
- const match = constants_1.PROMPT_REGEX.exec(this.buffer);
180
+ const commandOutput = this.buffer.slice(commandStartIndex);
181
+ const match = constants_1.PROMPT_REGEX.exec(commandOutput);
157
182
  if (match) {
158
183
  clearTimeout(timeout);
159
184
  this.eventEmitter.removeAllListeners('stream_updated');
160
- const fullOutput = this.buffer;
185
+ const fullOutput = commandOutput;
161
186
  this.updateStateFromPrompt(match[1]);
187
+ const matchIndex = commandOutput.indexOf(match[0]);
188
+ const newStart = commandStartIndex + matchIndex + match[0].length;
189
+ this.buffer = this.buffer.slice(newStart);
162
190
  resolve(fullOutput);
163
191
  }
164
192
  });
@@ -170,7 +198,7 @@ class TelnetSession extends BaseSession_1.BaseSession {
170
198
  this.socket.destroy();
171
199
  this.socket = null;
172
200
  }
173
- console.log(chalk_1.default.dim('[TelnetSession]: Telnet Session disconnected.'));
201
+ console.log(chalk_1.default.green(`✔ Telnet Session to ${this.config.host} disconnected cleanly.`));
174
202
  }
175
203
  }
176
204
  exports.TelnetSession = TelnetSession;
@@ -1 +1 @@
1
- {"version":3,"file":"TelnetSession.js","sourceRoot":"","sources":["../../../src/infrastructure/protocols/TelnetSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TelnetSession.js","sourceRoot":"","sources":["../../../src/infrastructure/protocols/TelnetSession.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ciscollm-cli",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Cisco IOS automation agent CLI with mock simulation, guardrails, and LLM tool-calling support.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -37,12 +37,14 @@
37
37
  "inquirer": "^8.2.6",
38
38
  "ora": "^5.4.1",
39
39
  "pdf-parse": "^2.4.5",
40
- "ssh2": "^1.15.0"
40
+ "ssh2": "^1.15.0",
41
+ "xml2js": "^0.6.2"
41
42
  },
42
43
  "devDependencies": {
43
44
  "@types/inquirer": "^8.2.10",
44
45
  "@types/node": "^20.12.7",
45
46
  "@types/ssh2": "^1.15.0",
47
+ "@types/xml2js": "^0.4.14",
46
48
  "ts-node": "^10.9.2",
47
49
  "typescript": "^5.4.5"
48
50
  }