ciscollm-cli 1.3.2 → 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.
- package/README.md +19 -25
- package/dist/cli/commands/monitorCommand.js +17 -0
- package/dist/cli/commands/monitorCommand.js.map +1 -1
- package/dist/cli/commands/runCommand.d.ts +1 -3
- package/dist/cli/commands/runCommand.js +126 -452
- package/dist/cli/commands/runCommand.js.map +1 -1
- package/dist/cli/ui/interactiveWizard.d.ts +1 -0
- package/dist/cli/ui/interactiveWizard.js +429 -0
- package/dist/cli/ui/interactiveWizard.js.map +1 -0
- package/dist/cli/ui/ui.js +0 -5
- package/dist/cli/ui/ui.js.map +1 -1
- package/dist/core/agent/AgentLoop.d.ts +3 -0
- package/dist/core/agent/AgentLoop.js +71 -16
- package/dist/core/agent/AgentLoop.js.map +1 -1
- package/dist/core/agent/DigitalTwin.d.ts +10 -0
- package/dist/core/agent/DigitalTwin.js +40 -0
- package/dist/core/agent/DigitalTwin.js.map +1 -0
- package/dist/core/agent/IntentTranslator.d.ts +6 -0
- package/dist/core/agent/IntentTranslator.js +37 -0
- package/dist/core/agent/IntentTranslator.js.map +1 -0
- package/dist/core/agent/MemoryManager.d.ts +14 -0
- package/dist/core/agent/MemoryManager.js +89 -0
- package/dist/core/agent/MemoryManager.js.map +1 -0
- package/dist/core/agent/MultiAgentCoordinator.js +0 -2
- package/dist/core/agent/MultiAgentCoordinator.js.map +1 -1
- package/dist/core/agent/NetworkPlanner.d.ts +8 -0
- package/dist/core/agent/NetworkPlanner.js +78 -0
- package/dist/core/agent/NetworkPlanner.js.map +1 -0
- package/dist/core/agent/PromptEngine.d.ts +1 -1
- package/dist/core/agent/PromptEngine.js +10 -5
- package/dist/core/agent/PromptEngine.js.map +1 -1
- package/dist/core/plugins/PluginManager.d.ts +17 -0
- package/dist/core/plugins/PluginManager.js +106 -0
- package/dist/core/plugins/PluginManager.js.map +1 -0
- package/dist/core/rollback/TransactionManager.js +1 -6
- package/dist/core/rollback/TransactionManager.js.map +1 -1
- package/dist/index.js +26 -61
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/llm/LLMClient.d.ts +1 -0
- package/dist/infrastructure/llm/LLMClient.js +32 -7
- package/dist/infrastructure/llm/LLMClient.js.map +1 -1
- package/dist/infrastructure/protocols/SshSession.d.ts +1 -0
- package/dist/infrastructure/protocols/SshSession.js +5 -4
- package/dist/infrastructure/protocols/SshSession.js.map +1 -1
- package/dist/infrastructure/protocols/TelnetSession.d.ts +1 -0
- package/dist/infrastructure/protocols/TelnetSession.js +5 -1
- package/dist/infrastructure/protocols/TelnetSession.js.map +1 -1
- package/dist/server/shell-simulator.js +1 -2
- package/dist/server/shell-simulator.js.map +1 -1
- package/dist/server/ssh.js +2 -2
- package/dist/server/ssh.js.map +1 -1
- package/dist/server/telnet.js +2 -2
- package/dist/server/telnet.js.map +1 -1
- package/dist/shared/bootBanner.d.ts +1 -0
- package/dist/shared/bootBanner.js +93 -0
- package/dist/shared/bootBanner.js.map +1 -0
- package/package.json +1 -1
- package/dist/cli/commands/dashboardCommand.d.ts +0 -1
- package/dist/cli/commands/dashboardCommand.js +0 -16
- package/dist/cli/commands/dashboardCommand.js.map +0 -1
- package/dist/cli/commands/shellCommand.d.ts +0 -1
- package/dist/cli/commands/shellCommand.js +0 -44
- package/dist/cli/commands/shellCommand.js.map +0 -1
- package/dist/infrastructure/protocols/CmlSession.d.ts +0 -26
- package/dist/infrastructure/protocols/CmlSession.js +0 -448
- package/dist/infrastructure/protocols/CmlSession.js.map +0 -1
- package/dist/infrastructure/protocols/NetconfSession.d.ts +0 -74
- package/dist/infrastructure/protocols/NetconfSession.js +0 -553
- package/dist/infrastructure/protocols/NetconfSession.js.map +0 -1
- package/dist/server/dashboard.d.ts +0 -3
- package/dist/server/dashboard.js +0 -1149
- 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
|
|
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
|
-
-
|
|
36
|
-
-
|
|
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;
|
|
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.'));
|
|
@@ -189,7 +184,7 @@ class TransactionManager {
|
|
|
189
184
|
if (state.currentMode === 'USER_EXEC') {
|
|
190
185
|
await session.execute('enable');
|
|
191
186
|
}
|
|
192
|
-
else if (state.currentMode
|
|
187
|
+
else if (state.currentMode.endsWith('_CONFIG')) {
|
|
193
188
|
await session.execute('end');
|
|
194
189
|
}
|
|
195
190
|
const restoreOutput = await session.execute(`configure replace ${this.backupFilename} force`);
|
|
@@ -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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"}
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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":";;;;;;AACA,yCAAoC;AACpC,kDAA0B;AAE1B,wEAA4E;AAC5E,oCAAqC;AACrC,2BAAkC;AAClC,+BAA4B;
|
|
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) {
|