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
@@ -1,12 +1,59 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
39
  exports.CmlSession = void 0;
4
40
  const BaseSession_1 = require("./BaseSession");
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const https = __importStar(require("https"));
43
+ const net = __importStar(require("net"));
44
+ const PREFERRED_NODE_DEFS = ['iosv', 'iol-xe', 'csr1000v', 'cat8000v', 'iosxrv9000'];
45
+ const NODE_BOOT_TIMEOUT_MS = 5 * 60 * 1000;
46
+ const NODE_BOOT_POLL_MS = 8000;
5
47
  class CmlSession extends BaseSession_1.BaseSession {
6
48
  apiUrl;
7
49
  username;
8
50
  password;
51
+ token = null;
9
52
  activeLabId = null;
53
+ ownedLab = false;
54
+ activeNode = null;
55
+ sshClient = null;
56
+ sshStream = null;
10
57
  constructor(apiUrl, username, password) {
11
58
  super();
12
59
  this.apiUrl = apiUrl;
@@ -14,46 +61,387 @@ class CmlSession extends BaseSession_1.BaseSession {
14
61
  this.password = password;
15
62
  this.state = {
16
63
  currentMode: 'PRIVILEGED_EXEC',
17
- hostname: `cml-sandbox`,
18
- prompt: `CML@${apiUrl}`
64
+ hostname: 'cml-sandbox',
65
+ prompt: 'cml-sandbox#'
19
66
  };
20
67
  }
68
+ async request(method, path, body) {
69
+ const base = this.apiUrl.replace(/\/$/, '');
70
+ const url = new URL(`${base}/api/v0${path}`);
71
+ return new Promise((resolve, reject) => {
72
+ const payload = body ? JSON.stringify(body) : undefined;
73
+ const headers = {
74
+ 'Content-Type': 'application/json',
75
+ 'Accept': 'application/json'
76
+ };
77
+ if (this.token)
78
+ headers['Authorization'] = `Bearer ${this.token}`;
79
+ if (payload)
80
+ headers['Content-Length'] = Buffer.byteLength(payload).toString();
81
+ const opts = {
82
+ hostname: url.hostname,
83
+ port: Number(url.port) || 443,
84
+ path: url.pathname + url.search,
85
+ method,
86
+ headers,
87
+ rejectUnauthorized: false
88
+ };
89
+ const req = https.request(opts, (res) => {
90
+ let data = '';
91
+ res.on('data', (c) => (data += c));
92
+ res.on('end', () => {
93
+ if (res.statusCode && res.statusCode >= 400) {
94
+ return reject(new Error(`CML API Error ${res.statusCode} on ${method} ${path}: ${data}`));
95
+ }
96
+ try {
97
+ resolve(data ? JSON.parse(data) : {});
98
+ }
99
+ catch {
100
+ resolve(data);
101
+ }
102
+ });
103
+ });
104
+ req.on('error', (e) => reject(e));
105
+ if (payload)
106
+ req.write(payload);
107
+ req.end();
108
+ });
109
+ }
21
110
  async connect() {
22
- console.log(`[CmlSession]: Authenticating with Cisco Modeling Labs API at ${this.apiUrl}...`);
23
- console.log(`[CmlSession]: Token generated successfully.`);
24
- console.log(`[CmlSession]: Spawning dry-run sandbox lab "ciscollm-sandbox-twin"...`);
25
- this.activeLabId = 'lab-uuid-12345';
26
- return Promise.resolve();
27
- }
28
- async execute(command, timeoutMs) {
29
- console.log(`[CmlSession - Sandbox Node]: Simulating command: "${command}"...`);
111
+ const base = this.apiUrl.replace(/\/$/, '');
112
+ console.log(chalk_1.default.cyan(`❯ Connecting to Cisco Modeling Labs at ${chalk_1.default.bold(base)}...`));
113
+ const raw = await this.request('POST', '/authenticate', {
114
+ username: this.username || 'admin',
115
+ password: this.password || ''
116
+ });
117
+ this.token = typeof raw === 'string' ? raw : raw.token || String(raw);
118
+ console.log(chalk_1.default.green(`✔ Authenticated as ${chalk_1.default.bold(this.username || 'admin')}`));
119
+ console.log(chalk_1.default.cyan(`❯ Scanning CML for running labs and nodes...`));
120
+ const labIds = await this.request('GET', '/labs');
121
+ const runningNode = await this.findBestRunningNode(labIds || []);
122
+ if (runningNode) {
123
+ this.activeNode = runningNode;
124
+ this.activeLabId = runningNode.labId;
125
+ this.ownedLab = false;
126
+ this.state.hostname = runningNode.label;
127
+ this.state.prompt = `${runningNode.label}#`;
128
+ console.log(chalk_1.default.green(`✔ Found running node: ${chalk_1.default.bold(runningNode.label)} ` +
129
+ `[${runningNode.nodeDefinition}] in lab "${runningNode.labTitle}"`));
130
+ if (runningNode.mgmtIp) {
131
+ try {
132
+ await this.openSsh(runningNode.mgmtIp, runningNode.mgmtPort || 22);
133
+ console.log(chalk_1.default.green(`✔ SSH reachable at ${runningNode.label} (${runningNode.mgmtIp})`));
134
+ }
135
+ catch {
136
+ this.sshStream = null;
137
+ }
138
+ }
139
+ }
140
+ else {
141
+ const node = await this.provisionNode();
142
+ this.activeNode = node;
143
+ }
144
+ }
145
+ async provisionNode() {
146
+ console.log(chalk_1.default.cyan(`❯ No running nodes found — provisioning a new Cisco node on CML...`));
147
+ const availDefs = await this.request('GET', '/simplified_node_definitions').catch(() => []);
148
+ const defIds = (availDefs || []).map((d) => d.id);
149
+ const chosenDef = PREFERRED_NODE_DEFS.find(d => defIds.includes(d)) || defIds[0];
150
+ if (!chosenDef) {
151
+ throw new Error('No node definitions available on this CML server.');
152
+ }
153
+ console.log(chalk_1.default.cyan(`❯ Creating sandbox lab with node type: ${chalk_1.default.bold(chosenDef)}...`));
154
+ const labRes = await this.request('POST', '/labs', {
155
+ title: `ciscollm-${chosenDef}-${Date.now()}`,
156
+ description: 'Auto-provisioned by ciscollm-cli.'
157
+ });
158
+ this.activeLabId = labRes.id;
159
+ this.ownedLab = true;
160
+ const nodeRes = await this.request('POST', `/labs/${this.activeLabId}/nodes`, {
161
+ label: `${chosenDef}-0`,
162
+ node_definition: chosenDef,
163
+ x: 0,
164
+ y: 0
165
+ });
166
+ const nodeId = nodeRes.id;
167
+ console.log(chalk_1.default.cyan(`❯ Starting lab ${this.activeLabId}...`));
168
+ await this.request('PUT', `/labs/${this.activeLabId}/start`);
169
+ const node = await this.waitForNodeBoot(this.activeLabId, nodeId, chosenDef);
170
+ console.log(chalk_1.default.green(`✔ Node ${chalk_1.default.bold(node.label)} is ${chalk_1.default.bold(node.state)} and ready.`));
171
+ return node;
172
+ }
173
+ async waitForNodeBoot(labId, nodeId, defId) {
174
+ const deadline = Date.now() + NODE_BOOT_TIMEOUT_MS;
175
+ let dots = 0;
176
+ process.stdout.write(chalk_1.default.cyan(`❯ Waiting for node to boot`));
177
+ while (Date.now() < deadline) {
178
+ const node = await this.request('GET', `/labs/${labId}/nodes/${nodeId}`);
179
+ const state = node.state || '';
180
+ if (state === 'BOOTED') {
181
+ process.stdout.write(`\n`);
182
+ const lab = await this.request('GET', `/labs/${labId}`);
183
+ const cmlNode = {
184
+ id: nodeId,
185
+ label: node.label || defId,
186
+ state,
187
+ nodeDefinition: defId,
188
+ labId,
189
+ labTitle: lab.title || labId
190
+ };
191
+ this.state.hostname = cmlNode.label;
192
+ this.state.prompt = `${cmlNode.label}#`;
193
+ return cmlNode;
194
+ }
195
+ dots++;
196
+ process.stdout.write(chalk_1.default.dim('.'));
197
+ await new Promise(r => setTimeout(r, NODE_BOOT_POLL_MS));
198
+ }
199
+ process.stdout.write(`\n`);
200
+ throw new Error(`Node did not reach BOOTED state within ${NODE_BOOT_TIMEOUT_MS / 60000} minutes.`);
201
+ }
202
+ async findBestRunningNode(labIds) {
203
+ const candidates = [];
204
+ for (const labId of labIds) {
205
+ try {
206
+ const lab = await this.request('GET', `/labs/${labId}`);
207
+ if (!lab || lab.state === 'STOPPED')
208
+ continue;
209
+ const nodeIds = await this.request('GET', `/labs/${labId}/nodes`);
210
+ if (!nodeIds || nodeIds.length === 0)
211
+ continue;
212
+ for (const nodeId of nodeIds) {
213
+ try {
214
+ const node = await this.request('GET', `/labs/${labId}/nodes/${nodeId}`);
215
+ if (!node || node.state === 'STOPPED' || node.state === 'DEFINED_ON_CORE') {
216
+ continue;
217
+ }
218
+ const candidate = {
219
+ id: nodeId,
220
+ label: node.label || nodeId,
221
+ state: node.state || 'UNKNOWN',
222
+ nodeDefinition: node.node_definition || 'unknown',
223
+ labId,
224
+ labTitle: lab.title || labId
225
+ };
226
+ try {
227
+ const l3 = await this.request('GET', `/labs/${labId}/nodes/${nodeId}/layer3_addresses`);
228
+ if (l3 && typeof l3 === 'object') {
229
+ const addresses = Object.values(l3);
230
+ for (const iface of addresses) {
231
+ if (iface?.ip4 && iface.ip4.length > 0) {
232
+ const ip = iface.ip4[0].split('/')[0];
233
+ candidate.mgmtIp = ip;
234
+ break;
235
+ }
236
+ }
237
+ }
238
+ }
239
+ catch { }
240
+ candidates.push(candidate);
241
+ }
242
+ catch { }
243
+ }
244
+ }
245
+ catch { }
246
+ }
247
+ if (candidates.length === 0)
248
+ return null;
249
+ const sorted = candidates.sort((a, b) => {
250
+ const stateScore = (s) => s === 'BOOTED' ? 3 : s === 'STARTED' ? 2 : s === 'DEFINED_ON_CORE' ? 1 : 0;
251
+ const sd = stateScore(b.state) - stateScore(a.state);
252
+ if (sd !== 0)
253
+ return sd;
254
+ return (b.mgmtIp ? 1 : 0) - (a.mgmtIp ? 1 : 0);
255
+ });
256
+ return sorted[0];
257
+ }
258
+ openSsh(host, port) {
259
+ return new Promise((resolve, reject) => {
260
+ const socket = new net.Socket();
261
+ const timeout = setTimeout(() => {
262
+ socket.destroy();
263
+ reject(new Error(`TCP connection to ${host}:${port} timed out`));
264
+ }, 4000);
265
+ socket.connect(port, host, () => {
266
+ clearTimeout(timeout);
267
+ socket.destroy();
268
+ resolve();
269
+ });
270
+ socket.on('error', (e) => {
271
+ clearTimeout(timeout);
272
+ reject(e);
273
+ });
274
+ });
275
+ }
276
+ async execute(command, timeoutMs = 8000) {
30
277
  const lower = command.toLowerCase().trim();
31
- if (lower.startsWith('cml-deploy')) {
32
- return JSON.stringify({
33
- status: 'success',
34
- lab_id: this.activeLabId,
35
- nodes_updated: ['Router1', 'Switch1'],
36
- message: 'Digital Twin deployment validation passed.'
278
+ if (lower === 'cml-status' || lower === 'cml status') {
279
+ return this.getCmlStatus();
280
+ }
281
+ if (lower === 'cml-labs' || lower === 'cml labs') {
282
+ return this.listLabs();
283
+ }
284
+ if (lower.startsWith('cml-node ') || lower.startsWith('cml node ')) {
285
+ const nodeLabel = command.split(' ').slice(1).join(' ');
286
+ return this.switchNode(nodeLabel);
287
+ }
288
+ if (lower === 'cml-topology' || lower === 'cml topology') {
289
+ return this.getTopology();
290
+ }
291
+ const prompt = this.state.prompt || `${this.state.hostname}#`;
292
+ console.log(`${chalk_1.default.blue('❯')} ${chalk_1.default.bold.yellow(prompt)} ${chalk_1.default.white(command)}`);
293
+ if (this.activeNode?.mgmtIp && this.sshStream === null) {
294
+ try {
295
+ const output = await this.execViaSsh(this.activeNode.mgmtIp, this.activeNode.mgmtPort || 22, command, timeoutMs);
296
+ if (output)
297
+ return output;
298
+ }
299
+ catch (e) {
300
+ console.log(chalk_1.default.dim(` [SSH fallback: ${e.message}]`));
301
+ }
302
+ }
303
+ if (this.activeLabId && this.activeNode) {
304
+ try {
305
+ const log = await this.request('GET', `/labs/${this.activeLabId}/nodes/${this.activeNode.id}/consoles/0/log`);
306
+ const lines = (log || '').trim().split('\n');
307
+ return lines.slice(-30).join('\n') || '';
308
+ }
309
+ catch {
310
+ return '';
311
+ }
312
+ }
313
+ return '';
314
+ }
315
+ execViaSsh(host, port, command, timeoutMs) {
316
+ return new Promise((resolve, reject) => {
317
+ const { spawn } = require('child_process');
318
+ const args = [
319
+ '-o', 'StrictHostKeyChecking=no',
320
+ '-o', 'UserKnownHostsFile=/dev/null',
321
+ '-o', `ConnectTimeout=${Math.ceil(timeoutMs / 1000)}`,
322
+ '-p', String(port),
323
+ `${this.username || 'admin'}@${host}`,
324
+ command
325
+ ];
326
+ const proc = spawn('ssh', args, { env: process.env });
327
+ let out = '';
328
+ let err = '';
329
+ proc.stdout.on('data', (d) => { out += d.toString(); });
330
+ proc.stderr.on('data', (d) => { err += d.toString(); });
331
+ const timer = setTimeout(() => {
332
+ proc.kill();
333
+ resolve(out || '');
334
+ }, timeoutMs);
335
+ proc.on('close', () => {
336
+ clearTimeout(timer);
337
+ if (out)
338
+ resolve(out);
339
+ else if (err && !err.includes('Warning:'))
340
+ reject(new Error(err.trim()));
341
+ else
342
+ resolve('');
37
343
  });
344
+ });
345
+ }
346
+ async getCmlStatus() {
347
+ if (!this.activeLabId) {
348
+ return JSON.stringify({ status: 'not_connected', mode: 'config-only' });
38
349
  }
39
- if (lower.startsWith('cml-status')) {
350
+ try {
351
+ const lab = await this.request('GET', `/labs/${this.activeLabId}`);
352
+ const stats = await this.request('GET', `/labs/${this.activeLabId}/simulation_stats`).catch(() => null);
40
353
  return JSON.stringify({
41
- status: 'running',
354
+ status: lab.state,
42
355
  lab_id: this.activeLabId,
43
- active_nodes: 3,
44
- links_up: 2
45
- });
356
+ title: lab.title,
357
+ node: this.activeNode
358
+ ? { id: this.activeNode.id, label: this.activeNode.label, state: this.activeNode.state }
359
+ : null,
360
+ stats
361
+ }, null, 2);
362
+ }
363
+ catch (e) {
364
+ return JSON.stringify({ error: e.message });
365
+ }
366
+ }
367
+ async listLabs() {
368
+ try {
369
+ const labIds = await this.request('GET', '/labs');
370
+ const details = await Promise.all((labIds || []).map(async (id) => {
371
+ try {
372
+ const lab = await this.request('GET', `/labs/${id}`);
373
+ const nodes = await this.request('GET', `/labs/${id}/nodes`);
374
+ return { id, title: lab.title, state: lab.state, nodeCount: (nodes || []).length };
375
+ }
376
+ catch {
377
+ return { id, error: 'fetch_failed' };
378
+ }
379
+ }));
380
+ return JSON.stringify(details, null, 2);
381
+ }
382
+ catch (e) {
383
+ return JSON.stringify({ error: e.message });
384
+ }
385
+ }
386
+ async switchNode(label) {
387
+ if (!this.activeLabId)
388
+ return JSON.stringify({ error: 'no_lab_connected' });
389
+ try {
390
+ const result = await this.request('GET', `/labs/${this.activeLabId}/find/node/label/${encodeURIComponent(label)}`);
391
+ if (result && result.node_id) {
392
+ const node = await this.request('GET', `/labs/${this.activeLabId}/nodes/${result.node_id}`);
393
+ this.activeNode = {
394
+ id: result.node_id,
395
+ label: node.label,
396
+ state: node.state,
397
+ nodeDefinition: node.node_definition,
398
+ labId: this.activeLabId,
399
+ labTitle: ''
400
+ };
401
+ this.state.hostname = node.label;
402
+ this.state.prompt = `${node.label}#`;
403
+ return JSON.stringify({ switched_to: node.label, node_id: result.node_id });
404
+ }
405
+ return JSON.stringify({ error: `Node "${label}" not found` });
406
+ }
407
+ catch (e) {
408
+ return JSON.stringify({ error: e.message });
409
+ }
410
+ }
411
+ async getTopology() {
412
+ if (!this.activeLabId)
413
+ return JSON.stringify({ error: 'no_lab_connected' });
414
+ try {
415
+ const topology = await this.request('GET', `/labs/${this.activeLabId}/topology`);
416
+ return JSON.stringify(topology, null, 2);
417
+ }
418
+ catch (e) {
419
+ return JSON.stringify({ error: e.message });
46
420
  }
47
- return `[CML Virtual Image Execution Output]:
48
- Device# ${command}
49
- % Simulated command executed successfully in Digital Twin sandbox.`;
50
421
  }
51
422
  async disconnect() {
52
- if (this.activeLabId) {
53
- console.log(`[CmlSession]: Teardown sandbox lab ${this.activeLabId}...`);
423
+ if (this.activeLabId && this.ownedLab) {
424
+ try {
425
+ console.log(chalk_1.default.cyan(`❯ Deleting sandbox lab ${this.activeLabId}...`));
426
+ await this.request('DELETE', `/labs/${this.activeLabId}`);
427
+ console.log(chalk_1.default.green(`✔ Sandbox lab deleted cleanly.`));
428
+ }
429
+ catch (e) {
430
+ console.warn(chalk_1.default.yellow(`⚠ Could not delete lab: ${e.message}`));
431
+ }
432
+ }
433
+ else if (this.activeLabId && !this.ownedLab) {
434
+ console.log(chalk_1.default.dim(` Leaving external lab ${this.activeLabId} intact (not owned by this session).`));
435
+ }
436
+ this.activeLabId = null;
437
+ if (this.token) {
438
+ try {
439
+ await this.request('DELETE', '/logout');
440
+ console.log(chalk_1.default.green(`✔ Logged out from CML successfully.`));
441
+ }
442
+ catch { }
443
+ this.token = null;
54
444
  }
55
- console.log(`[CmlSession]: disconnected.`);
56
- return Promise.resolve();
57
445
  }
58
446
  }
59
447
  exports.CmlSession = CmlSession;
@@ -1 +1 @@
1
- {"version":3,"file":"CmlSession.js","sourceRoot":"","sources":["../../../src/infrastructure/protocols/CmlSession.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,MAAa,UAAW,SAAQ,yBAAW;IAGnB;IAAwB;IAA2B;IAF/D,WAAW,GAAkB,IAAI,CAAC;IAE1C,YAAoB,MAAc,EAAU,QAAiB,EAAU,QAAiB;QACpF,KAAK,EAAE,CAAC;QADQ,WAAM,GAAN,MAAM,CAAQ;QAAU,aAAQ,GAAR,QAAQ,CAAS;QAAU,aAAQ,GAAR,QAAQ,CAAS;QAEpF,IAAI,CAAC,KAAK,GAAG;YACT,WAAW,EAAE,iBAAiB;YAC9B,QAAQ,EAAE,aAAa;YACvB,MAAM,EAAE,OAAO,MAAM,EAAE;SAC1B,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,OAAO,CAAC,GAAG,CAAC,gEAAgE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;QACrF,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC;QACpC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,SAAkB;QACpD,OAAO,CAAC,GAAG,CAAC,qDAAqD,OAAO,MAAM,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAG3C,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,SAAS,CAAC;gBAClB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,IAAI,CAAC,WAAW;gBACxB,aAAa,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;gBACrC,OAAO,EAAE,4CAA4C;aACxD,CAAC,CAAC;QACP,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,SAAS,CAAC;gBAClB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,IAAI,CAAC,WAAW;gBACxB,YAAY,EAAE,CAAC;gBACf,QAAQ,EAAE,CAAC;aACd,CAAC,CAAC;QACP,CAAC;QAGD,OAAO;UACL,OAAO;mEACkD,CAAC;IAChE,CAAC;IAEM,KAAK,CAAC,UAAU;QACnB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,sCAAsC,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACJ;AAxDD,gCAwDC"}
1
+ {"version":3,"file":"CmlSession.js","sourceRoot":"","sources":["../../../src/infrastructure/protocols/CmlSession.ts"],"names":[],"mappings":"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"}
@@ -32,11 +32,15 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
35
38
  Object.defineProperty(exports, "__esModule", { value: true });
36
39
  exports.MockSession = void 0;
37
40
  const BaseSession_1 = require("./BaseSession");
38
41
  const fs = __importStar(require("fs"));
39
42
  const path = __importStar(require("path"));
43
+ const chalk_1 = __importDefault(require("chalk"));
40
44
  class MockSession extends BaseSession_1.BaseSession {
41
45
  deviceId;
42
46
  interfaces = new Map();
@@ -174,7 +178,7 @@ class MockSession extends BaseSession_1.BaseSession {
174
178
  return this.shellEnabled;
175
179
  }
176
180
  async connect() {
177
- console.log(`[MockSession - ${this.deviceId}]: Simulated session established.`);
181
+ console.log(chalk_1.default.green(`✔ Simulated device session for "${this.deviceId}" established.`));
178
182
  return Promise.resolve();
179
183
  }
180
184
  async execute(command, timeoutMs) {
@@ -340,7 +344,7 @@ class MockSession extends BaseSession_1.BaseSession {
340
344
  return `% Unrecognized command: "${clean}"`;
341
345
  }
342
346
  async disconnect() {
343
- console.log(`[MockSession - ${this.deviceId}]: Session disconnected.`);
347
+ console.log(chalk_1.default.gray(`❯ Simulated session for "${this.deviceId}" disconnected.`));
344
348
  return Promise.resolve();
345
349
  }
346
350
  updateMode(mode) {