@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,384 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IntentClassifier = void 0;
4
+ /**
5
+ * Intent classifier for natural language processing
6
+ */
7
+ class IntentClassifier {
8
+ patterns;
9
+ constructor() {
10
+ this.patterns = this.initializePatterns();
11
+ }
12
+ /**
13
+ * Classify user intent from natural language input
14
+ */
15
+ classifyIntent(input) {
16
+ const results = [];
17
+ const normalizedInput = input.toLowerCase().trim();
18
+ for (const pattern of this.patterns) {
19
+ for (const regex of pattern.patterns) {
20
+ const match = normalizedInput.match(regex);
21
+ if (match) {
22
+ const entities = {};
23
+ // Extract entities using pattern extractors
24
+ for (const [entityName, extractor] of Object.entries(pattern.entityExtractors)) {
25
+ try {
26
+ entities[entityName] = extractor(match);
27
+ }
28
+ catch (error) {
29
+ // Skip failed entity extraction
30
+ }
31
+ }
32
+ const confidence = this.calculateConfidence(match, pattern, normalizedInput);
33
+ results.push({
34
+ name: pattern.intent,
35
+ confidence,
36
+ entities,
37
+ metadata: {
38
+ matchedPattern: regex.source,
39
+ priority: pattern.priority,
40
+ },
41
+ });
42
+ }
43
+ }
44
+ }
45
+ // Sort by confidence and priority
46
+ return results.sort((a, b) => {
47
+ const confidenceDiff = b.confidence - a.confidence;
48
+ if (Math.abs(confidenceDiff) < 0.1) {
49
+ return ((b.metadata?.['priority'] || 0) - (a.metadata?.['priority'] || 0));
50
+ }
51
+ return confidenceDiff;
52
+ });
53
+ }
54
+ /**
55
+ * Get the best intent classification
56
+ */
57
+ getBestIntent(input) {
58
+ const intents = this.classifyIntent(input);
59
+ return intents.length > 0 && intents[0] ? intents[0] : null;
60
+ }
61
+ /**
62
+ * Check if input matches a specific intent
63
+ */
64
+ matchesIntent(input, intentName, minConfidence = 0.7) {
65
+ const intents = this.classifyIntent(input);
66
+ const matchedIntent = intents.find(intent => intent.name === intentName);
67
+ return matchedIntent ? matchedIntent.confidence >= minConfidence : false;
68
+ }
69
+ /**
70
+ * Initialize intent patterns
71
+ */
72
+ initializePatterns() {
73
+ return [
74
+ // Analysis intents
75
+ {
76
+ intent: 'analyze_project',
77
+ patterns: [
78
+ /analyze\s+(?:the\s+)?project/i,
79
+ /scan\s+(?:the\s+)?project/i,
80
+ /check\s+(?:the\s+)?project/i,
81
+ /examine\s+(?:the\s+)?project/i,
82
+ ],
83
+ entityExtractors: {},
84
+ priority: 10,
85
+ },
86
+ {
87
+ intent: 'analyze_dependencies',
88
+ patterns: [
89
+ /analyze\s+dependencies/i,
90
+ /check\s+dependencies/i,
91
+ /dependency\s+analysis/i,
92
+ /deps?\s+check/i,
93
+ /find\s+dependency\s+issues/i,
94
+ ],
95
+ entityExtractors: {},
96
+ priority: 10,
97
+ },
98
+ {
99
+ intent: 'analyze_duplicates',
100
+ patterns: [
101
+ /find\s+duplicates?/i,
102
+ /duplicate\s+(?:code|analysis)/i,
103
+ /check\s+for\s+duplicates?/i,
104
+ /detect\s+duplicates?/i,
105
+ ],
106
+ entityExtractors: {},
107
+ priority: 10,
108
+ },
109
+ {
110
+ intent: 'analyze_quality',
111
+ patterns: [
112
+ /code\s+quality/i,
113
+ /quality\s+check/i,
114
+ /analyze\s+quality/i,
115
+ /check\s+code\s+quality/i,
116
+ ],
117
+ entityExtractors: {},
118
+ priority: 10,
119
+ },
120
+ {
121
+ intent: 'analyze_path',
122
+ patterns: [
123
+ /analyze\s+(.+?)(?:\s|$)/i,
124
+ /scan\s+(.+?)(?:\s|$)/i,
125
+ /check\s+(.+?)(?:\s|$)/i,
126
+ ],
127
+ entityExtractors: {
128
+ path: match => match[1]?.trim(),
129
+ },
130
+ priority: 8,
131
+ },
132
+ // Creation intents
133
+ {
134
+ intent: 'create_service',
135
+ patterns: [
136
+ /create\s+(?:a\s+)?service/i,
137
+ /new\s+service/i,
138
+ /generate\s+service/i,
139
+ /make\s+(?:a\s+)?service/i,
140
+ ],
141
+ entityExtractors: {
142
+ name: match => this.extractServiceName(match.input || ''),
143
+ },
144
+ priority: 10,
145
+ },
146
+ {
147
+ intent: 'create_component',
148
+ patterns: [
149
+ /create\s+(?:a\s+)?component/i,
150
+ /new\s+component/i,
151
+ /generate\s+component/i,
152
+ /make\s+(?:a\s+)?component/i,
153
+ ],
154
+ entityExtractors: {
155
+ name: match => this.extractComponentName(match.input || ''),
156
+ },
157
+ priority: 10,
158
+ },
159
+ {
160
+ intent: 'create_template',
161
+ patterns: [
162
+ /create\s+(?:a\s+)?template/i,
163
+ /new\s+template/i,
164
+ /generate\s+template/i,
165
+ /make\s+(?:a\s+)?template/i,
166
+ ],
167
+ entityExtractors: {
168
+ type: match => this.extractTemplateType(match.input || ''),
169
+ },
170
+ priority: 10,
171
+ },
172
+ // Initialization intents
173
+ {
174
+ intent: 'init_project',
175
+ patterns: [
176
+ /init(?:ialize)?\s+(?:a\s+)?project/i,
177
+ /setup\s+(?:a\s+)?project/i,
178
+ /start\s+(?:a\s+)?new\s+project/i,
179
+ /create\s+(?:a\s+)?new\s+project/i,
180
+ ],
181
+ entityExtractors: {
182
+ name: match => this.extractProjectName(match.input || ''),
183
+ type: match => this.extractProjectType(match.input || ''),
184
+ },
185
+ priority: 10,
186
+ },
187
+ {
188
+ intent: 'init_config',
189
+ patterns: [
190
+ /init(?:ialize)?\s+config/i,
191
+ /setup\s+config/i,
192
+ /create\s+config/i,
193
+ /configure\s+wundr/i,
194
+ ],
195
+ entityExtractors: {},
196
+ priority: 10,
197
+ },
198
+ // Dashboard intents
199
+ {
200
+ intent: 'start_dashboard',
201
+ patterns: [
202
+ /start\s+dashboard/i,
203
+ /open\s+dashboard/i,
204
+ /show\s+dashboard/i,
205
+ /launch\s+dashboard/i,
206
+ /run\s+dashboard/i,
207
+ ],
208
+ entityExtractors: {
209
+ port: match => this.extractPort(match.input || ''),
210
+ open: match => /open/.test(match.input || ''),
211
+ },
212
+ priority: 10,
213
+ },
214
+ // Governance intents
215
+ {
216
+ intent: 'apply_governance',
217
+ patterns: [
218
+ /apply\s+governance/i,
219
+ /governance\s+check/i,
220
+ /compliance\s+check/i,
221
+ /enforce\s+rules/i,
222
+ ],
223
+ entityExtractors: {},
224
+ priority: 10,
225
+ },
226
+ // Watch intents
227
+ {
228
+ intent: 'watch_files',
229
+ patterns: [
230
+ /watch\s+files?/i,
231
+ /monitor\s+files?/i,
232
+ /auto\s+run/i,
233
+ /continuous\s+(?:build|test|check)/i,
234
+ ],
235
+ entityExtractors: {
236
+ pattern: match => this.extractWatchPattern(match.input || ''),
237
+ command: match => this.extractWatchCommand(match.input || ''),
238
+ },
239
+ priority: 10,
240
+ },
241
+ // Batch intents
242
+ {
243
+ intent: 'run_batch',
244
+ patterns: [
245
+ /run\s+batch/i,
246
+ /execute\s+batch/i,
247
+ /batch\s+(?:operation|job|process)/i,
248
+ /run\s+multiple\s+commands/i,
249
+ ],
250
+ entityExtractors: {
251
+ file: match => this.extractBatchFile(match.input || ''),
252
+ },
253
+ priority: 10,
254
+ },
255
+ // Plugin intents
256
+ {
257
+ intent: 'manage_plugins',
258
+ patterns: [
259
+ /manage\s+plugins?/i,
260
+ /plugin\s+(?:list|install|remove)/i,
261
+ /add\s+plugin/i,
262
+ /install\s+plugin/i,
263
+ ],
264
+ entityExtractors: {
265
+ action: match => this.extractPluginAction(match.input || ''),
266
+ name: match => this.extractPluginName(match.input || ''),
267
+ },
268
+ priority: 10,
269
+ },
270
+ // Help intents
271
+ {
272
+ intent: 'get_help',
273
+ patterns: [
274
+ /help/i,
275
+ /how\s+(?:do\s+i|to)/i,
276
+ /what\s+(?:is|does)/i,
277
+ /show\s+(?:commands|options)/i,
278
+ /usage/i,
279
+ ],
280
+ entityExtractors: {
281
+ topic: match => this.extractHelpTopic(match.input || ''),
282
+ },
283
+ priority: 8,
284
+ },
285
+ // Generic action intents
286
+ {
287
+ intent: 'generic_action',
288
+ patterns: [
289
+ /^(analyze|create|init|start|run|execute|show|open|install|remove|add|delete|update)/i,
290
+ ],
291
+ entityExtractors: {
292
+ action: match => match[1]?.toLowerCase(),
293
+ target: match => this.extractActionTarget(match.input || ''),
294
+ },
295
+ priority: 5,
296
+ },
297
+ ];
298
+ }
299
+ /**
300
+ * Calculate confidence score for a match
301
+ */
302
+ calculateConfidence(match, pattern, normalizedInput) {
303
+ let confidence = 0.7; // Base confidence
304
+ // Boost confidence for exact matches
305
+ if (match[0] === normalizedInput) {
306
+ confidence += 0.2;
307
+ }
308
+ // Boost confidence for longer matches
309
+ const matchRatio = match[0].length / normalizedInput.length;
310
+ confidence += Math.min(0.2, matchRatio * 0.3);
311
+ // Boost confidence for high-priority patterns
312
+ if (pattern.priority >= 10) {
313
+ confidence += 0.1;
314
+ }
315
+ // Cap confidence at 1.0
316
+ return Math.min(1.0, confidence);
317
+ }
318
+ // Entity extraction helper methods
319
+ extractServiceName(input) {
320
+ const match = input.match(/(?:service\s+)?(?:called\s+|named\s+)?([A-Z][a-zA-Z]*)/);
321
+ return match?.[1];
322
+ }
323
+ extractComponentName(input) {
324
+ const match = input.match(/(?:component\s+)?(?:called\s+|named\s+)?([A-Z][a-zA-Z]*)/);
325
+ return match?.[1];
326
+ }
327
+ extractTemplateType(input) {
328
+ const match = input.match(/template\s+for\s+([a-zA-Z]+)/);
329
+ return match?.[1];
330
+ }
331
+ extractProjectName(input) {
332
+ const match = input.match(/project\s+(?:called\s+|named\s+)?([a-zA-Z-_]+)/);
333
+ return match?.[1];
334
+ }
335
+ extractProjectType(input) {
336
+ const types = ['node', 'react', 'typescript', 'express', 'next', 'vue'];
337
+ for (const type of types) {
338
+ if (input.includes(type)) {
339
+ return type;
340
+ }
341
+ }
342
+ return undefined;
343
+ }
344
+ extractPort(input) {
345
+ const match = input.match(/port\s+(\d+)/);
346
+ return match && match[1] ? parseInt(match[1], 10) : undefined;
347
+ }
348
+ extractWatchPattern(input) {
349
+ const match = input.match(/watch\s+"([^"]+)"/);
350
+ return match?.[1];
351
+ }
352
+ extractWatchCommand(input) {
353
+ const match = input.match(/run\s+"([^"]+)"/);
354
+ return match?.[1];
355
+ }
356
+ extractBatchFile(input) {
357
+ const match = input.match(/batch\s+(?:file\s+)?([^\s]+\.(?:json|yaml|yml))/);
358
+ return match?.[1];
359
+ }
360
+ extractPluginAction(input) {
361
+ const actions = ['install', 'remove', 'list', 'enable', 'disable'];
362
+ for (const action of actions) {
363
+ if (input.includes(action)) {
364
+ return action;
365
+ }
366
+ }
367
+ return undefined;
368
+ }
369
+ extractPluginName(input) {
370
+ const match = input.match(/plugin\s+([a-zA-Z-_@\/]+)/);
371
+ return match?.[1];
372
+ }
373
+ extractHelpTopic(input) {
374
+ const match = input.match(/help\s+(?:with\s+)?([a-zA-Z]+)/);
375
+ return match?.[1];
376
+ }
377
+ extractActionTarget(input) {
378
+ const words = input.split(/\s+/);
379
+ // Return words after the action verb
380
+ return words.slice(1).join(' ') || undefined;
381
+ }
382
+ }
383
+ exports.IntentClassifier = IntentClassifier;
384
+ //# sourceMappingURL=intent-classifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-classifier.js","sourceRoot":"","sources":["../../src/nlp/intent-classifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ import { EventEmitter } from 'events';
2
+ import type { ClaudeClient, ClaudeMessage } from '../ai/claude-client';
3
+ /**
4
+ * Intent classification result
5
+ */
6
+ export interface IntentResult {
7
+ intent: string;
8
+ confidence: number;
9
+ command?: string;
10
+ parameters?: Record<string, any>;
11
+ clarification?: string;
12
+ alternatives?: Array<{
13
+ command: string;
14
+ confidence: number;
15
+ description: string;
16
+ }>;
17
+ reasoning?: string;
18
+ context?: {
19
+ entities: Entity[];
20
+ keywords: string[];
21
+ sentiment: 'positive' | 'neutral' | 'negative';
22
+ };
23
+ }
24
+ /**
25
+ * Named entity recognition result
26
+ */
27
+ export interface Entity {
28
+ text: string;
29
+ type: 'file_path' | 'package_name' | 'command' | 'option' | 'value' | 'technology';
30
+ confidence: number;
31
+ startIndex: number;
32
+ endIndex: number;
33
+ }
34
+ /**
35
+ * Command pattern for intent matching
36
+ */
37
+ export interface CommandPattern {
38
+ intent: string;
39
+ patterns: string[];
40
+ parameters: ParameterPattern[];
41
+ examples: string[];
42
+ category: string;
43
+ destructive?: boolean;
44
+ }
45
+ /**
46
+ * Parameter extraction pattern
47
+ */
48
+ export interface ParameterPattern {
49
+ name: string;
50
+ type: 'string' | 'number' | 'boolean' | 'path' | 'enum';
51
+ required: boolean;
52
+ aliases?: string[];
53
+ validation?: RegExp;
54
+ enumValues?: string[];
55
+ defaultValue?: any;
56
+ }
57
+ /**
58
+ * Context for intent analysis
59
+ */
60
+ export interface IntentContext {
61
+ projectType?: string;
62
+ recentCommands?: string[];
63
+ workingDirectory?: string;
64
+ gitStatus?: string;
65
+ conversationHistory?: ClaudeMessage[];
66
+ userPreferences?: Record<string, any>;
67
+ }
68
+ /**
69
+ * Intent parser configuration
70
+ */
71
+ export interface IntentParserConfig {
72
+ confidenceThreshold: number;
73
+ maxAlternatives: number;
74
+ enableNER: boolean;
75
+ enableContextAwareness: boolean;
76
+ cacheDuration: number;
77
+ }
78
+ /**
79
+ * Advanced NLP Intent Parser for converting natural language to CLI commands
80
+ */
81
+ export declare class IntentParser extends EventEmitter {
82
+ private claudeClient;
83
+ private config;
84
+ private commandPatterns;
85
+ private intentCache;
86
+ private entityPatterns;
87
+ constructor(claudeClient: ClaudeClient, config?: Partial<IntentParserConfig>);
88
+ /**
89
+ * Parse natural language input and extract intent
90
+ */
91
+ parseIntent(input: string, availableCommands: string[], context?: IntentContext): Promise<IntentResult>;
92
+ /**
93
+ * Extract command parameters from natural language
94
+ */
95
+ extractParameters(input: string, command: string, commandPattern?: CommandPattern): Promise<Record<string, any>>;
96
+ /**
97
+ * Suggest commands based on partial input
98
+ */
99
+ suggestCommands(partialInput: string, availableCommands: string[], context?: IntentContext, limit?: number): Promise<Array<{
100
+ command: string;
101
+ description: string;
102
+ confidence: number;
103
+ completion: string;
104
+ }>>;
105
+ /**
106
+ * Register a custom command pattern
107
+ */
108
+ registerCommandPattern(pattern: CommandPattern): void;
109
+ /**
110
+ * Batch register multiple command patterns
111
+ */
112
+ registerCommandPatterns(patterns: CommandPattern[]): void;
113
+ /**
114
+ * Get registered command patterns
115
+ */
116
+ getCommandPatterns(): CommandPattern[];
117
+ /**
118
+ * Clear intent cache
119
+ */
120
+ clearCache(): void;
121
+ /**
122
+ * Get cache statistics
123
+ */
124
+ getCacheStats(): {
125
+ size: number;
126
+ hitRate: number;
127
+ oldestEntry: Date | null;
128
+ };
129
+ private initializePatterns;
130
+ private initializeEntityRecognition;
131
+ private normalizeInput;
132
+ private getCacheKey;
133
+ private patternMatching;
134
+ private calculatePatternScore;
135
+ private calculateStringSimilarity;
136
+ private extractEntities;
137
+ private aiIntentAnalysis;
138
+ private buildContextInfo;
139
+ private combineResults;
140
+ private validateAndEnrich;
141
+ private getContextualAlternatives;
142
+ private fallbackIntentParsing;
143
+ private fallbackParameterExtraction;
144
+ private getPatternSuggestions;
145
+ private getAISuggestions;
146
+ private extractKeywords;
147
+ private analyzeSentiment;
148
+ private cacheResult;
149
+ private cleanCache;
150
+ }
151
+ export default IntentParser;
152
+ //# sourceMappingURL=intent-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-parser.d.ts","sourceRoot":"","sources":["../../src/nlp/intent-parser.ts"],"names":[],"mappings":"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"}