@wundr.io/cli 1.0.1 → 1.0.3

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 (249) hide show
  1. package/dist/ai/ai-service.d.ts +152 -0
  2. package/dist/ai/ai-service.d.ts.map +1 -0
  3. package/dist/ai/ai-service.js +430 -0
  4. package/dist/ai/ai-service.js.map +1 -0
  5. package/dist/ai/claude-client.d.ts +130 -0
  6. package/dist/ai/claude-client.d.ts.map +1 -0
  7. package/dist/ai/claude-client.js +340 -0
  8. package/dist/ai/claude-client.js.map +1 -0
  9. package/dist/ai/conversation-manager.d.ts +164 -0
  10. package/dist/ai/conversation-manager.d.ts.map +1 -0
  11. package/dist/ai/conversation-manager.js +614 -0
  12. package/dist/ai/conversation-manager.js.map +1 -0
  13. package/dist/ai/index.d.ts +5 -0
  14. package/dist/ai/index.d.ts.map +1 -0
  15. package/dist/ai/index.js +8 -0
  16. package/dist/ai/index.js.map +1 -0
  17. package/dist/cli.d.ts +36 -0
  18. package/dist/cli.d.ts.map +1 -0
  19. package/dist/cli.js +192 -0
  20. package/dist/cli.js.map +1 -0
  21. package/dist/commands/ai.d.ts +89 -0
  22. package/dist/commands/ai.d.ts.map +1 -0
  23. package/dist/commands/ai.js +735 -0
  24. package/dist/commands/ai.js.map +1 -0
  25. package/dist/commands/alignment.d.ts +78 -0
  26. package/dist/commands/alignment.d.ts.map +1 -0
  27. package/dist/commands/alignment.js +817 -0
  28. package/dist/commands/alignment.js.map +1 -0
  29. package/dist/commands/analyze-optimized.d.ts +14 -0
  30. package/dist/commands/analyze-optimized.d.ts.map +1 -0
  31. package/dist/commands/analyze-optimized.js +440 -0
  32. package/dist/commands/analyze-optimized.js.map +1 -0
  33. package/dist/commands/analyze.d.ts +65 -0
  34. package/dist/commands/analyze.d.ts.map +1 -0
  35. package/dist/commands/analyze.js +435 -0
  36. package/dist/commands/analyze.js.map +1 -0
  37. package/dist/commands/batch.d.ts +71 -0
  38. package/dist/commands/batch.d.ts.map +1 -0
  39. package/dist/commands/batch.js +738 -0
  40. package/dist/commands/batch.js.map +1 -0
  41. package/dist/commands/chat.d.ts +71 -0
  42. package/dist/commands/chat.d.ts.map +1 -0
  43. package/dist/commands/chat.js +674 -0
  44. package/dist/commands/chat.js.map +1 -0
  45. package/dist/commands/claude-init.d.ts +28 -0
  46. package/dist/commands/claude-init.d.ts.map +1 -0
  47. package/dist/commands/claude-init.js +591 -0
  48. package/dist/commands/claude-init.js.map +1 -0
  49. package/dist/commands/claude-setup.d.ts +119 -0
  50. package/dist/commands/claude-setup.d.ts.map +1 -0
  51. package/dist/commands/claude-setup.js +1073 -0
  52. package/dist/commands/claude-setup.js.map +1 -0
  53. package/dist/commands/computer-setup-commands.d.ts +53 -0
  54. package/dist/commands/computer-setup-commands.d.ts.map +1 -0
  55. package/dist/commands/computer-setup-commands.js +705 -0
  56. package/dist/commands/computer-setup-commands.js.map +1 -0
  57. package/dist/commands/computer-setup.d.ts +7 -0
  58. package/dist/commands/computer-setup.d.ts.map +1 -0
  59. package/dist/commands/computer-setup.js +849 -0
  60. package/dist/commands/computer-setup.js.map +1 -0
  61. package/dist/commands/create-command.d.ts +7 -0
  62. package/dist/commands/create-command.d.ts.map +1 -0
  63. package/dist/commands/create-command.js +158 -0
  64. package/dist/commands/create-command.js.map +1 -0
  65. package/dist/commands/create.d.ts +74 -0
  66. package/dist/commands/create.d.ts.map +1 -0
  67. package/dist/commands/create.js +556 -0
  68. package/dist/commands/create.js.map +1 -0
  69. package/dist/commands/dashboard.d.ts +91 -0
  70. package/dist/commands/dashboard.d.ts.map +1 -0
  71. package/dist/commands/dashboard.js +538 -0
  72. package/dist/commands/dashboard.js.map +1 -0
  73. package/dist/commands/govern.d.ts +70 -0
  74. package/dist/commands/govern.d.ts.map +1 -0
  75. package/dist/commands/govern.js +481 -0
  76. package/dist/commands/govern.js.map +1 -0
  77. package/dist/commands/governance.d.ts +17 -0
  78. package/dist/commands/governance.d.ts.map +1 -0
  79. package/dist/commands/governance.js +703 -0
  80. package/dist/commands/governance.js.map +1 -0
  81. package/dist/commands/guardian.d.ts +20 -0
  82. package/dist/commands/guardian.d.ts.map +1 -0
  83. package/dist/commands/guardian.js +597 -0
  84. package/dist/commands/guardian.js.map +1 -0
  85. package/dist/commands/init.d.ts +59 -0
  86. package/dist/commands/init.d.ts.map +1 -0
  87. package/dist/commands/init.js +650 -0
  88. package/dist/commands/init.js.map +1 -0
  89. package/dist/commands/performance-optimizer.d.ts +30 -0
  90. package/dist/commands/performance-optimizer.d.ts.map +1 -0
  91. package/dist/commands/performance-optimizer.js +650 -0
  92. package/dist/commands/performance-optimizer.js.map +1 -0
  93. package/dist/commands/plugins.d.ts +87 -0
  94. package/dist/commands/plugins.d.ts.map +1 -0
  95. package/dist/commands/plugins.js +685 -0
  96. package/dist/commands/plugins.js.map +1 -0
  97. package/dist/commands/rag.d.ts +7 -0
  98. package/dist/commands/rag.d.ts.map +1 -0
  99. package/dist/commands/rag.js +748 -0
  100. package/dist/commands/rag.js.map +1 -0
  101. package/dist/commands/session.d.ts +41 -0
  102. package/dist/commands/session.d.ts.map +1 -0
  103. package/dist/commands/session.js +441 -0
  104. package/dist/commands/session.js.map +1 -0
  105. package/dist/commands/setup.d.ts +29 -0
  106. package/dist/commands/setup.d.ts.map +1 -0
  107. package/dist/commands/setup.js +397 -0
  108. package/dist/commands/setup.js.map +1 -0
  109. package/dist/commands/test-init.d.ts +9 -0
  110. package/dist/commands/test-init.d.ts.map +1 -0
  111. package/dist/commands/test-init.js +222 -0
  112. package/dist/commands/test-init.js.map +1 -0
  113. package/dist/commands/test.d.ts +25 -0
  114. package/dist/commands/test.d.ts.map +1 -0
  115. package/dist/commands/test.js +217 -0
  116. package/dist/commands/test.js.map +1 -0
  117. package/dist/commands/vp.d.ts +7 -0
  118. package/dist/commands/vp.d.ts.map +1 -0
  119. package/dist/commands/vp.js +571 -0
  120. package/dist/commands/vp.js.map +1 -0
  121. package/dist/commands/watch.d.ts +76 -0
  122. package/dist/commands/watch.d.ts.map +1 -0
  123. package/dist/commands/watch.js +613 -0
  124. package/dist/commands/watch.js.map +1 -0
  125. package/dist/commands/worktree.d.ts +63 -0
  126. package/dist/commands/worktree.d.ts.map +1 -0
  127. package/dist/commands/worktree.js +774 -0
  128. package/dist/commands/worktree.js.map +1 -0
  129. package/dist/context/context-manager.d.ts +155 -0
  130. package/dist/context/context-manager.d.ts.map +1 -0
  131. package/dist/context/context-manager.js +383 -0
  132. package/dist/context/context-manager.js.map +1 -0
  133. package/dist/context/index.d.ts +3 -0
  134. package/dist/context/index.d.ts.map +1 -0
  135. package/dist/context/index.js +6 -0
  136. package/dist/context/index.js.map +1 -0
  137. package/dist/context/session-manager.d.ts +207 -0
  138. package/dist/context/session-manager.d.ts.map +1 -0
  139. package/dist/context/session-manager.js +686 -0
  140. package/dist/context/session-manager.js.map +1 -0
  141. package/dist/index.d.ts +8 -0
  142. package/dist/index.d.ts.map +1 -0
  143. package/dist/index.js +51 -0
  144. package/dist/index.js.map +1 -0
  145. package/dist/interactive/interactive-mode.d.ts +76 -0
  146. package/dist/interactive/interactive-mode.d.ts.map +1 -0
  147. package/dist/interactive/interactive-mode.js +732 -0
  148. package/dist/interactive/interactive-mode.js.map +1 -0
  149. package/dist/nlp/command-mapper.d.ts +174 -0
  150. package/dist/nlp/command-mapper.d.ts.map +1 -0
  151. package/dist/nlp/command-mapper.js +624 -0
  152. package/dist/nlp/command-mapper.js.map +1 -0
  153. package/dist/nlp/command-parser.d.ts +106 -0
  154. package/dist/nlp/command-parser.d.ts.map +1 -0
  155. package/dist/nlp/command-parser.js +417 -0
  156. package/dist/nlp/command-parser.js.map +1 -0
  157. package/dist/nlp/index.d.ts +5 -0
  158. package/dist/nlp/index.d.ts.map +1 -0
  159. package/dist/nlp/index.js +8 -0
  160. package/dist/nlp/index.js.map +1 -0
  161. package/dist/nlp/intent-classifier.d.ts +59 -0
  162. package/dist/nlp/intent-classifier.d.ts.map +1 -0
  163. package/dist/nlp/intent-classifier.js +384 -0
  164. package/dist/nlp/intent-classifier.js.map +1 -0
  165. package/dist/nlp/intent-parser.d.ts +152 -0
  166. package/dist/nlp/intent-parser.d.ts.map +1 -0
  167. package/dist/nlp/intent-parser.js +744 -0
  168. package/dist/nlp/intent-parser.js.map +1 -0
  169. package/dist/plugins/plugin-manager.d.ts +120 -0
  170. package/dist/plugins/plugin-manager.d.ts.map +1 -0
  171. package/dist/plugins/plugin-manager.js +595 -0
  172. package/dist/plugins/plugin-manager.js.map +1 -0
  173. package/dist/types/index.d.ts +224 -0
  174. package/dist/types/index.d.ts.map +1 -0
  175. package/dist/types/index.js +3 -0
  176. package/dist/types/index.js.map +1 -0
  177. package/dist/utils/backup-rollback-manager.d.ts +72 -0
  178. package/dist/utils/backup-rollback-manager.d.ts.map +1 -0
  179. package/dist/utils/backup-rollback-manager.js +289 -0
  180. package/dist/utils/backup-rollback-manager.js.map +1 -0
  181. package/dist/utils/claude-config-installer.d.ts +94 -0
  182. package/dist/utils/claude-config-installer.d.ts.map +1 -0
  183. package/dist/utils/claude-config-installer.js +628 -0
  184. package/dist/utils/claude-config-installer.js.map +1 -0
  185. package/dist/utils/config-manager.d.ts +73 -0
  186. package/dist/utils/config-manager.d.ts.map +1 -0
  187. package/dist/utils/config-manager.js +339 -0
  188. package/dist/utils/config-manager.js.map +1 -0
  189. package/dist/utils/error-handler.d.ts +46 -0
  190. package/dist/utils/error-handler.d.ts.map +1 -0
  191. package/dist/utils/error-handler.js +169 -0
  192. package/dist/utils/error-handler.js.map +1 -0
  193. package/dist/utils/logger.d.ts +25 -0
  194. package/dist/utils/logger.d.ts.map +1 -0
  195. package/dist/utils/logger.js +105 -0
  196. package/dist/utils/logger.js.map +1 -0
  197. package/package.json +23 -4
  198. package/src/ai/ai-service.ts +22 -19
  199. package/src/ai/claude-client.ts +20 -16
  200. package/src/ai/conversation-manager.ts +37 -30
  201. package/src/cli.ts +42 -13
  202. package/src/commands/ai.ts +59 -57
  203. package/src/commands/alignment.ts +1212 -0
  204. package/src/commands/analyze-optimized.ts +70 -62
  205. package/src/commands/analyze.ts +22 -20
  206. package/src/commands/batch.ts +41 -38
  207. package/src/commands/chat.ts +37 -34
  208. package/src/commands/claude-init.ts +38 -30
  209. package/src/commands/claude-setup.ts +692 -97
  210. package/src/commands/computer-setup-commands.ts +45 -39
  211. package/src/commands/computer-setup.ts +474 -4
  212. package/src/commands/create-command.ts +7 -7
  213. package/src/commands/create.ts +36 -33
  214. package/src/commands/dashboard.ts +33 -28
  215. package/src/commands/govern.ts +34 -29
  216. package/src/commands/governance.ts +1005 -0
  217. package/src/commands/guardian.ts +887 -0
  218. package/src/commands/init.ts +112 -22
  219. package/src/commands/performance-optimizer.ts +48 -42
  220. package/src/commands/plugins.ts +35 -32
  221. package/src/commands/project-update.ts +1053 -0
  222. package/src/commands/rag.ts +904 -0
  223. package/src/commands/session.ts +631 -0
  224. package/src/commands/setup.ts +35 -31
  225. package/src/commands/test-init.ts +6 -5
  226. package/src/commands/test.ts +7 -6
  227. package/src/commands/vp.ts +762 -0
  228. package/src/commands/watch.ts +44 -33
  229. package/src/commands/worktree.ts +1057 -0
  230. package/src/context/context-manager.ts +15 -12
  231. package/src/context/session-manager.ts +51 -40
  232. package/src/index.ts +7 -6
  233. package/src/interactive/interactive-mode.ts +25 -18
  234. package/src/lib/conflict-resolution.ts +28 -0
  235. package/src/lib/merge-strategy.ts +28 -0
  236. package/src/lib/safety-mechanisms.ts +47 -0
  237. package/src/lib/state-detection.ts +28 -0
  238. package/src/nlp/command-mapper.ts +35 -30
  239. package/src/nlp/command-parser.ts +20 -17
  240. package/src/nlp/intent-classifier.ts +7 -7
  241. package/src/nlp/intent-parser.ts +61 -49
  242. package/src/plugins/plugin-manager.ts +27 -23
  243. package/src/types/index.ts +1 -1
  244. package/src/types/modules.d.ts +1 -0
  245. package/src/utils/backup-rollback-manager.ts +13 -11
  246. package/src/utils/claude-config-installer.ts +18 -16
  247. package/src/utils/config-manager.ts +12 -9
  248. package/src/utils/error-handler.ts +5 -3
  249. package/src/utils/logger.ts +35 -12
@@ -1,12 +1,14 @@
1
- import { Command } from 'commander';
2
- import inquirer from 'inquirer';
3
1
  import chalk from 'chalk';
4
- import { ConfigManager } from '../utils/config-manager';
5
- import { PluginManager } from '../plugins/plugin-manager';
2
+ import inquirer from 'inquirer';
3
+
6
4
  import { AIService } from '../ai/ai-service';
7
- import { logger } from '../utils/logger';
8
5
  import { errorHandler } from '../utils/error-handler';
9
- import { ChatSession } from '../types';
6
+ import { logger } from '../utils/logger';
7
+
8
+ import type { PluginManager } from '../plugins/plugin-manager';
9
+ import type { ChatSession } from '../types';
10
+ import type { ConfigManager } from '../utils/config-manager';
11
+ import type { Command } from 'commander';
10
12
 
11
13
  /**
12
14
  * AI commands for AI-powered development features
@@ -17,7 +19,7 @@ export class AICommands {
17
19
  constructor(
18
20
  private program: Command,
19
21
  private configManager: ConfigManager,
20
- private _pluginManager: PluginManager
22
+ private _pluginManager: PluginManager,
21
23
  ) {
22
24
  this.aiService = new AIService(configManager);
23
25
  this.registerCommands();
@@ -48,7 +50,7 @@ export class AICommands {
48
50
  .option(
49
51
  '--focus <aspect>',
50
52
  'review focus (security, performance, style)',
51
- 'all'
53
+ 'all',
52
54
  )
53
55
  .option('--severity <level>', 'minimum issue severity', 'info')
54
56
  .option('--suggest-fixes', 'suggest fixes for issues')
@@ -63,12 +65,12 @@ export class AICommands {
63
65
  .option(
64
66
  '--type <type>',
65
67
  'refactoring type (extract, rename, optimize)',
66
- 'optimize'
68
+ 'optimize',
67
69
  )
68
70
  .option(
69
71
  '--scope <scope>',
70
72
  'refactoring scope (function, class, file)',
71
- 'function'
73
+ 'function',
72
74
  )
73
75
  .option('--dry-run', 'show refactoring plan without applying')
74
76
  .action(async (target, options) => {
@@ -82,12 +84,12 @@ export class AICommands {
82
84
  .option(
83
85
  '--type <type>',
84
86
  'documentation type (api, readme, comments)',
85
- 'api'
87
+ 'api',
86
88
  )
87
89
  .option(
88
90
  '--format <format>',
89
91
  'output format (markdown, html, json)',
90
- 'markdown'
92
+ 'markdown',
91
93
  )
92
94
  .option('--include-examples', 'include code examples')
93
95
  .action(async (target, options) => {
@@ -101,12 +103,12 @@ export class AICommands {
101
103
  .option(
102
104
  '--framework <framework>',
103
105
  'testing framework (jest, mocha, vitest)',
104
- 'jest'
106
+ 'jest',
105
107
  )
106
108
  .option(
107
109
  '--coverage <level>',
108
110
  'coverage level (unit, integration, e2e)',
109
- 'unit'
111
+ 'unit',
110
112
  )
111
113
  .option('--mocks', 'generate mock objects')
112
114
  .action(async (target, options) => {
@@ -132,7 +134,7 @@ export class AICommands {
132
134
  .option(
133
135
  '--aspect <aspect>',
134
136
  'analysis aspect (complexity, maintainability, security)',
135
- 'all'
137
+ 'all',
136
138
  )
137
139
  .option('--suggestions', 'include improvement suggestions')
138
140
  .action(async (target, options) => {
@@ -146,7 +148,7 @@ export class AICommands {
146
148
  .option(
147
149
  '--focus <focus>',
148
150
  'optimization focus (speed, memory, bundle)',
149
- 'speed'
151
+ 'speed',
150
152
  )
151
153
  .option('--benchmarks', 'run before/after benchmarks')
152
154
  .action(async (target, options) => {
@@ -207,7 +209,7 @@ export class AICommands {
207
209
  if (!this.aiService.isReady()) {
208
210
  console.log(chalk.red('\nāŒ AI service not configured'));
209
211
  console.log(
210
- chalk.yellow('Run `wundr ai setup` to configure your API key first')
212
+ chalk.yellow('Run `wundr ai setup` to configure your API key first'),
211
213
  );
212
214
  return;
213
215
  }
@@ -238,7 +240,7 @@ export class AICommands {
238
240
  'WUNDR_AI_GENERATE_FAILED',
239
241
  'Failed to generate code',
240
242
  { type, options },
241
- true
243
+ true,
242
244
  );
243
245
  }
244
246
  }
@@ -252,7 +254,7 @@ export class AICommands {
252
254
  if (!this.aiService.isReady()) {
253
255
  console.log(chalk.red('\nāŒ AI service not configured'));
254
256
  console.log(
255
- chalk.yellow('Run `wundr ai setup` to configure your API key first')
257
+ chalk.yellow('Run `wundr ai setup` to configure your API key first'),
256
258
  );
257
259
  return;
258
260
  }
@@ -297,7 +299,7 @@ export class AICommands {
297
299
  'WUNDR_AI_REVIEW_FAILED',
298
300
  'Failed to review code',
299
301
  { files, options },
300
- true
302
+ true,
301
303
  );
302
304
  }
303
305
  }
@@ -311,7 +313,7 @@ export class AICommands {
311
313
  if (!this.aiService.isReady()) {
312
314
  console.log(chalk.red('\nāŒ AI service not configured'));
313
315
  console.log(
314
- chalk.yellow('Run `wundr ai setup` to configure your API key first')
316
+ chalk.yellow('Run `wundr ai setup` to configure your API key first'),
315
317
  );
316
318
  return;
317
319
  }
@@ -354,7 +356,7 @@ export class AICommands {
354
356
  'WUNDR_AI_REFACTOR_FAILED',
355
357
  'Failed to refactor code',
356
358
  { target, options },
357
- true
359
+ true,
358
360
  );
359
361
  }
360
362
  }
@@ -368,13 +370,13 @@ export class AICommands {
368
370
  if (!this.aiService.isReady()) {
369
371
  console.log(chalk.red('\nāŒ AI service not configured'));
370
372
  console.log(
371
- chalk.yellow('Run `wundr ai setup` to configure your API key first')
373
+ chalk.yellow('Run `wundr ai setup` to configure your API key first'),
372
374
  );
373
375
  return;
374
376
  }
375
377
 
376
378
  logger.info(
377
- `Generating ${options.type} documentation for ${chalk.cyan(target)}...`
379
+ `Generating ${options.type} documentation for ${chalk.cyan(target)}...`,
378
380
  );
379
381
 
380
382
  const code = await this.readFile(target);
@@ -389,7 +391,7 @@ export class AICommands {
389
391
  const outputPath = this.getDocsOutputPath(
390
392
  target,
391
393
  options.type,
392
- options.format
394
+ options.format,
393
395
  );
394
396
  await this.saveGeneratedDocs(_docs, outputPath);
395
397
 
@@ -399,7 +401,7 @@ export class AICommands {
399
401
  'WUNDR_AI_DOCS_FAILED',
400
402
  'Failed to generate documentation',
401
403
  { target, options },
402
- true
404
+ true,
403
405
  );
404
406
  }
405
407
  }
@@ -413,7 +415,7 @@ export class AICommands {
413
415
  if (!this.aiService.isReady()) {
414
416
  console.log(chalk.red('\nāŒ AI service not configured'));
415
417
  console.log(
416
- chalk.yellow('Run `wundr ai setup` to configure your API key first')
418
+ chalk.yellow('Run `wundr ai setup` to configure your API key first'),
417
419
  );
418
420
  return;
419
421
  }
@@ -438,7 +440,7 @@ export class AICommands {
438
440
  'WUNDR_AI_TEST_FAILED',
439
441
  'Failed to generate tests',
440
442
  { target, options },
441
- true
443
+ true,
442
444
  );
443
445
  }
444
446
  }
@@ -452,7 +454,7 @@ export class AICommands {
452
454
  if (!this.aiService.isReady()) {
453
455
  console.log(chalk.red('\nāŒ AI service not configured'));
454
456
  console.log(
455
- chalk.yellow('Run `wundr ai setup` to configure your API key first')
457
+ chalk.yellow('Run `wundr ai setup` to configure your API key first'),
456
458
  );
457
459
  return;
458
460
  }
@@ -469,7 +471,7 @@ export class AICommands {
469
471
  'WUNDR_AI_CHAT_FAILED',
470
472
  'Failed to start chat session',
471
473
  { options },
472
- true
474
+ true,
473
475
  );
474
476
  }
475
477
  }
@@ -483,7 +485,7 @@ export class AICommands {
483
485
  if (!this.aiService.isReady()) {
484
486
  console.log(chalk.red('\nāŒ AI service not configured'));
485
487
  console.log(
486
- chalk.yellow('Run `wundr ai setup` to configure your API key first')
488
+ chalk.yellow('Run `wundr ai setup` to configure your API key first'),
487
489
  );
488
490
  return;
489
491
  }
@@ -504,7 +506,7 @@ export class AICommands {
504
506
  'WUNDR_AI_ANALYZE_FAILED',
505
507
  'Failed to analyze code',
506
508
  { target, options },
507
- true
509
+ true,
508
510
  );
509
511
  }
510
512
  }
@@ -518,7 +520,7 @@ export class AICommands {
518
520
  if (!this.aiService.isReady()) {
519
521
  console.log(chalk.red('\nāŒ AI service not configured'));
520
522
  console.log(
521
- chalk.yellow('Run `wundr ai setup` to configure your API key first')
523
+ chalk.yellow('Run `wundr ai setup` to configure your API key first'),
522
524
  );
523
525
  return;
524
526
  }
@@ -562,7 +564,7 @@ export class AICommands {
562
564
  'WUNDR_AI_OPTIMIZE_FAILED',
563
565
  'Failed to optimize code',
564
566
  { target, options },
565
- true
567
+ true,
566
568
  );
567
569
  }
568
570
  }
@@ -580,7 +582,7 @@ export class AICommands {
580
582
  'WUNDR_AI_CONFIG_SET_FAILED',
581
583
  'Failed to set AI configuration',
582
584
  { key, value },
583
- true
585
+ true,
584
586
  );
585
587
  }
586
588
  }
@@ -602,7 +604,7 @@ export class AICommands {
602
604
  'WUNDR_AI_CONFIG_GET_FAILED',
603
605
  'Failed to get AI configuration',
604
606
  { key },
605
- true
607
+ true,
606
608
  );
607
609
  }
608
610
  }
@@ -614,7 +616,7 @@ export class AICommands {
614
616
  try {
615
617
  console.log(chalk.blue('\nšŸ¤– Wundr AI Setup'));
616
618
  console.log(
617
- chalk.gray('Configure your AI assistant for enhanced CLI features\n')
619
+ chalk.gray('Configure your AI assistant for enhanced CLI features\n'),
618
620
  );
619
621
 
620
622
  let { provider, apiKey } = options;
@@ -671,7 +673,7 @@ export class AICommands {
671
673
  console.log(chalk.green('āœ… API key is valid and working!'));
672
674
  } else {
673
675
  console.log(
674
- chalk.red(`āŒ API key validation failed: ${validation.error}`)
676
+ chalk.red(`āŒ API key validation failed: ${validation.error}`),
675
677
  );
676
678
  return;
677
679
  }
@@ -688,7 +690,7 @@ export class AICommands {
688
690
  'WUNDR_AI_SETUP_FAILED',
689
691
  'Failed to setup AI configuration',
690
692
  { options },
691
- true
693
+ true,
692
694
  );
693
695
  }
694
696
  }
@@ -705,24 +707,24 @@ export class AICommands {
705
707
  console.log(`Provider: ${chalk.cyan(status.provider)}`);
706
708
  console.log(`Model: ${chalk.cyan(status.model)}`);
707
709
  console.log(
708
- `API Key: ${status.hasApiKey ? chalk.green('āœ… Configured') : chalk.red('āŒ Missing')}`
710
+ `API Key: ${status.hasApiKey ? chalk.green('āœ… Configured') : chalk.red('āŒ Missing')}`,
709
711
  );
710
712
  console.log(
711
- `Status: ${status.ready ? chalk.green('āœ… Ready') : chalk.yellow('āš ļø Not Ready')}`
713
+ `Status: ${status.ready ? chalk.green('āœ… Ready') : chalk.yellow('āš ļø Not Ready')}`,
712
714
  );
713
715
 
714
716
  if (!status.hasApiKey) {
715
717
  console.log(chalk.yellow('\nāš ļø API key not configured'));
716
718
  console.log(
717
- chalk.gray('Run `wundr ai setup` to configure your API key')
719
+ chalk.gray('Run `wundr ai setup` to configure your API key'),
718
720
  );
719
721
  console.log(
720
- chalk.gray('Or set the CLAUDE_API_KEY environment variable')
722
+ chalk.gray('Or set the CLAUDE_API_KEY environment variable'),
721
723
  );
722
724
  } else if (!status.ready) {
723
725
  console.log(chalk.yellow('\nāš ļø AI service not ready'));
724
726
  console.log(
725
- chalk.gray('Try running `wundr ai validate` to check connection')
727
+ chalk.gray('Try running `wundr ai validate` to check connection'),
726
728
  );
727
729
  }
728
730
  } catch (error) {
@@ -730,7 +732,7 @@ export class AICommands {
730
732
  'WUNDR_AI_STATUS_FAILED',
731
733
  'Failed to get AI status',
732
734
  {},
733
- true
735
+ true,
734
736
  );
735
737
  }
736
738
  }
@@ -757,12 +759,12 @@ export class AICommands {
757
759
  if (validation.error?.includes('API key')) {
758
760
  console.log(chalk.yellow('\nšŸ’” Try:'));
759
761
  console.log(
760
- chalk.gray('1. Run `wundr ai setup` to configure your API key')
762
+ chalk.gray('1. Run `wundr ai setup` to configure your API key'),
761
763
  );
762
764
  console.log(
763
765
  chalk.gray(
764
- '2. Check your API key is valid and has sufficient credits'
765
- )
766
+ '2. Check your API key is valid and has sufficient credits',
767
+ ),
766
768
  );
767
769
  console.log(chalk.gray('3. Verify your internet connection'));
768
770
  }
@@ -772,7 +774,7 @@ export class AICommands {
772
774
  'WUNDR_AI_VALIDATE_FAILED',
773
775
  'Failed to validate AI connection',
774
776
  {},
775
- true
777
+ true,
776
778
  );
777
779
  }
778
780
  }
@@ -830,7 +832,7 @@ export class AICommands {
830
832
 
831
833
  private async saveGeneratedCode(
832
834
  _code: string,
833
- outputPath: string
835
+ outputPath: string,
834
836
  ): Promise<void> {
835
837
  // Save generated code to file
836
838
  logger.debug(`Saving generated code to ${outputPath}`);
@@ -871,7 +873,7 @@ export class AICommands {
871
873
  private getDocsOutputPath(
872
874
  target: string,
873
875
  type: string,
874
- format: string
876
+ format: string,
875
877
  ): string {
876
878
  const ext = format === 'markdown' ? 'md' : format;
877
879
  return `docs/${target}.${type}.${ext}`;
@@ -879,7 +881,7 @@ export class AICommands {
879
881
 
880
882
  private async saveGeneratedDocs(
881
883
  _docs: string,
882
- outputPath: string
884
+ outputPath: string,
883
885
  ): Promise<void> {
884
886
  // Save generated documentation
885
887
  logger.debug(`Saving documentation to ${outputPath}`);
@@ -948,8 +950,8 @@ export class AICommands {
948
950
  console.log(chalk.red(`Error: ${error.message}`));
949
951
  console.log(
950
952
  chalk.yellow(
951
- '\nTip: Try `wundr ai validate` to check your connection'
952
- )
953
+ '\nTip: Try `wundr ai validate` to check your connection',
954
+ ),
953
955
  );
954
956
  }
955
957
  }
@@ -977,7 +979,7 @@ export class AICommands {
977
979
 
978
980
  private async applyOptimization(
979
981
  target: string,
980
- _optimization: any
982
+ _optimization: any,
981
983
  ): Promise<void> {
982
984
  // Apply optimization changes
983
985
  logger.debug(`Applying optimization to ${target}`);
@@ -986,10 +988,10 @@ export class AICommands {
986
988
  private displayBenchmarkComparison(before: any, after: any): void {
987
989
  console.log(chalk.blue('\nBenchmark Comparison:'));
988
990
  console.log(
989
- `Time: ${before.time}ms → ${after.time}ms (${after.time - before.time}ms)`
991
+ `Time: ${before.time}ms → ${after.time}ms (${after.time - before.time}ms)`,
990
992
  );
991
993
  console.log(
992
- `Memory: ${before.memory}MB → ${after.memory}MB (${after.memory - before.memory}MB)`
994
+ `Memory: ${before.memory}MB → ${after.memory}MB (${after.memory - before.memory}MB)`,
993
995
  );
994
996
  }
995
997
  }