@wundr.io/cli 1.0.12 → 1.0.14
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/dist/ai/ai-service.d.ts +152 -0
- package/dist/ai/ai-service.d.ts.map +1 -0
- package/dist/ai/ai-service.js +430 -0
- package/dist/ai/ai-service.js.map +1 -0
- package/dist/ai/claude-client.d.ts +130 -0
- package/dist/ai/claude-client.d.ts.map +1 -0
- package/dist/ai/claude-client.js +340 -0
- package/dist/ai/claude-client.js.map +1 -0
- package/dist/ai/conversation-manager.d.ts +164 -0
- package/dist/ai/conversation-manager.d.ts.map +1 -0
- package/dist/ai/conversation-manager.js +614 -0
- package/dist/ai/conversation-manager.js.map +1 -0
- package/dist/ai/index.d.ts +5 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +8 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/cli.d.ts +36 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +192 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/ai.d.ts +89 -0
- package/dist/commands/ai.d.ts.map +1 -0
- package/dist/commands/ai.js +954 -0
- package/dist/commands/ai.js.map +1 -0
- package/dist/commands/alignment.d.ts +78 -0
- package/dist/commands/alignment.d.ts.map +1 -0
- package/dist/commands/alignment.js +817 -0
- package/dist/commands/alignment.js.map +1 -0
- package/dist/commands/analyze-optimized.d.ts +14 -0
- package/dist/commands/analyze-optimized.d.ts.map +1 -0
- package/dist/commands/analyze-optimized.js +609 -0
- package/dist/commands/analyze-optimized.js.map +1 -0
- package/dist/commands/analyze.d.ts +65 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +435 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/batch.d.ts +93 -0
- package/dist/commands/batch.d.ts.map +1 -0
- package/dist/commands/batch.js +854 -0
- package/dist/commands/batch.js.map +1 -0
- package/dist/commands/chat.d.ts +72 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +678 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/claude-init.d.ts +28 -0
- package/dist/commands/claude-init.d.ts.map +1 -0
- package/dist/commands/claude-init.js +591 -0
- package/dist/commands/claude-init.js.map +1 -0
- package/dist/commands/claude-setup.d.ts +119 -0
- package/dist/commands/claude-setup.d.ts.map +1 -0
- package/dist/commands/claude-setup.js +1079 -0
- package/dist/commands/claude-setup.js.map +1 -0
- package/dist/commands/computer-setup.d.ts +8 -0
- package/dist/commands/computer-setup.d.ts.map +1 -0
- package/dist/commands/computer-setup.js +877 -0
- package/dist/commands/computer-setup.js.map +1 -0
- package/dist/commands/create-command.d.ts +7 -0
- package/dist/commands/create-command.d.ts.map +1 -0
- package/dist/commands/create-command.js +158 -0
- package/dist/commands/create-command.js.map +1 -0
- package/dist/commands/create.d.ts +74 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +556 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/dashboard.d.ts +91 -0
- package/dist/commands/dashboard.d.ts.map +1 -0
- package/dist/commands/dashboard.js +538 -0
- package/dist/commands/dashboard.js.map +1 -0
- package/dist/commands/govern.d.ts +70 -0
- package/dist/commands/govern.d.ts.map +1 -0
- package/dist/commands/govern.js +481 -0
- package/dist/commands/govern.js.map +1 -0
- package/dist/commands/governance.d.ts +17 -0
- package/dist/commands/governance.d.ts.map +1 -0
- package/dist/commands/governance.js +703 -0
- package/dist/commands/governance.js.map +1 -0
- package/dist/commands/guardian.d.ts +20 -0
- package/dist/commands/guardian.d.ts.map +1 -0
- package/dist/commands/guardian.js +597 -0
- package/dist/commands/guardian.js.map +1 -0
- package/dist/commands/init.d.ts +59 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +650 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/orchestrator.d.ts +7 -0
- package/dist/commands/orchestrator.d.ts.map +1 -0
- package/dist/commands/orchestrator.js +578 -0
- package/dist/commands/orchestrator.js.map +1 -0
- package/dist/commands/performance-optimizer.d.ts +30 -0
- package/dist/commands/performance-optimizer.d.ts.map +1 -0
- package/dist/commands/performance-optimizer.js +650 -0
- package/dist/commands/performance-optimizer.js.map +1 -0
- package/dist/commands/plugins.d.ts +87 -0
- package/dist/commands/plugins.d.ts.map +1 -0
- package/dist/commands/plugins.js +685 -0
- package/dist/commands/plugins.js.map +1 -0
- package/dist/commands/rag.d.ts +7 -0
- package/dist/commands/rag.d.ts.map +1 -0
- package/dist/commands/rag.js +751 -0
- package/dist/commands/rag.js.map +1 -0
- package/dist/commands/session.d.ts +41 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +441 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/setup.d.ts +24 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +172 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/test-init.d.ts +9 -0
- package/dist/commands/test-init.d.ts.map +1 -0
- package/dist/commands/test-init.js +222 -0
- package/dist/commands/test-init.js.map +1 -0
- package/dist/commands/test.d.ts +25 -0
- package/dist/commands/test.d.ts.map +1 -0
- package/dist/commands/test.js +217 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/commands/watch.d.ts +76 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +613 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/commands/worktree.d.ts +63 -0
- package/dist/commands/worktree.d.ts.map +1 -0
- package/dist/commands/worktree.js +774 -0
- package/dist/commands/worktree.js.map +1 -0
- package/dist/context/context-manager.d.ts +155 -0
- package/dist/context/context-manager.d.ts.map +1 -0
- package/dist/context/context-manager.js +383 -0
- package/dist/context/context-manager.js.map +1 -0
- package/dist/context/index.d.ts +3 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +6 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/session-manager.d.ts +207 -0
- package/dist/context/session-manager.d.ts.map +1 -0
- package/dist/context/session-manager.js +686 -0
- package/dist/context/session-manager.js.map +1 -0
- package/dist/framework/command-interface.d.ts +349 -0
- package/dist/framework/command-interface.d.ts.map +1 -0
- package/dist/framework/command-interface.js +101 -0
- package/dist/framework/command-interface.js.map +1 -0
- package/dist/framework/command-registry.d.ts +173 -0
- package/dist/framework/command-registry.d.ts.map +1 -0
- package/dist/framework/command-registry.js +734 -0
- package/dist/framework/command-registry.js.map +1 -0
- package/dist/framework/completion-exporter.d.ts +79 -0
- package/dist/framework/completion-exporter.d.ts.map +1 -0
- package/dist/framework/completion-exporter.js +259 -0
- package/dist/framework/completion-exporter.js.map +1 -0
- package/dist/framework/debug-logger.d.ts +163 -0
- package/dist/framework/debug-logger.d.ts.map +1 -0
- package/dist/framework/debug-logger.js +373 -0
- package/dist/framework/debug-logger.js.map +1 -0
- package/dist/framework/error-handler.d.ts +196 -0
- package/dist/framework/error-handler.d.ts.map +1 -0
- package/dist/framework/error-handler.js +613 -0
- package/dist/framework/error-handler.js.map +1 -0
- package/dist/framework/help-generator.d.ts +78 -0
- package/dist/framework/help-generator.d.ts.map +1 -0
- package/dist/framework/help-generator.js +414 -0
- package/dist/framework/help-generator.js.map +1 -0
- package/dist/framework/index.d.ts +62 -0
- package/dist/framework/index.d.ts.map +1 -0
- package/dist/framework/index.js +95 -0
- package/dist/framework/index.js.map +1 -0
- package/dist/framework/interactive-repl.d.ts +138 -0
- package/dist/framework/interactive-repl.d.ts.map +1 -0
- package/dist/framework/interactive-repl.js +567 -0
- package/dist/framework/interactive-repl.js.map +1 -0
- package/dist/framework/output-formatter.d.ts +274 -0
- package/dist/framework/output-formatter.d.ts.map +1 -0
- package/dist/framework/output-formatter.js +545 -0
- package/dist/framework/output-formatter.js.map +1 -0
- package/dist/framework/progress-manager.d.ts +192 -0
- package/dist/framework/progress-manager.d.ts.map +1 -0
- package/dist/framework/progress-manager.js +408 -0
- package/dist/framework/progress-manager.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/interactive/interactive-mode.d.ts +76 -0
- package/dist/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/interactive/interactive-mode.js +732 -0
- package/dist/interactive/interactive-mode.js.map +1 -0
- package/dist/nlp/command-mapper.d.ts +174 -0
- package/dist/nlp/command-mapper.d.ts.map +1 -0
- package/dist/nlp/command-mapper.js +624 -0
- package/dist/nlp/command-mapper.js.map +1 -0
- package/dist/nlp/command-parser.d.ts +106 -0
- package/dist/nlp/command-parser.d.ts.map +1 -0
- package/dist/nlp/command-parser.js +417 -0
- package/dist/nlp/command-parser.js.map +1 -0
- package/dist/nlp/index.d.ts +5 -0
- package/dist/nlp/index.d.ts.map +1 -0
- package/dist/nlp/index.js +8 -0
- package/dist/nlp/index.js.map +1 -0
- package/dist/nlp/intent-classifier.d.ts +59 -0
- package/dist/nlp/intent-classifier.d.ts.map +1 -0
- package/dist/nlp/intent-classifier.js +384 -0
- package/dist/nlp/intent-classifier.js.map +1 -0
- package/dist/nlp/intent-parser.d.ts +152 -0
- package/dist/nlp/intent-parser.d.ts.map +1 -0
- package/dist/nlp/intent-parser.js +746 -0
- package/dist/nlp/intent-parser.js.map +1 -0
- package/dist/plugins/plugin-manager.d.ts +121 -0
- package/dist/plugins/plugin-manager.d.ts.map +1 -0
- package/dist/plugins/plugin-manager.js +606 -0
- package/dist/plugins/plugin-manager.js.map +1 -0
- package/dist/types/index.d.ts +224 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/backup-rollback-manager.d.ts +72 -0
- package/dist/utils/backup-rollback-manager.d.ts.map +1 -0
- package/dist/utils/backup-rollback-manager.js +288 -0
- package/dist/utils/backup-rollback-manager.js.map +1 -0
- package/dist/utils/claude-config-installer.d.ts +98 -0
- package/dist/utils/claude-config-installer.d.ts.map +1 -0
- package/dist/utils/claude-config-installer.js +678 -0
- package/dist/utils/claude-config-installer.js.map +1 -0
- package/dist/utils/config-manager.d.ts +73 -0
- package/dist/utils/config-manager.d.ts.map +1 -0
- package/dist/utils/config-manager.js +339 -0
- package/dist/utils/config-manager.js.map +1 -0
- package/dist/utils/error-handler.d.ts +46 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +169 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/logger.d.ts +25 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +105 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +6 -6
|
@@ -0,0 +1,538 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DashboardCommands = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const child_process_1 = require("child_process");
|
|
6
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
7
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
8
|
+
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
9
|
+
const error_handler_1 = require("../utils/error-handler");
|
|
10
|
+
const logger_1 = require("../utils/logger");
|
|
11
|
+
/**
|
|
12
|
+
* Dashboard commands for web interface and visualization
|
|
13
|
+
*/
|
|
14
|
+
class DashboardCommands {
|
|
15
|
+
program;
|
|
16
|
+
configManager;
|
|
17
|
+
pluginManager;
|
|
18
|
+
constructor(program, configManager, pluginManager) {
|
|
19
|
+
this.program = program;
|
|
20
|
+
this.configManager = configManager;
|
|
21
|
+
this.pluginManager = pluginManager;
|
|
22
|
+
this.registerCommands();
|
|
23
|
+
}
|
|
24
|
+
registerCommands() {
|
|
25
|
+
const dashboardCmd = this.program
|
|
26
|
+
.command('dashboard')
|
|
27
|
+
.alias('dash')
|
|
28
|
+
.description('dashboard and visualization tools');
|
|
29
|
+
// Start dashboard
|
|
30
|
+
dashboardCmd
|
|
31
|
+
.command('start')
|
|
32
|
+
.description('start the web dashboard')
|
|
33
|
+
.option('--port <port>', 'dashboard port', '3000')
|
|
34
|
+
.option('--host <host>', 'dashboard host', 'localhost')
|
|
35
|
+
.option('--open', 'open browser automatically')
|
|
36
|
+
.option('--dev', 'start in development mode')
|
|
37
|
+
.action(async (options) => {
|
|
38
|
+
await this.startDashboard(options);
|
|
39
|
+
});
|
|
40
|
+
// Stop dashboard
|
|
41
|
+
dashboardCmd
|
|
42
|
+
.command('stop')
|
|
43
|
+
.description('stop the web dashboard')
|
|
44
|
+
.action(async () => {
|
|
45
|
+
await this.stopDashboard();
|
|
46
|
+
});
|
|
47
|
+
// Dashboard status
|
|
48
|
+
dashboardCmd
|
|
49
|
+
.command('status')
|
|
50
|
+
.description('check dashboard status')
|
|
51
|
+
.action(async () => {
|
|
52
|
+
await this.checkDashboardStatus();
|
|
53
|
+
});
|
|
54
|
+
// Generate reports
|
|
55
|
+
dashboardCmd
|
|
56
|
+
.command('report <type>')
|
|
57
|
+
.description('generate dashboard reports')
|
|
58
|
+
.option('--output <path>', 'output directory')
|
|
59
|
+
.option('--format <format>', 'report format (html, pdf, json)', 'html')
|
|
60
|
+
.option('--period <period>', 'report period (daily, weekly, monthly)', 'weekly')
|
|
61
|
+
.action(async (type, options) => {
|
|
62
|
+
await this.generateReport(type, options);
|
|
63
|
+
});
|
|
64
|
+
// Export data
|
|
65
|
+
dashboardCmd
|
|
66
|
+
.command('export <type>')
|
|
67
|
+
.description('export dashboard data')
|
|
68
|
+
.option('--output <path>', 'output file path')
|
|
69
|
+
.option('--format <format>', 'export format (json, csv, xlsx)', 'json')
|
|
70
|
+
.option('--filter <filter>', 'data filter')
|
|
71
|
+
.action(async (type, options) => {
|
|
72
|
+
await this.exportData(type, options);
|
|
73
|
+
});
|
|
74
|
+
// Import data
|
|
75
|
+
dashboardCmd
|
|
76
|
+
.command('import <file>')
|
|
77
|
+
.description('import data into dashboard')
|
|
78
|
+
.option('--type <type>', 'data type to import')
|
|
79
|
+
.option('--merge', 'merge with existing data')
|
|
80
|
+
.action(async (file, options) => {
|
|
81
|
+
await this.importData(file, options);
|
|
82
|
+
});
|
|
83
|
+
// Configure dashboard
|
|
84
|
+
dashboardCmd.command('config').description('configure dashboard settings');
|
|
85
|
+
dashboardCmd
|
|
86
|
+
.command('config set <key> <value>')
|
|
87
|
+
.description('set dashboard configuration')
|
|
88
|
+
.action(async (key, value) => {
|
|
89
|
+
await this.setDashboardConfig(key, value);
|
|
90
|
+
});
|
|
91
|
+
dashboardCmd
|
|
92
|
+
.command('config get [key]')
|
|
93
|
+
.description('get dashboard configuration')
|
|
94
|
+
.action(async (key) => {
|
|
95
|
+
await this.getDashboardConfig(key);
|
|
96
|
+
});
|
|
97
|
+
// Manage widgets
|
|
98
|
+
dashboardCmd.command('widget').description('manage dashboard widgets');
|
|
99
|
+
dashboardCmd
|
|
100
|
+
.command('widget add <type>')
|
|
101
|
+
.description('add a new widget')
|
|
102
|
+
.option('--config <config>', 'widget configuration')
|
|
103
|
+
.option('--position <position>', 'widget position')
|
|
104
|
+
.action(async (type, options) => {
|
|
105
|
+
await this.addWidget(type, options);
|
|
106
|
+
});
|
|
107
|
+
dashboardCmd
|
|
108
|
+
.command('widget remove <id>')
|
|
109
|
+
.description('remove a widget')
|
|
110
|
+
.action(async (id) => {
|
|
111
|
+
await this.removeWidget(id);
|
|
112
|
+
});
|
|
113
|
+
dashboardCmd
|
|
114
|
+
.command('widget list')
|
|
115
|
+
.description('list all widgets')
|
|
116
|
+
.action(async () => {
|
|
117
|
+
await this.listWidgets();
|
|
118
|
+
});
|
|
119
|
+
// Manage themes
|
|
120
|
+
dashboardCmd
|
|
121
|
+
.command('theme <action>')
|
|
122
|
+
.description('manage dashboard themes')
|
|
123
|
+
.option('--name <name>', 'theme name')
|
|
124
|
+
.option('--config <config>', 'theme configuration')
|
|
125
|
+
.action(async (action, options) => {
|
|
126
|
+
await this.manageTheme(action, options);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Start the web dashboard
|
|
131
|
+
*/
|
|
132
|
+
async startDashboard(options) {
|
|
133
|
+
try {
|
|
134
|
+
logger_1.logger.info('Starting Wundr dashboard...');
|
|
135
|
+
// Check if dashboard is already running
|
|
136
|
+
const isRunning = await this.isDashboardRunning();
|
|
137
|
+
if (isRunning) {
|
|
138
|
+
logger_1.logger.warn('Dashboard is already running');
|
|
139
|
+
if (options.open) {
|
|
140
|
+
await this.openBrowser(`http://${options.host}:${options.port}`);
|
|
141
|
+
}
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
// Ensure dashboard assets are available
|
|
145
|
+
await this.ensureDashboardAssets();
|
|
146
|
+
// Start the dashboard server
|
|
147
|
+
const dashboardProcess = await this.startDashboardServer(options);
|
|
148
|
+
// Save process info
|
|
149
|
+
await this.saveDashboardProcess(dashboardProcess, options);
|
|
150
|
+
logger_1.logger.success(`Dashboard started at http://${options.host}:${options.port}`);
|
|
151
|
+
if (options.open) {
|
|
152
|
+
await this.openBrowser(`http://${options.host}:${options.port}`);
|
|
153
|
+
}
|
|
154
|
+
// Keep the process alive if not in dev mode
|
|
155
|
+
if (!options.dev) {
|
|
156
|
+
logger_1.logger.info('Dashboard is running in the background. Use "wundr dashboard stop" to stop it.');
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
throw error_handler_1.errorHandler.createError('WUNDR_DASHBOARD_START_FAILED', 'Failed to start dashboard', { options }, true);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Stop the web dashboard
|
|
165
|
+
*/
|
|
166
|
+
async stopDashboard() {
|
|
167
|
+
try {
|
|
168
|
+
logger_1.logger.info('Stopping dashboard...');
|
|
169
|
+
const processInfo = await this.loadDashboardProcess();
|
|
170
|
+
if (!processInfo) {
|
|
171
|
+
logger_1.logger.warn('No running dashboard found');
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
// Kill the dashboard process
|
|
175
|
+
process.kill(processInfo.pid, 'SIGTERM');
|
|
176
|
+
// Clean up process info
|
|
177
|
+
await this.cleanupDashboardProcess();
|
|
178
|
+
logger_1.logger.success('Dashboard stopped successfully');
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
throw error_handler_1.errorHandler.createError('WUNDR_DASHBOARD_STOP_FAILED', 'Failed to stop dashboard', {}, true);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Check dashboard status
|
|
186
|
+
*/
|
|
187
|
+
async checkDashboardStatus() {
|
|
188
|
+
try {
|
|
189
|
+
const isRunning = await this.isDashboardRunning();
|
|
190
|
+
const processInfo = await this.loadDashboardProcess();
|
|
191
|
+
if (isRunning && processInfo) {
|
|
192
|
+
logger_1.logger.success(`Dashboard is running on http://${processInfo.host}:${processInfo.port}`);
|
|
193
|
+
logger_1.logger.info(`Process ID: ${processInfo.pid}`);
|
|
194
|
+
logger_1.logger.info(`Started: ${new Date(processInfo.started).toLocaleString()}`);
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
logger_1.logger.info('Dashboard is not running');
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
throw error_handler_1.errorHandler.createError('WUNDR_DASHBOARD_STATUS_FAILED', 'Failed to check dashboard status', {}, true);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Generate dashboard reports
|
|
206
|
+
*/
|
|
207
|
+
async generateReport(type, options) {
|
|
208
|
+
try {
|
|
209
|
+
logger_1.logger.info(`Generating ${type} report...`);
|
|
210
|
+
const reportData = await this.collectReportData(type, options.period);
|
|
211
|
+
const report = await this.formatReport(reportData, options.format);
|
|
212
|
+
const outputPath = options.output || this.getDefaultReportPath(type, options.format);
|
|
213
|
+
await this.saveReport(report, outputPath);
|
|
214
|
+
logger_1.logger.success(`Report generated: ${outputPath}`);
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
throw error_handler_1.errorHandler.createError('WUNDR_DASHBOARD_REPORT_FAILED', 'Failed to generate report', { type, options }, true);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Export dashboard data
|
|
222
|
+
*/
|
|
223
|
+
async exportData(type, options) {
|
|
224
|
+
try {
|
|
225
|
+
logger_1.logger.info(`Exporting ${type} data...`);
|
|
226
|
+
const data = await this.collectExportData(type, options.filter);
|
|
227
|
+
const exportedData = await this.formatExportData(data, options.format);
|
|
228
|
+
const outputPath = options.output || this.getDefaultExportPath(type, options.format);
|
|
229
|
+
await this.saveExportData(exportedData, outputPath);
|
|
230
|
+
logger_1.logger.success(`Data exported: ${outputPath}`);
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
throw error_handler_1.errorHandler.createError('WUNDR_DASHBOARD_EXPORT_FAILED', 'Failed to export data', { type, options }, true);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Import data into dashboard
|
|
238
|
+
*/
|
|
239
|
+
async importData(file, options) {
|
|
240
|
+
try {
|
|
241
|
+
logger_1.logger.info(`Importing data from ${chalk_1.default.cyan(file)}...`);
|
|
242
|
+
if (!(await fs_extra_1.default.pathExists(file))) {
|
|
243
|
+
throw new Error(`File not found: ${file}`);
|
|
244
|
+
}
|
|
245
|
+
const data = await this.loadImportData(file);
|
|
246
|
+
const validatedData = await this.validateImportData(data, options.type);
|
|
247
|
+
if (options.merge) {
|
|
248
|
+
await this.mergeImportData(validatedData, options.type);
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
await this.replaceImportData(validatedData, options.type);
|
|
252
|
+
}
|
|
253
|
+
logger_1.logger.success(`Data imported successfully from ${file}`);
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
throw error_handler_1.errorHandler.createError('WUNDR_DASHBOARD_IMPORT_FAILED', 'Failed to import data', { file, options }, true);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Set dashboard configuration
|
|
261
|
+
*/
|
|
262
|
+
async setDashboardConfig(key, value) {
|
|
263
|
+
try {
|
|
264
|
+
this.configManager.set(`dashboard.${key}`, value);
|
|
265
|
+
await this.configManager.saveConfig();
|
|
266
|
+
logger_1.logger.success(`Dashboard configuration updated: ${key} = ${value}`);
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
throw error_handler_1.errorHandler.createError('WUNDR_DASHBOARD_CONFIG_SET_FAILED', 'Failed to set dashboard configuration', { key, value }, true);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Get dashboard configuration
|
|
274
|
+
*/
|
|
275
|
+
async getDashboardConfig(key) {
|
|
276
|
+
try {
|
|
277
|
+
if (key) {
|
|
278
|
+
const value = this.configManager.get(`dashboard.${key}`);
|
|
279
|
+
console.log(`${key}: ${value}`);
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
const dashboardConfig = this.configManager.get('dashboard');
|
|
283
|
+
console.log(JSON.stringify(dashboardConfig, null, 2));
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
catch (error) {
|
|
287
|
+
throw error_handler_1.errorHandler.createError('WUNDR_DASHBOARD_CONFIG_GET_FAILED', 'Failed to get dashboard configuration', { key }, true);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Add a new widget
|
|
292
|
+
*/
|
|
293
|
+
async addWidget(type, options) {
|
|
294
|
+
try {
|
|
295
|
+
logger_1.logger.info(`Adding ${type} widget...`);
|
|
296
|
+
const widget = {
|
|
297
|
+
id: `widget-${Date.now()}`,
|
|
298
|
+
type,
|
|
299
|
+
config: options.config ? JSON.parse(options.config) : {},
|
|
300
|
+
position: options.position
|
|
301
|
+
? JSON.parse(options.position)
|
|
302
|
+
: { x: 0, y: 0 },
|
|
303
|
+
created: new Date().toISOString(),
|
|
304
|
+
};
|
|
305
|
+
await this.saveWidget(widget);
|
|
306
|
+
logger_1.logger.success(`Widget added: ${widget.id}`);
|
|
307
|
+
}
|
|
308
|
+
catch (error) {
|
|
309
|
+
throw error_handler_1.errorHandler.createError('WUNDR_DASHBOARD_ADD_WIDGET_FAILED', 'Failed to add widget', { type, options }, true);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Remove a widget
|
|
314
|
+
*/
|
|
315
|
+
async removeWidget(id) {
|
|
316
|
+
try {
|
|
317
|
+
logger_1.logger.info(`Removing widget: ${chalk_1.default.cyan(id)}`);
|
|
318
|
+
await this.deleteWidget(id);
|
|
319
|
+
logger_1.logger.success(`Widget removed: ${id}`);
|
|
320
|
+
}
|
|
321
|
+
catch (error) {
|
|
322
|
+
throw error_handler_1.errorHandler.createError('WUNDR_DASHBOARD_REMOVE_WIDGET_FAILED', 'Failed to remove widget', { id }, true);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* List all widgets
|
|
327
|
+
*/
|
|
328
|
+
async listWidgets() {
|
|
329
|
+
try {
|
|
330
|
+
const widgets = await this.getAllWidgets();
|
|
331
|
+
if (widgets.length === 0) {
|
|
332
|
+
logger_1.logger.info('No widgets configured');
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
logger_1.logger.info(`Dashboard widgets (${widgets.length}):`);
|
|
336
|
+
console.table(widgets.map(widget => ({
|
|
337
|
+
ID: widget.id,
|
|
338
|
+
Type: widget.type,
|
|
339
|
+
Position: `(${widget.position.x}, ${widget.position.y})`,
|
|
340
|
+
Created: new Date(widget.created).toLocaleDateString(),
|
|
341
|
+
})));
|
|
342
|
+
}
|
|
343
|
+
catch (error) {
|
|
344
|
+
throw error_handler_1.errorHandler.createError('WUNDR_DASHBOARD_LIST_WIDGETS_FAILED', 'Failed to list widgets', {}, true);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Manage dashboard themes
|
|
349
|
+
*/
|
|
350
|
+
async manageTheme(action, options) {
|
|
351
|
+
try {
|
|
352
|
+
switch (action) {
|
|
353
|
+
case 'list':
|
|
354
|
+
await this.listThemes();
|
|
355
|
+
break;
|
|
356
|
+
case 'set':
|
|
357
|
+
await this.setTheme(options.name);
|
|
358
|
+
break;
|
|
359
|
+
case 'create':
|
|
360
|
+
await this.createTheme(options.name, options.config);
|
|
361
|
+
break;
|
|
362
|
+
case 'delete':
|
|
363
|
+
await this.deleteTheme(options.name);
|
|
364
|
+
break;
|
|
365
|
+
default:
|
|
366
|
+
throw new Error(`Unknown theme action: ${action}`);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
catch (error) {
|
|
370
|
+
throw error_handler_1.errorHandler.createError('WUNDR_DASHBOARD_THEME_FAILED', 'Failed to manage theme', { action, options }, true);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Helper methods for dashboard operations
|
|
375
|
+
*/
|
|
376
|
+
async isDashboardRunning() {
|
|
377
|
+
const processInfo = await this.loadDashboardProcess();
|
|
378
|
+
if (!processInfo) {
|
|
379
|
+
return false;
|
|
380
|
+
}
|
|
381
|
+
try {
|
|
382
|
+
process.kill(processInfo.pid, 0);
|
|
383
|
+
return true;
|
|
384
|
+
}
|
|
385
|
+
catch {
|
|
386
|
+
return false;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
async ensureDashboardAssets() {
|
|
390
|
+
// Ensure dashboard assets are available
|
|
391
|
+
const assetsPath = path_1.default.join(__dirname, '../../dashboard-assets');
|
|
392
|
+
if (!(await fs_extra_1.default.pathExists(assetsPath))) {
|
|
393
|
+
logger_1.logger.info('Dashboard assets not found, downloading...');
|
|
394
|
+
// Download or copy dashboard assets
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
async startDashboardServer(options) {
|
|
398
|
+
// Start the actual dashboard server process
|
|
399
|
+
const serverPath = path_1.default.join(__dirname, '../../dashboard-server');
|
|
400
|
+
const child = (0, child_process_1.spawn)('node', [serverPath], {
|
|
401
|
+
env: {
|
|
402
|
+
...process.env,
|
|
403
|
+
PORT: options.port,
|
|
404
|
+
HOST: options.host,
|
|
405
|
+
NODE_ENV: options.dev ? 'development' : 'production',
|
|
406
|
+
},
|
|
407
|
+
detached: !options.dev,
|
|
408
|
+
stdio: options.dev ? 'inherit' : 'ignore',
|
|
409
|
+
});
|
|
410
|
+
if (!options.dev) {
|
|
411
|
+
child.unref();
|
|
412
|
+
}
|
|
413
|
+
return {
|
|
414
|
+
pid: child.pid,
|
|
415
|
+
host: options.host,
|
|
416
|
+
port: options.port,
|
|
417
|
+
started: Date.now(),
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
async saveDashboardProcess(processInfo, options) {
|
|
421
|
+
const processFile = path_1.default.join(process.cwd(), '.wundr', 'dashboard.pid');
|
|
422
|
+
await fs_extra_1.default.ensureDir(path_1.default.dirname(processFile));
|
|
423
|
+
await fs_extra_1.default.writeJson(processFile, { ...processInfo, ...options });
|
|
424
|
+
}
|
|
425
|
+
async loadDashboardProcess() {
|
|
426
|
+
const processFile = path_1.default.join(process.cwd(), '.wundr', 'dashboard.pid');
|
|
427
|
+
if (await fs_extra_1.default.pathExists(processFile)) {
|
|
428
|
+
return await fs_extra_1.default.readJson(processFile);
|
|
429
|
+
}
|
|
430
|
+
return null;
|
|
431
|
+
}
|
|
432
|
+
async cleanupDashboardProcess() {
|
|
433
|
+
const processFile = path_1.default.join(process.cwd(), '.wundr', 'dashboard.pid');
|
|
434
|
+
if (await fs_extra_1.default.pathExists(processFile)) {
|
|
435
|
+
await fs_extra_1.default.remove(processFile);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
async openBrowser(url) {
|
|
439
|
+
const { default: open } = await Promise.resolve().then(() => tslib_1.__importStar(require('open')));
|
|
440
|
+
await open(url);
|
|
441
|
+
}
|
|
442
|
+
// Report generation methods
|
|
443
|
+
async collectReportData(type, period) {
|
|
444
|
+
// Collect data for report generation
|
|
445
|
+
return { type, period, data: [] };
|
|
446
|
+
}
|
|
447
|
+
async formatReport(data, format) {
|
|
448
|
+
// Format report based on requested format
|
|
449
|
+
return data;
|
|
450
|
+
}
|
|
451
|
+
getDefaultReportPath(type, format) {
|
|
452
|
+
return `reports/wundr-${type}-report.${format}`;
|
|
453
|
+
}
|
|
454
|
+
async saveReport(report, outputPath) {
|
|
455
|
+
await fs_extra_1.default.ensureDir(path_1.default.dirname(outputPath));
|
|
456
|
+
if (typeof report === 'string') {
|
|
457
|
+
await fs_extra_1.default.writeFile(outputPath, report);
|
|
458
|
+
}
|
|
459
|
+
else {
|
|
460
|
+
await fs_extra_1.default.writeJson(outputPath, report, { spaces: 2 });
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
// Data export/import methods
|
|
464
|
+
async collectExportData(type, filter) {
|
|
465
|
+
return { type, filter, data: [] };
|
|
466
|
+
}
|
|
467
|
+
async formatExportData(data, format) {
|
|
468
|
+
return data;
|
|
469
|
+
}
|
|
470
|
+
getDefaultExportPath(type, format) {
|
|
471
|
+
return `exports/wundr-${type}-export.${format}`;
|
|
472
|
+
}
|
|
473
|
+
async saveExportData(data, outputPath) {
|
|
474
|
+
await fs_extra_1.default.ensureDir(path_1.default.dirname(outputPath));
|
|
475
|
+
await fs_extra_1.default.writeFile(outputPath, JSON.stringify(data, null, 2));
|
|
476
|
+
}
|
|
477
|
+
async loadImportData(file) {
|
|
478
|
+
return await fs_extra_1.default.readJson(file);
|
|
479
|
+
}
|
|
480
|
+
async validateImportData(data, type) {
|
|
481
|
+
// Validate imported data
|
|
482
|
+
return data;
|
|
483
|
+
}
|
|
484
|
+
async mergeImportData(data, type) {
|
|
485
|
+
// Merge imported data with existing data
|
|
486
|
+
logger_1.logger.debug('Merging import data');
|
|
487
|
+
}
|
|
488
|
+
async replaceImportData(data, type) {
|
|
489
|
+
// Replace existing data with imported data
|
|
490
|
+
logger_1.logger.debug('Replacing with import data');
|
|
491
|
+
}
|
|
492
|
+
// Widget management methods
|
|
493
|
+
async saveWidget(widget) {
|
|
494
|
+
const widgetFile = path_1.default.join(process.cwd(), '.wundr', 'widgets', `${widget.id}.json`);
|
|
495
|
+
await fs_extra_1.default.ensureDir(path_1.default.dirname(widgetFile));
|
|
496
|
+
await fs_extra_1.default.writeJson(widgetFile, widget, { spaces: 2 });
|
|
497
|
+
}
|
|
498
|
+
async deleteWidget(id) {
|
|
499
|
+
const widgetFile = path_1.default.join(process.cwd(), '.wundr', 'widgets', `${id}.json`);
|
|
500
|
+
if (await fs_extra_1.default.pathExists(widgetFile)) {
|
|
501
|
+
await fs_extra_1.default.remove(widgetFile);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
async getAllWidgets() {
|
|
505
|
+
const widgetsDir = path_1.default.join(process.cwd(), '.wundr', 'widgets');
|
|
506
|
+
if (!(await fs_extra_1.default.pathExists(widgetsDir))) {
|
|
507
|
+
return [];
|
|
508
|
+
}
|
|
509
|
+
const files = await fs_extra_1.default.readdir(widgetsDir);
|
|
510
|
+
const widgets = [];
|
|
511
|
+
for (const file of files.filter(f => f.endsWith('.json'))) {
|
|
512
|
+
const widget = await fs_extra_1.default.readJson(path_1.default.join(widgetsDir, file));
|
|
513
|
+
widgets.push(widget);
|
|
514
|
+
}
|
|
515
|
+
return widgets;
|
|
516
|
+
}
|
|
517
|
+
// Theme management methods
|
|
518
|
+
async listThemes() {
|
|
519
|
+
const themes = ['default', 'dark', 'light'];
|
|
520
|
+
console.log('Available themes:');
|
|
521
|
+
themes.forEach(theme => console.log(` - ${theme}`));
|
|
522
|
+
}
|
|
523
|
+
async setTheme(name) {
|
|
524
|
+
this.configManager.set('dashboard.theme', name);
|
|
525
|
+
await this.configManager.saveConfig();
|
|
526
|
+
logger_1.logger.success(`Theme set to: ${name}`);
|
|
527
|
+
}
|
|
528
|
+
async createTheme(name, config) {
|
|
529
|
+
logger_1.logger.info(`Creating theme: ${name}`);
|
|
530
|
+
// Implementation for creating custom themes
|
|
531
|
+
}
|
|
532
|
+
async deleteTheme(name) {
|
|
533
|
+
logger_1.logger.info(`Deleting theme: ${name}`);
|
|
534
|
+
// Implementation for deleting custom themes
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
exports.DashboardCommands = DashboardCommands;
|
|
538
|
+
//# sourceMappingURL=dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { PluginManager } from '../plugins/plugin-manager';
|
|
2
|
+
import type { ConfigManager } from '../utils/config-manager';
|
|
3
|
+
import type { Command } from 'commander';
|
|
4
|
+
/**
|
|
5
|
+
* Governance commands for compliance and quality control
|
|
6
|
+
*/
|
|
7
|
+
export declare class GovernCommands {
|
|
8
|
+
private program;
|
|
9
|
+
private configManager;
|
|
10
|
+
private pluginManager;
|
|
11
|
+
constructor(program: Command, configManager: ConfigManager, pluginManager: PluginManager);
|
|
12
|
+
private registerCommands;
|
|
13
|
+
/**
|
|
14
|
+
* Check compliance against governance rules
|
|
15
|
+
*/
|
|
16
|
+
private checkCompliance;
|
|
17
|
+
/**
|
|
18
|
+
* List available governance rules
|
|
19
|
+
*/
|
|
20
|
+
private listRules;
|
|
21
|
+
/**
|
|
22
|
+
* Add a new governance rule
|
|
23
|
+
*/
|
|
24
|
+
private addRule;
|
|
25
|
+
/**
|
|
26
|
+
* Remove a governance rule
|
|
27
|
+
*/
|
|
28
|
+
private removeRule;
|
|
29
|
+
/**
|
|
30
|
+
* Create a new governance policy
|
|
31
|
+
*/
|
|
32
|
+
private createPolicy;
|
|
33
|
+
/**
|
|
34
|
+
* Apply a policy to the project
|
|
35
|
+
*/
|
|
36
|
+
private applyPolicy;
|
|
37
|
+
/**
|
|
38
|
+
* Check quality gate
|
|
39
|
+
*/
|
|
40
|
+
private checkQualityGate;
|
|
41
|
+
/**
|
|
42
|
+
* Create a new quality gate
|
|
43
|
+
*/
|
|
44
|
+
private createQualityGate;
|
|
45
|
+
/**
|
|
46
|
+
* Run governance audit
|
|
47
|
+
*/
|
|
48
|
+
private runAudit;
|
|
49
|
+
/**
|
|
50
|
+
* Generate governance report
|
|
51
|
+
*/
|
|
52
|
+
private generateReport;
|
|
53
|
+
/**
|
|
54
|
+
* Implementation methods
|
|
55
|
+
*/
|
|
56
|
+
private checkRule;
|
|
57
|
+
private autoFixViolations;
|
|
58
|
+
private getAllRules;
|
|
59
|
+
private getQualityGates;
|
|
60
|
+
private evaluateQualityGate;
|
|
61
|
+
private auditSecurity;
|
|
62
|
+
private auditQuality;
|
|
63
|
+
private auditCompliance;
|
|
64
|
+
private createGovernanceReport;
|
|
65
|
+
private displayViolations;
|
|
66
|
+
private generateComplianceReport;
|
|
67
|
+
private createViolationsSummary;
|
|
68
|
+
private displayAuditResults;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=govern.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"govern.d.ts","sourceRoot":"","sources":["../../src/commands/govern.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;GAEG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa;gBAFb,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa;IAKtC,OAAO,CAAC,gBAAgB;IA0HxB;;OAEG;YACW,eAAe;IA0C7B;;OAEG;YACW,SAAS;IAgCvB;;OAEG;YACW,OAAO;IAsBrB;;OAEG;YACW,UAAU;IAwBxB;;OAEG;YACW,YAAY;IAgC1B;;OAEG;YACW,WAAW;IAoCzB;;OAEG;YACW,gBAAgB;IA4C9B;;OAEG;YACW,iBAAiB;IA+B/B;;OAEG;YACW,QAAQ;IAwCtB;;OAEG;YACW,cAAc;IAwB5B;;OAEG;YACW,SAAS;YAKT,iBAAiB;YAKjB,WAAW;YAoBX,eAAe;YAKf,mBAAmB;YAOnB,aAAa;YAKb,YAAY;YAKZ,eAAe;YAKf,sBAAsB;IAcpC,OAAO,CAAC,iBAAiB;YAiBX,wBAAwB;IAatC,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,mBAAmB;CAe5B"}
|