@wundr.io/cli 1.0.12 → 1.0.13

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 (234) hide show
  1. package/LICENSE +21 -0
  2. package/dist/ai/ai-service.d.ts +152 -0
  3. package/dist/ai/ai-service.d.ts.map +1 -0
  4. package/dist/ai/ai-service.js +430 -0
  5. package/dist/ai/ai-service.js.map +1 -0
  6. package/dist/ai/claude-client.d.ts +130 -0
  7. package/dist/ai/claude-client.d.ts.map +1 -0
  8. package/dist/ai/claude-client.js +340 -0
  9. package/dist/ai/claude-client.js.map +1 -0
  10. package/dist/ai/conversation-manager.d.ts +164 -0
  11. package/dist/ai/conversation-manager.d.ts.map +1 -0
  12. package/dist/ai/conversation-manager.js +614 -0
  13. package/dist/ai/conversation-manager.js.map +1 -0
  14. package/dist/ai/index.d.ts +5 -0
  15. package/dist/ai/index.d.ts.map +1 -0
  16. package/dist/ai/index.js +8 -0
  17. package/dist/ai/index.js.map +1 -0
  18. package/dist/cli.d.ts +36 -0
  19. package/dist/cli.d.ts.map +1 -0
  20. package/dist/cli.js +192 -0
  21. package/dist/cli.js.map +1 -0
  22. package/dist/commands/ai.d.ts +89 -0
  23. package/dist/commands/ai.d.ts.map +1 -0
  24. package/dist/commands/ai.js +954 -0
  25. package/dist/commands/ai.js.map +1 -0
  26. package/dist/commands/alignment.d.ts +78 -0
  27. package/dist/commands/alignment.d.ts.map +1 -0
  28. package/dist/commands/alignment.js +817 -0
  29. package/dist/commands/alignment.js.map +1 -0
  30. package/dist/commands/analyze-optimized.d.ts +14 -0
  31. package/dist/commands/analyze-optimized.d.ts.map +1 -0
  32. package/dist/commands/analyze-optimized.js +609 -0
  33. package/dist/commands/analyze-optimized.js.map +1 -0
  34. package/dist/commands/analyze.d.ts +65 -0
  35. package/dist/commands/analyze.d.ts.map +1 -0
  36. package/dist/commands/analyze.js +435 -0
  37. package/dist/commands/analyze.js.map +1 -0
  38. package/dist/commands/batch.d.ts +93 -0
  39. package/dist/commands/batch.d.ts.map +1 -0
  40. package/dist/commands/batch.js +854 -0
  41. package/dist/commands/batch.js.map +1 -0
  42. package/dist/commands/chat.d.ts +72 -0
  43. package/dist/commands/chat.d.ts.map +1 -0
  44. package/dist/commands/chat.js +678 -0
  45. package/dist/commands/chat.js.map +1 -0
  46. package/dist/commands/claude-init.d.ts +28 -0
  47. package/dist/commands/claude-init.d.ts.map +1 -0
  48. package/dist/commands/claude-init.js +591 -0
  49. package/dist/commands/claude-init.js.map +1 -0
  50. package/dist/commands/claude-setup.d.ts +119 -0
  51. package/dist/commands/claude-setup.d.ts.map +1 -0
  52. package/dist/commands/claude-setup.js +1079 -0
  53. package/dist/commands/claude-setup.js.map +1 -0
  54. package/dist/commands/computer-setup.d.ts +8 -0
  55. package/dist/commands/computer-setup.d.ts.map +1 -0
  56. package/dist/commands/computer-setup.js +877 -0
  57. package/dist/commands/computer-setup.js.map +1 -0
  58. package/dist/commands/create-command.d.ts +7 -0
  59. package/dist/commands/create-command.d.ts.map +1 -0
  60. package/dist/commands/create-command.js +158 -0
  61. package/dist/commands/create-command.js.map +1 -0
  62. package/dist/commands/create.d.ts +74 -0
  63. package/dist/commands/create.d.ts.map +1 -0
  64. package/dist/commands/create.js +556 -0
  65. package/dist/commands/create.js.map +1 -0
  66. package/dist/commands/dashboard.d.ts +91 -0
  67. package/dist/commands/dashboard.d.ts.map +1 -0
  68. package/dist/commands/dashboard.js +538 -0
  69. package/dist/commands/dashboard.js.map +1 -0
  70. package/dist/commands/govern.d.ts +70 -0
  71. package/dist/commands/govern.d.ts.map +1 -0
  72. package/dist/commands/govern.js +481 -0
  73. package/dist/commands/govern.js.map +1 -0
  74. package/dist/commands/governance.d.ts +17 -0
  75. package/dist/commands/governance.d.ts.map +1 -0
  76. package/dist/commands/governance.js +703 -0
  77. package/dist/commands/governance.js.map +1 -0
  78. package/dist/commands/guardian.d.ts +20 -0
  79. package/dist/commands/guardian.d.ts.map +1 -0
  80. package/dist/commands/guardian.js +597 -0
  81. package/dist/commands/guardian.js.map +1 -0
  82. package/dist/commands/init.d.ts +59 -0
  83. package/dist/commands/init.d.ts.map +1 -0
  84. package/dist/commands/init.js +650 -0
  85. package/dist/commands/init.js.map +1 -0
  86. package/dist/commands/orchestrator.d.ts +7 -0
  87. package/dist/commands/orchestrator.d.ts.map +1 -0
  88. package/dist/commands/orchestrator.js +578 -0
  89. package/dist/commands/orchestrator.js.map +1 -0
  90. package/dist/commands/performance-optimizer.d.ts +30 -0
  91. package/dist/commands/performance-optimizer.d.ts.map +1 -0
  92. package/dist/commands/performance-optimizer.js +650 -0
  93. package/dist/commands/performance-optimizer.js.map +1 -0
  94. package/dist/commands/plugins.d.ts +87 -0
  95. package/dist/commands/plugins.d.ts.map +1 -0
  96. package/dist/commands/plugins.js +685 -0
  97. package/dist/commands/plugins.js.map +1 -0
  98. package/dist/commands/rag.d.ts +7 -0
  99. package/dist/commands/rag.d.ts.map +1 -0
  100. package/dist/commands/rag.js +751 -0
  101. package/dist/commands/rag.js.map +1 -0
  102. package/dist/commands/session.d.ts +41 -0
  103. package/dist/commands/session.d.ts.map +1 -0
  104. package/dist/commands/session.js +441 -0
  105. package/dist/commands/session.js.map +1 -0
  106. package/dist/commands/setup.d.ts +24 -0
  107. package/dist/commands/setup.d.ts.map +1 -0
  108. package/dist/commands/setup.js +172 -0
  109. package/dist/commands/setup.js.map +1 -0
  110. package/dist/commands/test-init.d.ts +9 -0
  111. package/dist/commands/test-init.d.ts.map +1 -0
  112. package/dist/commands/test-init.js +222 -0
  113. package/dist/commands/test-init.js.map +1 -0
  114. package/dist/commands/test.d.ts +25 -0
  115. package/dist/commands/test.d.ts.map +1 -0
  116. package/dist/commands/test.js +217 -0
  117. package/dist/commands/test.js.map +1 -0
  118. package/dist/commands/watch.d.ts +76 -0
  119. package/dist/commands/watch.d.ts.map +1 -0
  120. package/dist/commands/watch.js +613 -0
  121. package/dist/commands/watch.js.map +1 -0
  122. package/dist/commands/worktree.d.ts +63 -0
  123. package/dist/commands/worktree.d.ts.map +1 -0
  124. package/dist/commands/worktree.js +774 -0
  125. package/dist/commands/worktree.js.map +1 -0
  126. package/dist/context/context-manager.d.ts +155 -0
  127. package/dist/context/context-manager.d.ts.map +1 -0
  128. package/dist/context/context-manager.js +383 -0
  129. package/dist/context/context-manager.js.map +1 -0
  130. package/dist/context/index.d.ts +3 -0
  131. package/dist/context/index.d.ts.map +1 -0
  132. package/dist/context/index.js +6 -0
  133. package/dist/context/index.js.map +1 -0
  134. package/dist/context/session-manager.d.ts +207 -0
  135. package/dist/context/session-manager.d.ts.map +1 -0
  136. package/dist/context/session-manager.js +686 -0
  137. package/dist/context/session-manager.js.map +1 -0
  138. package/dist/framework/command-interface.d.ts +349 -0
  139. package/dist/framework/command-interface.d.ts.map +1 -0
  140. package/dist/framework/command-interface.js +101 -0
  141. package/dist/framework/command-interface.js.map +1 -0
  142. package/dist/framework/command-registry.d.ts +173 -0
  143. package/dist/framework/command-registry.d.ts.map +1 -0
  144. package/dist/framework/command-registry.js +734 -0
  145. package/dist/framework/command-registry.js.map +1 -0
  146. package/dist/framework/completion-exporter.d.ts +79 -0
  147. package/dist/framework/completion-exporter.d.ts.map +1 -0
  148. package/dist/framework/completion-exporter.js +259 -0
  149. package/dist/framework/completion-exporter.js.map +1 -0
  150. package/dist/framework/debug-logger.d.ts +163 -0
  151. package/dist/framework/debug-logger.d.ts.map +1 -0
  152. package/dist/framework/debug-logger.js +373 -0
  153. package/dist/framework/debug-logger.js.map +1 -0
  154. package/dist/framework/error-handler.d.ts +196 -0
  155. package/dist/framework/error-handler.d.ts.map +1 -0
  156. package/dist/framework/error-handler.js +613 -0
  157. package/dist/framework/error-handler.js.map +1 -0
  158. package/dist/framework/help-generator.d.ts +78 -0
  159. package/dist/framework/help-generator.d.ts.map +1 -0
  160. package/dist/framework/help-generator.js +414 -0
  161. package/dist/framework/help-generator.js.map +1 -0
  162. package/dist/framework/index.d.ts +62 -0
  163. package/dist/framework/index.d.ts.map +1 -0
  164. package/dist/framework/index.js +95 -0
  165. package/dist/framework/index.js.map +1 -0
  166. package/dist/framework/interactive-repl.d.ts +138 -0
  167. package/dist/framework/interactive-repl.d.ts.map +1 -0
  168. package/dist/framework/interactive-repl.js +567 -0
  169. package/dist/framework/interactive-repl.js.map +1 -0
  170. package/dist/framework/output-formatter.d.ts +274 -0
  171. package/dist/framework/output-formatter.d.ts.map +1 -0
  172. package/dist/framework/output-formatter.js +545 -0
  173. package/dist/framework/output-formatter.js.map +1 -0
  174. package/dist/framework/progress-manager.d.ts +192 -0
  175. package/dist/framework/progress-manager.d.ts.map +1 -0
  176. package/dist/framework/progress-manager.js +408 -0
  177. package/dist/framework/progress-manager.js.map +1 -0
  178. package/dist/index.d.ts +8 -0
  179. package/dist/index.d.ts.map +1 -0
  180. package/dist/index.js +51 -0
  181. package/dist/index.js.map +1 -0
  182. package/dist/interactive/interactive-mode.d.ts +76 -0
  183. package/dist/interactive/interactive-mode.d.ts.map +1 -0
  184. package/dist/interactive/interactive-mode.js +732 -0
  185. package/dist/interactive/interactive-mode.js.map +1 -0
  186. package/dist/nlp/command-mapper.d.ts +174 -0
  187. package/dist/nlp/command-mapper.d.ts.map +1 -0
  188. package/dist/nlp/command-mapper.js +624 -0
  189. package/dist/nlp/command-mapper.js.map +1 -0
  190. package/dist/nlp/command-parser.d.ts +106 -0
  191. package/dist/nlp/command-parser.d.ts.map +1 -0
  192. package/dist/nlp/command-parser.js +417 -0
  193. package/dist/nlp/command-parser.js.map +1 -0
  194. package/dist/nlp/index.d.ts +5 -0
  195. package/dist/nlp/index.d.ts.map +1 -0
  196. package/dist/nlp/index.js +8 -0
  197. package/dist/nlp/index.js.map +1 -0
  198. package/dist/nlp/intent-classifier.d.ts +59 -0
  199. package/dist/nlp/intent-classifier.d.ts.map +1 -0
  200. package/dist/nlp/intent-classifier.js +384 -0
  201. package/dist/nlp/intent-classifier.js.map +1 -0
  202. package/dist/nlp/intent-parser.d.ts +152 -0
  203. package/dist/nlp/intent-parser.d.ts.map +1 -0
  204. package/dist/nlp/intent-parser.js +746 -0
  205. package/dist/nlp/intent-parser.js.map +1 -0
  206. package/dist/plugins/plugin-manager.d.ts +121 -0
  207. package/dist/plugins/plugin-manager.d.ts.map +1 -0
  208. package/dist/plugins/plugin-manager.js +606 -0
  209. package/dist/plugins/plugin-manager.js.map +1 -0
  210. package/dist/types/index.d.ts +224 -0
  211. package/dist/types/index.d.ts.map +1 -0
  212. package/dist/types/index.js +3 -0
  213. package/dist/types/index.js.map +1 -0
  214. package/dist/utils/backup-rollback-manager.d.ts +72 -0
  215. package/dist/utils/backup-rollback-manager.d.ts.map +1 -0
  216. package/dist/utils/backup-rollback-manager.js +288 -0
  217. package/dist/utils/backup-rollback-manager.js.map +1 -0
  218. package/dist/utils/claude-config-installer.d.ts +98 -0
  219. package/dist/utils/claude-config-installer.d.ts.map +1 -0
  220. package/dist/utils/claude-config-installer.js +678 -0
  221. package/dist/utils/claude-config-installer.js.map +1 -0
  222. package/dist/utils/config-manager.d.ts +73 -0
  223. package/dist/utils/config-manager.d.ts.map +1 -0
  224. package/dist/utils/config-manager.js +339 -0
  225. package/dist/utils/config-manager.js.map +1 -0
  226. package/dist/utils/error-handler.d.ts +46 -0
  227. package/dist/utils/error-handler.d.ts.map +1 -0
  228. package/dist/utils/error-handler.js +169 -0
  229. package/dist/utils/error-handler.js.map +1 -0
  230. package/dist/utils/logger.d.ts +25 -0
  231. package/dist/utils/logger.d.ts.map +1 -0
  232. package/dist/utils/logger.js +105 -0
  233. package/dist/utils/logger.js.map +1 -0
  234. package/package.json +23 -23
@@ -0,0 +1,106 @@
1
+ import type { AIService, ConversationContext } from '../ai/ai-service';
2
+ /**
3
+ * Natural language command parsing result
4
+ */
5
+ export interface ParsedCommand {
6
+ originalInput: string;
7
+ intent: string;
8
+ command: string;
9
+ args: string[];
10
+ options: Record<string, any>;
11
+ confidence: number;
12
+ needsConfirmation: boolean;
13
+ suggestions?: string[];
14
+ clarificationQuestion?: string;
15
+ executionPlan?: ExecutionStep[];
16
+ }
17
+ /**
18
+ * Execution step for complex commands
19
+ */
20
+ export interface ExecutionStep {
21
+ step: number;
22
+ description: string;
23
+ command: string;
24
+ args: string[];
25
+ options: Record<string, any>;
26
+ dependencies?: number[];
27
+ optional?: boolean;
28
+ }
29
+ /**
30
+ * Command template for pattern matching
31
+ */
32
+ export interface CommandTemplate {
33
+ pattern: RegExp;
34
+ command: string;
35
+ extractParams: (match: RegExpMatchArray) => Record<string, any>;
36
+ confidence: number;
37
+ }
38
+ /**
39
+ * Natural language command parser
40
+ */
41
+ export declare class CommandParser {
42
+ private aiService;
43
+ private commandTemplates;
44
+ constructor(aiService: AIService);
45
+ /**
46
+ * Parse natural language input into CLI command
47
+ */
48
+ parseCommand(input: string, context?: ConversationContext): Promise<ParsedCommand>;
49
+ /**
50
+ * Parse complex multi-step commands
51
+ */
52
+ parseComplexCommand(input: string, context?: ConversationContext): Promise<ParsedCommand>;
53
+ /**
54
+ * Validate parsed command before execution
55
+ */
56
+ validateCommand(parsedCommand: ParsedCommand): Promise<{
57
+ valid: boolean;
58
+ issues: string[];
59
+ recommendations?: string[];
60
+ }>;
61
+ /**
62
+ * Generate command suggestions based on input
63
+ */
64
+ generateSuggestions(input: string, context?: ConversationContext): Promise<string[]>;
65
+ /**
66
+ * Initialize command templates for pattern matching
67
+ */
68
+ private initializeTemplates;
69
+ /**
70
+ * Try to match input against command templates
71
+ */
72
+ private tryTemplateMatching;
73
+ /**
74
+ * Parse command string into components
75
+ */
76
+ private parseCommandString;
77
+ /**
78
+ * Extract intent from command
79
+ */
80
+ private extractIntent;
81
+ /**
82
+ * Create execution step from template result
83
+ */
84
+ private createExecutionStep;
85
+ /**
86
+ * Create execution step from parsed command
87
+ */
88
+ private createExecutionStepFromParsed;
89
+ /**
90
+ * Split complex input into execution steps
91
+ */
92
+ private splitIntoSteps;
93
+ /**
94
+ * Check if command is a valid Wundr command
95
+ */
96
+ private isValidWundrCommand;
97
+ /**
98
+ * Validate command-specific requirements
99
+ */
100
+ private validateCommandSpecifics;
101
+ /**
102
+ * Get fallback suggestions when AI fails
103
+ */
104
+ private getFallbackSuggestions;
105
+ }
106
+ //# sourceMappingURL=command-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-parser.d.ts","sourceRoot":"","sources":["../../src/nlp/command-parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,gBAAgB,CAAoB;gBAEhC,SAAS,EAAE,SAAS;IAKhC;;OAEG;IACG,YAAY,CAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC;IAuDzB;;OAEG;IACG,mBAAmB,CACvB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,aAAa,CAAC;IAsDzB;;OAEG;IACG,eAAe,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC;QAC3D,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,CAAC;IAwCF;;OAEG;IACG,mBAAmB,CACvB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;IAYpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4E3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoC1B;;OAEG;IACH,OAAO,CAAC,aAAa;IAQrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAcrC;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;OAEG;YACW,wBAAwB;IAwDtC;;OAEG;IACH,OAAO,CAAC,sBAAsB;CA+B/B"}
@@ -0,0 +1,417 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommandParser = void 0;
4
+ const logger_1 = require("../utils/logger");
5
+ /**
6
+ * Natural language command parser
7
+ */
8
+ class CommandParser {
9
+ aiService;
10
+ commandTemplates;
11
+ constructor(aiService) {
12
+ this.aiService = aiService;
13
+ this.commandTemplates = this.initializeTemplates();
14
+ }
15
+ /**
16
+ * Parse natural language input into CLI command
17
+ */
18
+ async parseCommand(input, context) {
19
+ try {
20
+ // First, try template-based parsing for common patterns
21
+ const templateResult = this.tryTemplateMatching(input);
22
+ if (templateResult && templateResult.confidence > 0.8) {
23
+ return {
24
+ originalInput: input,
25
+ intent: templateResult.intent,
26
+ command: templateResult.command,
27
+ args: templateResult.args,
28
+ options: templateResult.options,
29
+ confidence: templateResult.confidence,
30
+ needsConfirmation: false,
31
+ executionPlan: [this.createExecutionStep(templateResult)],
32
+ };
33
+ }
34
+ // Fall back to AI-powered parsing
35
+ const aiResult = await this.aiService.parseNaturalLanguageCommand(input, context);
36
+ // Parse the command string into components
37
+ const parsedComponents = this.parseCommandString(aiResult.command);
38
+ return {
39
+ originalInput: input,
40
+ intent: aiResult.intent,
41
+ command: parsedComponents.command,
42
+ args: parsedComponents.args,
43
+ options: parsedComponents.options,
44
+ confidence: aiResult.confidence,
45
+ needsConfirmation: aiResult.needsConfirmation,
46
+ clarificationQuestion: aiResult.clarificationQuestion,
47
+ executionPlan: [this.createExecutionStepFromParsed(parsedComponents)],
48
+ };
49
+ }
50
+ catch (error) {
51
+ logger_1.logger.error('Failed to parse command:', error);
52
+ return {
53
+ originalInput: input,
54
+ intent: 'unknown',
55
+ command: '',
56
+ args: [],
57
+ options: {},
58
+ confidence: 0,
59
+ needsConfirmation: true,
60
+ clarificationQuestion: `I couldn't understand "${input}". Could you please rephrase or provide more specific details?`,
61
+ suggestions: await this.generateSuggestions(input, context),
62
+ };
63
+ }
64
+ }
65
+ /**
66
+ * Parse complex multi-step commands
67
+ */
68
+ async parseComplexCommand(input, context) {
69
+ try {
70
+ // Check if this is a complex command (contains "and", "then", "after")
71
+ const complexPatterns = [
72
+ /\s+and\s+/i,
73
+ /\s+then\s+/i,
74
+ /\s+after\s+/i,
75
+ /[;,]\s*/,
76
+ ];
77
+ const isComplex = complexPatterns.some(pattern => pattern.test(input));
78
+ if (!isComplex) {
79
+ return await this.parseCommand(input, context);
80
+ }
81
+ // Split the input into steps
82
+ const steps = this.splitIntoSteps(input);
83
+ const executionPlan = [];
84
+ for (let i = 0; i < steps.length; i++) {
85
+ const step = steps[i];
86
+ if (!step) {
87
+ continue;
88
+ }
89
+ const stepResult = await this.parseCommand(step, context);
90
+ executionPlan.push({
91
+ step: i + 1,
92
+ description: step,
93
+ command: stepResult.command,
94
+ args: stepResult.args,
95
+ options: stepResult.options,
96
+ dependencies: i > 0 ? [i] : undefined,
97
+ });
98
+ }
99
+ return {
100
+ originalInput: input,
101
+ intent: 'complex_workflow',
102
+ command: 'batch',
103
+ args: ['--interactive'],
104
+ options: { steps: executionPlan.length },
105
+ confidence: 0.9,
106
+ needsConfirmation: true,
107
+ executionPlan,
108
+ };
109
+ }
110
+ catch (error) {
111
+ logger_1.logger.error('Failed to parse complex command:', error);
112
+ return await this.parseCommand(input, context);
113
+ }
114
+ }
115
+ /**
116
+ * Validate parsed command before execution
117
+ */
118
+ async validateCommand(parsedCommand) {
119
+ const issues = [];
120
+ const recommendations = [];
121
+ // Check if command exists
122
+ if (!parsedCommand.command || parsedCommand.command.trim() === '') {
123
+ issues.push('No valid command identified');
124
+ recommendations.push('Try rephrasing with a specific action like "analyze", "create", or "init"');
125
+ }
126
+ // Validate command format
127
+ if (parsedCommand.command && !parsedCommand.command.startsWith('wundr ')) {
128
+ if (this.isValidWundrCommand(parsedCommand.command)) {
129
+ parsedCommand.command = `wundr ${parsedCommand.command}`;
130
+ }
131
+ else {
132
+ issues.push(`Unknown command: ${parsedCommand.command}`);
133
+ recommendations.push('Use "wundr help" to see available commands');
134
+ }
135
+ }
136
+ // Check confidence level
137
+ if (parsedCommand.confidence < 0.6) {
138
+ issues.push('Low confidence in command interpretation');
139
+ recommendations.push('Consider providing more specific details about what you want to accomplish');
140
+ }
141
+ // Validate required parameters for specific commands
142
+ await this.validateCommandSpecifics(parsedCommand, issues, recommendations);
143
+ return {
144
+ valid: issues.length === 0,
145
+ issues,
146
+ recommendations: recommendations.length > 0 ? recommendations : undefined,
147
+ };
148
+ }
149
+ /**
150
+ * Generate command suggestions based on input
151
+ */
152
+ async generateSuggestions(input, context) {
153
+ try {
154
+ const suggestions = await this.aiService.suggestCommands(input, context);
155
+ return suggestions.map(s => s.command);
156
+ }
157
+ catch (error) {
158
+ logger_1.logger.error('Failed to generate suggestions:', error);
159
+ // Fallback to template-based suggestions
160
+ return this.getFallbackSuggestions(input);
161
+ }
162
+ }
163
+ /**
164
+ * Initialize command templates for pattern matching
165
+ */
166
+ initializeTemplates() {
167
+ return [
168
+ // Analysis commands
169
+ {
170
+ pattern: /analyze|check|scan|examine/i,
171
+ command: 'wundr analyze',
172
+ extractParams: match => ({}),
173
+ confidence: 0.9,
174
+ },
175
+ {
176
+ pattern: /analyze.*dependencies|dependency analysis|check deps/i,
177
+ command: 'wundr analyze --focus dependencies',
178
+ extractParams: match => ({ focus: 'dependencies' }),
179
+ confidence: 0.95,
180
+ },
181
+ {
182
+ pattern: /analyze.*duplicates|find duplicates|duplicate analysis/i,
183
+ command: 'wundr analyze --focus duplicates',
184
+ extractParams: match => ({ focus: 'duplicates' }),
185
+ confidence: 0.95,
186
+ },
187
+ // Initialization commands
188
+ {
189
+ pattern: /init|initialize|setup|start new/i,
190
+ command: 'wundr init',
191
+ extractParams: match => ({}),
192
+ confidence: 0.9,
193
+ },
194
+ {
195
+ pattern: /init.*project|initialize project|setup project/i,
196
+ command: 'wundr init --type project',
197
+ extractParams: match => ({ type: 'project' }),
198
+ confidence: 0.95,
199
+ },
200
+ // Creation commands
201
+ {
202
+ pattern: /create.*service|new service|generate service/i,
203
+ command: 'wundr create service',
204
+ extractParams: match => ({}),
205
+ confidence: 0.9,
206
+ },
207
+ {
208
+ pattern: /create.*component|new component|generate component/i,
209
+ command: 'wundr create component',
210
+ extractParams: match => ({}),
211
+ confidence: 0.9,
212
+ },
213
+ // Dashboard commands
214
+ {
215
+ pattern: /show dashboard|open dashboard|start dashboard/i,
216
+ command: 'wundr dashboard --start',
217
+ extractParams: match => ({ start: true }),
218
+ confidence: 0.9,
219
+ },
220
+ // Governance commands
221
+ {
222
+ pattern: /apply governance|governance check|compliance check/i,
223
+ command: 'wundr govern --check',
224
+ extractParams: match => ({ check: true }),
225
+ confidence: 0.9,
226
+ },
227
+ // Watch commands
228
+ {
229
+ pattern: /watch.*files|monitor files|auto.*run/i,
230
+ command: 'wundr watch',
231
+ extractParams: match => ({}),
232
+ confidence: 0.9,
233
+ },
234
+ ];
235
+ }
236
+ /**
237
+ * Try to match input against command templates
238
+ */
239
+ tryTemplateMatching(input) {
240
+ for (const template of this.commandTemplates) {
241
+ const match = input.match(template.pattern);
242
+ if (match) {
243
+ const params = template.extractParams(match);
244
+ const parsedCommand = this.parseCommandString(template.command);
245
+ return {
246
+ intent: this.extractIntent(template.command),
247
+ command: parsedCommand.command,
248
+ args: parsedCommand.args,
249
+ options: { ...parsedCommand.options, ...params },
250
+ confidence: template.confidence,
251
+ };
252
+ }
253
+ }
254
+ return null;
255
+ }
256
+ /**
257
+ * Parse command string into components
258
+ */
259
+ parseCommandString(commandStr) {
260
+ const parts = commandStr.trim().split(/\s+/);
261
+ const command = parts.slice(0, 2).join(' '); // "wundr analyze"
262
+ const remaining = parts.slice(2);
263
+ const args = [];
264
+ const options = {};
265
+ for (let i = 0; i < remaining.length; i++) {
266
+ const part = remaining[i];
267
+ if (part?.startsWith('--')) {
268
+ const optionName = part.slice(2);
269
+ const nextPart = remaining[i + 1];
270
+ if (nextPart && !nextPart.startsWith('-')) {
271
+ options[optionName] = nextPart;
272
+ i++; // Skip next part
273
+ }
274
+ else {
275
+ options[optionName] = true;
276
+ }
277
+ }
278
+ else if (part?.startsWith('-')) {
279
+ const optionName = part.slice(1);
280
+ options[optionName] = true;
281
+ }
282
+ else if (part) {
283
+ args.push(part);
284
+ }
285
+ }
286
+ return { command, args, options };
287
+ }
288
+ /**
289
+ * Extract intent from command
290
+ */
291
+ extractIntent(command) {
292
+ const parts = command.split(' ');
293
+ if (parts.length >= 2 && parts[1]) {
294
+ return parts[1]; // "analyze", "create", etc.
295
+ }
296
+ return 'unknown';
297
+ }
298
+ /**
299
+ * Create execution step from template result
300
+ */
301
+ createExecutionStep(templateResult) {
302
+ return {
303
+ step: 1,
304
+ description: `Execute ${templateResult.command}`,
305
+ command: templateResult.command,
306
+ args: templateResult.args,
307
+ options: templateResult.options,
308
+ };
309
+ }
310
+ /**
311
+ * Create execution step from parsed command
312
+ */
313
+ createExecutionStepFromParsed(parsedComponents) {
314
+ return {
315
+ step: 1,
316
+ description: `Execute ${parsedComponents.command}`,
317
+ command: parsedComponents.command,
318
+ args: parsedComponents.args,
319
+ options: parsedComponents.options,
320
+ };
321
+ }
322
+ /**
323
+ * Split complex input into execution steps
324
+ */
325
+ splitIntoSteps(input) {
326
+ // Split on coordinating conjunctions and punctuation
327
+ const separators = /\s+(and|then|after|next|followed by)[,\s]+|[;,]\s+/i;
328
+ return input
329
+ .split(separators)
330
+ .map(step => step.trim())
331
+ .filter(step => step.length > 0 &&
332
+ !['and', 'then', 'after', 'next', 'followed by'].includes(step.toLowerCase()));
333
+ }
334
+ /**
335
+ * Check if command is a valid Wundr command
336
+ */
337
+ isValidWundrCommand(command) {
338
+ const validCommands = [
339
+ 'init',
340
+ 'create',
341
+ 'analyze',
342
+ 'govern',
343
+ 'dashboard',
344
+ 'watch',
345
+ 'batch',
346
+ 'plugins',
347
+ 'chat',
348
+ 'help',
349
+ ];
350
+ const baseCommand = command.split(' ')[0];
351
+ return baseCommand ? validCommands.includes(baseCommand) : false;
352
+ }
353
+ /**
354
+ * Validate command-specific requirements
355
+ */
356
+ async validateCommandSpecifics(parsedCommand, issues, recommendations) {
357
+ const commandParts = parsedCommand.command.split(' ');
358
+ const baseCommand = commandParts[1]; // Skip "wundr"
359
+ switch (baseCommand) {
360
+ case 'create':
361
+ if (parsedCommand.args.length === 0) {
362
+ issues.push('Create command requires a type (service, component, etc.)');
363
+ recommendations.push('Specify what you want to create: "wundr create service MyService"');
364
+ }
365
+ break;
366
+ case 'analyze':
367
+ // Analyze command is flexible, but we can suggest focus areas
368
+ if (!parsedCommand.options['focus']) {
369
+ recommendations.push('Consider using --focus to target specific areas (dependencies, duplicates, quality)');
370
+ }
371
+ break;
372
+ case 'watch':
373
+ if (!parsedCommand.options['pattern'] &&
374
+ parsedCommand.args.length === 0) {
375
+ recommendations.push('Specify file patterns to watch: "wundr watch --pattern "**/*.ts""');
376
+ }
377
+ break;
378
+ case 'batch':
379
+ if (!parsedCommand.options['file'] &&
380
+ !parsedCommand.options['interactive']) {
381
+ issues.push('Batch command requires either a batch file or interactive mode');
382
+ recommendations.push('Use --file <batch-file> or --interactive for step-by-step execution');
383
+ }
384
+ break;
385
+ }
386
+ }
387
+ /**
388
+ * Get fallback suggestions when AI fails
389
+ */
390
+ getFallbackSuggestions(input) {
391
+ const suggestions = [];
392
+ const lowerInput = input.toLowerCase();
393
+ if (lowerInput.includes('analyze') || lowerInput.includes('check')) {
394
+ suggestions.push('wundr analyze --path ./src');
395
+ suggestions.push('wundr analyze --focus dependencies');
396
+ }
397
+ if (lowerInput.includes('create') || lowerInput.includes('new')) {
398
+ suggestions.push('wundr create service MyService');
399
+ suggestions.push('wundr create component MyComponent');
400
+ }
401
+ if (lowerInput.includes('init') || lowerInput.includes('setup')) {
402
+ suggestions.push('wundr init --type project');
403
+ suggestions.push('wundr init --template basic');
404
+ }
405
+ if (lowerInput.includes('dashboard') || lowerInput.includes('show')) {
406
+ suggestions.push('wundr dashboard --start');
407
+ }
408
+ if (suggestions.length === 0) {
409
+ suggestions.push('wundr help');
410
+ suggestions.push('wundr analyze --path .');
411
+ suggestions.push('wundr init');
412
+ }
413
+ return suggestions.slice(0, 3); // Limit to 3 suggestions
414
+ }
415
+ }
416
+ exports.CommandParser = CommandParser;
417
+ //# sourceMappingURL=command-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-parser.js","sourceRoot":"","sources":["../../src/nlp/command-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { CommandParser } from './command-parser';
2
+ export type { ParsedCommand, ExecutionStep } from './command-parser';
3
+ export { IntentClassifier } from './intent-classifier';
4
+ export type { Intent, IntentPattern } from './intent-classifier';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nlp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IntentClassifier = exports.CommandParser = void 0;
4
+ var command_parser_1 = require("./command-parser");
5
+ Object.defineProperty(exports, "CommandParser", { enumerable: true, get: function () { return command_parser_1.CommandParser; } });
6
+ var intent_classifier_1 = require("./intent-classifier");
7
+ Object.defineProperty(exports, "IntentClassifier", { enumerable: true, get: function () { return intent_classifier_1.IntentClassifier; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nlp/index.ts"],"names":[],"mappings":";;;AAAA,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAEtB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Intent classification for natural language commands
3
+ */
4
+ export interface Intent {
5
+ name: string;
6
+ confidence: number;
7
+ entities: Record<string, any>;
8
+ metadata?: Record<string, any>;
9
+ }
10
+ /**
11
+ * Intent classification patterns
12
+ */
13
+ export interface IntentPattern {
14
+ intent: string;
15
+ patterns: RegExp[];
16
+ entityExtractors: Record<string, (match: RegExpMatchArray) => any>;
17
+ priority: number;
18
+ }
19
+ /**
20
+ * Intent classifier for natural language processing
21
+ */
22
+ export declare class IntentClassifier {
23
+ private patterns;
24
+ constructor();
25
+ /**
26
+ * Classify user intent from natural language input
27
+ */
28
+ classifyIntent(input: string): Intent[];
29
+ /**
30
+ * Get the best intent classification
31
+ */
32
+ getBestIntent(input: string): Intent | null;
33
+ /**
34
+ * Check if input matches a specific intent
35
+ */
36
+ matchesIntent(input: string, intentName: string, minConfidence?: number): boolean;
37
+ /**
38
+ * Initialize intent patterns
39
+ */
40
+ private initializePatterns;
41
+ /**
42
+ * Calculate confidence score for a match
43
+ */
44
+ private calculateConfidence;
45
+ private extractServiceName;
46
+ private extractComponentName;
47
+ private extractTemplateType;
48
+ private extractProjectName;
49
+ private extractProjectType;
50
+ private extractPort;
51
+ private extractWatchPattern;
52
+ private extractWatchCommand;
53
+ private extractBatchFile;
54
+ private extractPluginAction;
55
+ private extractPluginName;
56
+ private extractHelpTopic;
57
+ private extractActionTarget;
58
+ }
59
+ //# sourceMappingURL=intent-classifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-classifier.d.ts","sourceRoot":"","sources":["../../src/nlp/intent-classifier.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,GAAG,CAAC,CAAC;IACnE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAkB;;IAMlC;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAqDvC;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAK3C;;OAEG;IACH,aAAa,CACX,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,aAAa,SAAM,GAClB,OAAO;IAMV;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6O1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,mBAAmB;CAK5B"}