@wundr.io/cli 1.0.0 → 1.0.1

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 (166) hide show
  1. package/README.md +696 -280
  2. package/package.json +4 -4
  3. package/src/commands/computer-setup-commands.ts +160 -0
  4. package/src/tests/computer-setup-integration.test.ts +439 -0
  5. package/src/utils/backup-rollback-manager.ts +361 -0
  6. package/src/utils/claude-config-installer.ts +732 -0
  7. package/dist/ai/ai-service.d.ts +0 -152
  8. package/dist/ai/ai-service.d.ts.map +0 -1
  9. package/dist/ai/ai-service.js +0 -430
  10. package/dist/ai/ai-service.js.map +0 -1
  11. package/dist/ai/claude-client.d.ts +0 -130
  12. package/dist/ai/claude-client.d.ts.map +0 -1
  13. package/dist/ai/claude-client.js +0 -339
  14. package/dist/ai/claude-client.js.map +0 -1
  15. package/dist/ai/conversation-manager.d.ts +0 -164
  16. package/dist/ai/conversation-manager.d.ts.map +0 -1
  17. package/dist/ai/conversation-manager.js +0 -612
  18. package/dist/ai/conversation-manager.js.map +0 -1
  19. package/dist/ai/index.d.ts +0 -5
  20. package/dist/ai/index.d.ts.map +0 -1
  21. package/dist/ai/index.js +0 -8
  22. package/dist/ai/index.js.map +0 -1
  23. package/dist/cli.d.ts +0 -36
  24. package/dist/cli.d.ts.map +0 -1
  25. package/dist/cli.js +0 -173
  26. package/dist/cli.js.map +0 -1
  27. package/dist/commands/ai.d.ts +0 -89
  28. package/dist/commands/ai.d.ts.map +0 -1
  29. package/dist/commands/ai.js +0 -735
  30. package/dist/commands/ai.js.map +0 -1
  31. package/dist/commands/analyze-optimized.d.ts +0 -14
  32. package/dist/commands/analyze-optimized.d.ts.map +0 -1
  33. package/dist/commands/analyze-optimized.js +0 -437
  34. package/dist/commands/analyze-optimized.js.map +0 -1
  35. package/dist/commands/analyze.d.ts +0 -65
  36. package/dist/commands/analyze.d.ts.map +0 -1
  37. package/dist/commands/analyze.js +0 -435
  38. package/dist/commands/analyze.js.map +0 -1
  39. package/dist/commands/batch.d.ts +0 -71
  40. package/dist/commands/batch.d.ts.map +0 -1
  41. package/dist/commands/batch.js +0 -738
  42. package/dist/commands/batch.js.map +0 -1
  43. package/dist/commands/chat.d.ts +0 -71
  44. package/dist/commands/chat.d.ts.map +0 -1
  45. package/dist/commands/chat.js +0 -674
  46. package/dist/commands/chat.js.map +0 -1
  47. package/dist/commands/claude-init.d.ts +0 -28
  48. package/dist/commands/claude-init.d.ts.map +0 -1
  49. package/dist/commands/claude-init.js +0 -587
  50. package/dist/commands/claude-init.js.map +0 -1
  51. package/dist/commands/claude-setup.d.ts +0 -32
  52. package/dist/commands/claude-setup.d.ts.map +0 -1
  53. package/dist/commands/claude-setup.js +0 -570
  54. package/dist/commands/claude-setup.js.map +0 -1
  55. package/dist/commands/computer-setup-commands.d.ts +0 -39
  56. package/dist/commands/computer-setup-commands.d.ts.map +0 -1
  57. package/dist/commands/computer-setup-commands.js +0 -563
  58. package/dist/commands/computer-setup-commands.js.map +0 -1
  59. package/dist/commands/computer-setup.d.ts +0 -7
  60. package/dist/commands/computer-setup.d.ts.map +0 -1
  61. package/dist/commands/computer-setup.js +0 -481
  62. package/dist/commands/computer-setup.js.map +0 -1
  63. package/dist/commands/create-command.d.ts +0 -7
  64. package/dist/commands/create-command.d.ts.map +0 -1
  65. package/dist/commands/create-command.js +0 -158
  66. package/dist/commands/create-command.js.map +0 -1
  67. package/dist/commands/create.d.ts +0 -74
  68. package/dist/commands/create.d.ts.map +0 -1
  69. package/dist/commands/create.js +0 -556
  70. package/dist/commands/create.js.map +0 -1
  71. package/dist/commands/dashboard.d.ts +0 -91
  72. package/dist/commands/dashboard.d.ts.map +0 -1
  73. package/dist/commands/dashboard.js +0 -537
  74. package/dist/commands/dashboard.js.map +0 -1
  75. package/dist/commands/govern.d.ts +0 -70
  76. package/dist/commands/govern.d.ts.map +0 -1
  77. package/dist/commands/govern.js +0 -480
  78. package/dist/commands/govern.js.map +0 -1
  79. package/dist/commands/init.d.ts +0 -55
  80. package/dist/commands/init.d.ts.map +0 -1
  81. package/dist/commands/init.js +0 -584
  82. package/dist/commands/init.js.map +0 -1
  83. package/dist/commands/performance-optimizer.d.ts +0 -30
  84. package/dist/commands/performance-optimizer.d.ts.map +0 -1
  85. package/dist/commands/performance-optimizer.js +0 -649
  86. package/dist/commands/performance-optimizer.js.map +0 -1
  87. package/dist/commands/plugins.d.ts +0 -87
  88. package/dist/commands/plugins.d.ts.map +0 -1
  89. package/dist/commands/plugins.js +0 -685
  90. package/dist/commands/plugins.js.map +0 -1
  91. package/dist/commands/setup.d.ts +0 -29
  92. package/dist/commands/setup.d.ts.map +0 -1
  93. package/dist/commands/setup.js +0 -399
  94. package/dist/commands/setup.js.map +0 -1
  95. package/dist/commands/test-init.d.ts +0 -9
  96. package/dist/commands/test-init.d.ts.map +0 -1
  97. package/dist/commands/test-init.js +0 -222
  98. package/dist/commands/test-init.js.map +0 -1
  99. package/dist/commands/test.d.ts +0 -25
  100. package/dist/commands/test.d.ts.map +0 -1
  101. package/dist/commands/test.js +0 -217
  102. package/dist/commands/test.js.map +0 -1
  103. package/dist/commands/watch.d.ts +0 -76
  104. package/dist/commands/watch.d.ts.map +0 -1
  105. package/dist/commands/watch.js +0 -610
  106. package/dist/commands/watch.js.map +0 -1
  107. package/dist/context/context-manager.d.ts +0 -155
  108. package/dist/context/context-manager.d.ts.map +0 -1
  109. package/dist/context/context-manager.js +0 -383
  110. package/dist/context/context-manager.js.map +0 -1
  111. package/dist/context/index.d.ts +0 -3
  112. package/dist/context/index.d.ts.map +0 -1
  113. package/dist/context/index.js +0 -6
  114. package/dist/context/index.js.map +0 -1
  115. package/dist/context/session-manager.d.ts +0 -207
  116. package/dist/context/session-manager.d.ts.map +0 -1
  117. package/dist/context/session-manager.js +0 -682
  118. package/dist/context/session-manager.js.map +0 -1
  119. package/dist/index.d.ts +0 -8
  120. package/dist/index.d.ts.map +0 -1
  121. package/dist/index.js +0 -51
  122. package/dist/index.js.map +0 -1
  123. package/dist/interactive/interactive-mode.d.ts +0 -76
  124. package/dist/interactive/interactive-mode.d.ts.map +0 -1
  125. package/dist/interactive/interactive-mode.js +0 -730
  126. package/dist/interactive/interactive-mode.js.map +0 -1
  127. package/dist/nlp/command-mapper.d.ts +0 -174
  128. package/dist/nlp/command-mapper.d.ts.map +0 -1
  129. package/dist/nlp/command-mapper.js +0 -623
  130. package/dist/nlp/command-mapper.js.map +0 -1
  131. package/dist/nlp/command-parser.d.ts +0 -106
  132. package/dist/nlp/command-parser.d.ts.map +0 -1
  133. package/dist/nlp/command-parser.js +0 -416
  134. package/dist/nlp/command-parser.js.map +0 -1
  135. package/dist/nlp/index.d.ts +0 -5
  136. package/dist/nlp/index.d.ts.map +0 -1
  137. package/dist/nlp/index.js +0 -8
  138. package/dist/nlp/index.js.map +0 -1
  139. package/dist/nlp/intent-classifier.d.ts +0 -59
  140. package/dist/nlp/intent-classifier.d.ts.map +0 -1
  141. package/dist/nlp/intent-classifier.js +0 -384
  142. package/dist/nlp/intent-classifier.js.map +0 -1
  143. package/dist/nlp/intent-parser.d.ts +0 -152
  144. package/dist/nlp/intent-parser.d.ts.map +0 -1
  145. package/dist/nlp/intent-parser.js +0 -739
  146. package/dist/nlp/intent-parser.js.map +0 -1
  147. package/dist/plugins/plugin-manager.d.ts +0 -120
  148. package/dist/plugins/plugin-manager.d.ts.map +0 -1
  149. package/dist/plugins/plugin-manager.js +0 -595
  150. package/dist/plugins/plugin-manager.js.map +0 -1
  151. package/dist/types/index.d.ts +0 -224
  152. package/dist/types/index.d.ts.map +0 -1
  153. package/dist/types/index.js +0 -3
  154. package/dist/types/index.js.map +0 -1
  155. package/dist/utils/config-manager.d.ts +0 -73
  156. package/dist/utils/config-manager.d.ts.map +0 -1
  157. package/dist/utils/config-manager.js +0 -339
  158. package/dist/utils/config-manager.js.map +0 -1
  159. package/dist/utils/error-handler.d.ts +0 -46
  160. package/dist/utils/error-handler.d.ts.map +0 -1
  161. package/dist/utils/error-handler.js +0 -169
  162. package/dist/utils/error-handler.js.map +0 -1
  163. package/dist/utils/logger.d.ts +0 -25
  164. package/dist/utils/logger.d.ts.map +0 -1
  165. package/dist/utils/logger.js +0 -94
  166. package/dist/utils/logger.js.map +0 -1
@@ -1,623 +0,0 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.CommandMapper = void 0;
37
- const events_1 = require("events");
38
- const child_process_1 = require("child_process");
39
- const logger_1 = require("../utils/logger");
40
- /**
41
- * Command mapper that converts parsed intents into executable CLI commands
42
- */
43
- class CommandMapper extends events_1.EventEmitter {
44
- config;
45
- commandTemplates;
46
- runningCommands;
47
- commandHistory;
48
- constructor(config = {}) {
49
- super();
50
- this.config = {
51
- dryRun: false,
52
- confirmDestructive: true,
53
- timeout: 300000, // 5 minutes
54
- maxConcurrentCommands: 5,
55
- enableLogging: true,
56
- safetyChecks: true,
57
- ...config,
58
- };
59
- this.commandTemplates = new Map();
60
- this.runningCommands = new Map();
61
- this.commandHistory = [];
62
- this.initializeDefaultTemplates();
63
- }
64
- /**
65
- * Map an intent result to an executable command
66
- */
67
- async mapIntentToCommand(intentResult, context) {
68
- const template = this.commandTemplates.get(intentResult.intent);
69
- if (!template) {
70
- throw new Error(`No command template found for intent: ${intentResult.intent}`);
71
- }
72
- // Build command from template
73
- const { command, args } = await this.buildCommand(template, intentResult.parameters || {}, context);
74
- // Validate command
75
- const validation = await this.validateCommand(template, intentResult.parameters || {}, context);
76
- this.emit('command_mapped', {
77
- intent: intentResult.intent,
78
- command,
79
- args,
80
- validation,
81
- template: template.intent,
82
- });
83
- return {
84
- command,
85
- args,
86
- validation,
87
- safetyLevel: template.safetyLevel,
88
- requiresConfirmation: template.requiresConfirmation,
89
- };
90
- }
91
- /**
92
- * Execute a mapped command
93
- */
94
- async executeCommand(command, args, context, options = {}) {
95
- const startTime = Date.now();
96
- const executionId = `cmd_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
97
- if (context.dryRun || this.config.dryRun) {
98
- logger_1.logger.info(`[DRY RUN] Would execute: ${command} ${args.join(' ')}`);
99
- return {
100
- command: `${command} ${args.join(' ')}`,
101
- success: true,
102
- output: '[DRY RUN] Command would execute successfully',
103
- exitCode: 0,
104
- executionTime: 0,
105
- metadata: { dryRun: true },
106
- };
107
- }
108
- return new Promise((resolve, reject) => {
109
- const childProcess = (0, child_process_1.spawn)(command, args, {
110
- cwd: context.workingDirectory,
111
- env: { ...process.env, ...context.environment },
112
- stdio: options.streaming ? 'pipe' : 'pipe',
113
- });
114
- this.runningCommands.set(executionId, childProcess);
115
- let output = '';
116
- let errorOutput = '';
117
- // Handle stdout
118
- if (childProcess.stdout) {
119
- childProcess.stdout.on('data', (data) => {
120
- const chunk = data.toString();
121
- output += chunk;
122
- if (options.onOutput) {
123
- options.onOutput(chunk);
124
- }
125
- if (options.streaming) {
126
- this.emit('command_output', {
127
- executionId,
128
- chunk,
129
- stream: 'stdout',
130
- });
131
- }
132
- });
133
- }
134
- // Handle stderr
135
- if (childProcess.stderr) {
136
- childProcess.stderr.on('data', (data) => {
137
- const chunk = data.toString();
138
- errorOutput += chunk;
139
- if (options.onError) {
140
- options.onError(chunk);
141
- }
142
- if (options.streaming) {
143
- this.emit('command_output', {
144
- executionId,
145
- chunk,
146
- stream: 'stderr',
147
- });
148
- }
149
- });
150
- }
151
- // Handle process exit
152
- childProcess.on('close', (code) => {
153
- const endTime = Date.now();
154
- const executionTime = endTime - startTime;
155
- this.runningCommands.delete(executionId);
156
- const result = {
157
- command: `${command} ${args.join(' ')}`,
158
- success: (code || 0) === 0,
159
- output,
160
- error: errorOutput || undefined,
161
- exitCode: code || 0,
162
- executionTime,
163
- metadata: {
164
- executionId,
165
- workingDirectory: context.workingDirectory,
166
- startTime: new Date(startTime),
167
- endTime: new Date(endTime),
168
- },
169
- };
170
- // Log result
171
- if (this.config.enableLogging) {
172
- logger_1.logger.debug(`Command executed: ${result.command}`, {
173
- success: result.success,
174
- exitCode: result.exitCode,
175
- executionTime: result.executionTime,
176
- });
177
- }
178
- // Add to history
179
- this.commandHistory.push(result);
180
- // Limit history size
181
- if (this.commandHistory.length > 1000) {
182
- this.commandHistory = this.commandHistory.slice(-500);
183
- }
184
- this.emit('command_completed', { executionId, result });
185
- resolve(result);
186
- });
187
- // Handle process errors
188
- childProcess.on('error', (error) => {
189
- this.runningCommands.delete(executionId);
190
- const result = {
191
- command: `${command} ${args.join(' ')}`,
192
- success: false,
193
- output,
194
- error: error.message,
195
- exitCode: -1,
196
- executionTime: Date.now() - startTime,
197
- metadata: { executionId, error: error.message },
198
- };
199
- this.emit('command_error', { executionId, error });
200
- resolve(result); // Don't reject, return error result instead
201
- });
202
- // Set timeout
203
- if (this.config.timeout > 0) {
204
- setTimeout(() => {
205
- if (this.runningCommands.has(executionId)) {
206
- childProcess.kill('SIGTERM');
207
- logger_1.logger.warn(`Command timed out after ${this.config.timeout}ms: ${command}`);
208
- }
209
- }, this.config.timeout);
210
- }
211
- });
212
- }
213
- /**
214
- * Execute a command from an intent result
215
- */
216
- async executeFromIntent(intentResult, context, options = {}) {
217
- // Map intent to command
218
- const mappedCommand = await this.mapIntentToCommand(intentResult, context);
219
- // Check validation
220
- if (!mappedCommand.validation.valid) {
221
- throw new Error(`Command validation failed: ${mappedCommand.validation.errors.join(', ')}`);
222
- }
223
- // Handle confirmation for dangerous commands
224
- if (mappedCommand.requiresConfirmation &&
225
- this.config.confirmDestructive &&
226
- !options.skipConfirmation &&
227
- context.interactive) {
228
- const confirmed = await this.confirmExecution(mappedCommand, intentResult);
229
- if (!confirmed) {
230
- throw new Error('Command execution cancelled by user');
231
- }
232
- }
233
- // Execute command
234
- return this.executeCommand(mappedCommand.command, mappedCommand.args, context, options);
235
- }
236
- /**
237
- * Register a custom command template
238
- */
239
- registerCommandTemplate(template) {
240
- this.commandTemplates.set(template.intent, template);
241
- logger_1.logger.debug(`Registered command template: ${template.intent}`);
242
- this.emit('template_registered', template);
243
- }
244
- /**
245
- * Validate a command before execution
246
- */
247
- async validateCommand(template, parameters, context) {
248
- const result = {
249
- valid: true,
250
- errors: [],
251
- warnings: [],
252
- suggestions: [],
253
- safetyLevel: template.safetyLevel,
254
- };
255
- if (!this.config.safetyChecks) {
256
- return result;
257
- }
258
- // Run validation rules
259
- for (const rule of template.validation) {
260
- try {
261
- const isValid = await this.executeValidationRule(rule, parameters, context);
262
- if (!isValid) {
263
- if (rule.severity === 'error') {
264
- result.errors.push(rule.message);
265
- result.valid = false;
266
- }
267
- else {
268
- result.warnings.push(rule.message);
269
- }
270
- }
271
- }
272
- catch (error) {
273
- result.errors.push(`Validation error: ${error instanceof Error ? error.message : 'Unknown error'}`);
274
- result.valid = false;
275
- }
276
- }
277
- // Check parameter requirements
278
- for (const mapping of template.parameterMapping) {
279
- if (mapping.required && !parameters[mapping.intentParam]) {
280
- result.errors.push(`Required parameter missing: ${mapping.intentParam}`);
281
- result.valid = false;
282
- }
283
- if (parameters[mapping.intentParam] && mapping.validation) {
284
- if (!mapping.validation(parameters[mapping.intentParam])) {
285
- result.errors.push(`Invalid value for parameter: ${mapping.intentParam}`);
286
- result.valid = false;
287
- }
288
- }
289
- }
290
- // Check dependencies
291
- if (template.dependencies) {
292
- for (const dep of template.dependencies) {
293
- const available = await this.checkCommandAvailable(dep);
294
- if (!available) {
295
- result.errors.push(`Required dependency not available: ${dep}`);
296
- result.valid = false;
297
- }
298
- }
299
- }
300
- return result;
301
- }
302
- /**
303
- * Get command execution history
304
- */
305
- getCommandHistory(filters = {}) {
306
- let history = [...this.commandHistory];
307
- if (filters.since) {
308
- history = history.filter(cmd => cmd.metadata?.['startTime'] &&
309
- new Date(cmd.metadata['startTime']) >= filters.since);
310
- }
311
- if (filters.successOnly) {
312
- history = history.filter(cmd => cmd.success);
313
- }
314
- if (filters.intent) {
315
- history = history.filter(cmd => cmd.metadata?.['intent'] === filters.intent);
316
- }
317
- if (filters.limit) {
318
- history = history.slice(-filters.limit);
319
- }
320
- return history;
321
- }
322
- /**
323
- * Cancel a running command
324
- */
325
- async cancelCommand(executionId) {
326
- const childProcess = this.runningCommands.get(executionId);
327
- if (childProcess) {
328
- childProcess.kill('SIGTERM');
329
- // Give it a moment to terminate gracefully
330
- await new Promise(resolve => setTimeout(resolve, 2000));
331
- // Force kill if still running
332
- if (!childProcess.killed) {
333
- childProcess.kill('SIGKILL');
334
- }
335
- this.runningCommands.delete(executionId);
336
- this.emit('command_cancelled', { executionId });
337
- return true;
338
- }
339
- return false;
340
- }
341
- /**
342
- * Get currently running commands
343
- */
344
- getRunningCommands() {
345
- return Array.from(this.runningCommands.entries()).map(([id, process]) => ({
346
- executionId: id,
347
- pid: process.pid || 0,
348
- command: process.spawnargs.join(' '),
349
- }));
350
- }
351
- /**
352
- * Generate command preview without executing
353
- */
354
- async previewCommand(intentResult, context) {
355
- const mappedCommand = await this.mapIntentToCommand(intentResult, context);
356
- const explanation = this.generateCommandExplanation(mappedCommand.command, mappedCommand.args, intentResult);
357
- return {
358
- command: `${mappedCommand.command} ${mappedCommand.args.join(' ')}`,
359
- explanation,
360
- warnings: mappedCommand.validation.warnings,
361
- safetyLevel: mappedCommand.safetyLevel,
362
- };
363
- }
364
- // Private methods
365
- initializeDefaultTemplates() {
366
- const defaultTemplates = [
367
- {
368
- intent: 'analyze',
369
- commandTemplate: 'wundr analyze',
370
- parameterMapping: [
371
- {
372
- intentParam: 'path',
373
- commandFlag: '--path',
374
- defaultValue: '.',
375
- validation: (value) => typeof value === 'string',
376
- },
377
- {
378
- intentParam: 'focus',
379
- commandFlag: '--focus',
380
- validation: (value) => ['dependencies', 'quality', 'security', 'performance'].includes(value),
381
- },
382
- {
383
- intentParam: 'format',
384
- commandFlag: '--format',
385
- defaultValue: 'table',
386
- validation: (value) => ['json', 'table', 'csv'].includes(value),
387
- },
388
- ],
389
- validation: [
390
- {
391
- type: 'directory_exists',
392
- rule: 'path',
393
- message: 'Target directory does not exist',
394
- severity: 'error',
395
- },
396
- ],
397
- safetyLevel: 'safe',
398
- requiresConfirmation: false,
399
- examples: [
400
- {
401
- description: 'Analyze current directory',
402
- intentInput: 'analyze the project',
403
- expectedCommand: 'wundr analyze --path .',
404
- },
405
- ],
406
- category: 'analysis',
407
- },
408
- {
409
- intent: 'create',
410
- commandTemplate: 'wundr create',
411
- parameterMapping: [
412
- {
413
- intentParam: 'type',
414
- commandFlag: '',
415
- required: true,
416
- validation: (value) => ['component', 'service', 'test', 'config'].includes(value),
417
- },
418
- {
419
- intentParam: 'name',
420
- commandFlag: '',
421
- required: true,
422
- validation: (value) => /^[a-zA-Z][a-zA-Z0-9_-]*$/.test(value),
423
- },
424
- {
425
- intentParam: 'template',
426
- commandFlag: '--template',
427
- },
428
- ],
429
- validation: [
430
- {
431
- type: 'custom',
432
- rule: async (params) => {
433
- // Check if file doesn't already exist
434
- return true; // Simplified for example
435
- },
436
- message: 'File already exists',
437
- severity: 'warning',
438
- },
439
- ],
440
- safetyLevel: 'caution',
441
- requiresConfirmation: false,
442
- examples: [
443
- {
444
- description: 'Create a new component',
445
- intentInput: 'create component UserProfile',
446
- expectedCommand: 'wundr create component UserProfile',
447
- },
448
- ],
449
- category: 'generation',
450
- },
451
- {
452
- intent: 'init',
453
- commandTemplate: 'wundr init',
454
- parameterMapping: [
455
- {
456
- intentParam: 'project',
457
- commandFlag: '',
458
- defaultValue: '.',
459
- },
460
- {
461
- intentParam: 'template',
462
- commandFlag: '--template',
463
- },
464
- {
465
- intentParam: 'force',
466
- commandFlag: '--force',
467
- transform: (value) => (value ? '--force' : ''),
468
- },
469
- ],
470
- validation: [
471
- {
472
- type: 'directory_exists',
473
- rule: 'project',
474
- message: 'Target directory does not exist',
475
- severity: 'error',
476
- },
477
- ],
478
- safetyLevel: 'caution',
479
- requiresConfirmation: true,
480
- examples: [
481
- {
482
- description: 'Initialize new project',
483
- intentInput: 'init new project',
484
- expectedCommand: 'wundr init',
485
- },
486
- ],
487
- category: 'setup',
488
- },
489
- {
490
- intent: 'dashboard',
491
- commandTemplate: 'wundr dashboard',
492
- parameterMapping: [
493
- {
494
- intentParam: 'port',
495
- commandFlag: '--port',
496
- defaultValue: '3000',
497
- validation: (value) => value > 0 && value < 65536,
498
- },
499
- {
500
- intentParam: 'view',
501
- commandFlag: '--view',
502
- },
503
- ],
504
- validation: [],
505
- safetyLevel: 'safe',
506
- requiresConfirmation: false,
507
- examples: [
508
- {
509
- description: 'Start dashboard',
510
- intentInput: 'open dashboard',
511
- expectedCommand: 'wundr dashboard --port 3000',
512
- },
513
- ],
514
- category: 'interface',
515
- },
516
- ];
517
- defaultTemplates.forEach(template => this.registerCommandTemplate(template));
518
- }
519
- async buildCommand(template, parameters, context) {
520
- const commandParts = template.commandTemplate.split(' ');
521
- const baseCommand = commandParts[0] || '';
522
- const args = commandParts.slice(1);
523
- // Add parameter-based arguments
524
- for (const mapping of template.parameterMapping) {
525
- let value = parameters[mapping.intentParam];
526
- // Apply default value
527
- if (value === undefined && mapping.defaultValue !== undefined) {
528
- value = mapping.defaultValue;
529
- }
530
- if (value !== undefined && value !== '') {
531
- // Transform value if needed
532
- if (mapping.transform) {
533
- const transformed = mapping.transform(value);
534
- if (transformed) {
535
- if (mapping.commandFlag) {
536
- args.push(mapping.commandFlag);
537
- args.push(transformed);
538
- }
539
- else {
540
- args.push(transformed);
541
- }
542
- }
543
- }
544
- else {
545
- if (mapping.commandFlag) {
546
- args.push(mapping.commandFlag);
547
- args.push(String(value));
548
- }
549
- else {
550
- args.push(String(value));
551
- }
552
- }
553
- }
554
- }
555
- return { command: baseCommand, args };
556
- }
557
- async executeValidationRule(rule, parameters, context) {
558
- switch (rule.type) {
559
- case 'parameter':
560
- return parameters[rule.rule] !== undefined;
561
- case 'file_exists':
562
- const fs = await Promise.resolve().then(() => __importStar(require('fs-extra')));
563
- const filePath = parameters[rule.rule];
564
- return filePath ? await fs.pathExists(filePath) : false;
565
- case 'directory_exists':
566
- const fsDir = await Promise.resolve().then(() => __importStar(require('fs-extra')));
567
- const dirPath = parameters[rule.rule];
568
- if (!dirPath)
569
- return false;
570
- const stats = await fsDir.stat(dirPath).catch(() => null);
571
- return stats ? stats.isDirectory() : false;
572
- case 'command_available':
573
- return this.checkCommandAvailable(rule.rule);
574
- case 'custom':
575
- if (typeof rule.rule === 'function') {
576
- return rule.rule(parameters);
577
- }
578
- return false;
579
- default:
580
- return true;
581
- }
582
- }
583
- async checkCommandAvailable(command) {
584
- return new Promise(resolve => {
585
- const child = (0, child_process_1.spawn)('which', [command], { stdio: 'ignore' });
586
- child.on('close', code => resolve(code === 0));
587
- child.on('error', () => resolve(false));
588
- });
589
- }
590
- async confirmExecution(mappedCommand, intentResult) {
591
- // In a real implementation, this would show a confirmation dialog
592
- // For now, we'll assume confirmation based on safety level
593
- if (mappedCommand.safetyLevel === 'dangerous') {
594
- logger_1.logger.warn(`Dangerous command requires confirmation: ${mappedCommand.command} ${mappedCommand.args.join(' ')}`);
595
- // In a real CLI, this would prompt the user
596
- return false; // Default to not confirmed for dangerous commands
597
- }
598
- return true;
599
- }
600
- generateCommandExplanation(command, args, intentResult) {
601
- const fullCommand = `${command} ${args.join(' ')}`;
602
- return (`This command (${fullCommand}) will execute the "${intentResult.intent}" operation` +
603
- (intentResult.parameters
604
- ? ` with parameters: ${JSON.stringify(intentResult.parameters)}`
605
- : '') +
606
- `. ${intentResult.reasoning || 'No additional context provided.'}`);
607
- }
608
- /**
609
- * Cleanup resources
610
- */
611
- destroy() {
612
- // Cancel all running commands
613
- for (const [id, process] of this.runningCommands) {
614
- process.kill('SIGTERM');
615
- }
616
- this.runningCommands.clear();
617
- this.commandHistory = [];
618
- this.removeAllListeners();
619
- }
620
- }
621
- exports.CommandMapper = CommandMapper;
622
- exports.default = CommandMapper;
623
- //# sourceMappingURL=command-mapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-mapper.js","sourceRoot":"","sources":["../../src/nlp/command-mapper.ts"],"names":[],"mappings":"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"}