@wundr.io/cli 1.0.11 → 1.0.12

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 (269) hide show
  1. package/bin/wundr.js +8 -4
  2. package/package.json +23 -23
  3. package/src/ai/ai-service.ts +16 -17
  4. package/src/ai/claude-client.ts +16 -16
  5. package/src/ai/conversation-manager.ts +29 -29
  6. package/src/cli.ts +4 -4
  7. package/src/commands/ai.ts +246 -78
  8. package/src/commands/alignment.ts +74 -74
  9. package/src/commands/analyze-optimized.ts +111 -78
  10. package/src/commands/analyze.ts +14 -14
  11. package/src/commands/batch.ts +179 -42
  12. package/src/commands/chat.ts +37 -30
  13. package/src/commands/claude-init.ts +41 -45
  14. package/src/commands/claude-setup.ts +204 -119
  15. package/src/commands/computer-setup.ts +85 -43
  16. package/src/commands/create-command.ts +4 -4
  17. package/src/commands/create.ts +27 -27
  18. package/src/commands/dashboard.ts +24 -24
  19. package/src/commands/govern.ts +25 -25
  20. package/src/commands/governance.ts +34 -34
  21. package/src/commands/guardian.ts +56 -56
  22. package/src/commands/init.ts +25 -22
  23. package/src/commands/orchestrator.ts +68 -41
  24. package/src/commands/performance-optimizer.ts +34 -35
  25. package/src/commands/plugins.ts +27 -27
  26. package/src/commands/project-update.ts +175 -72
  27. package/src/commands/rag.ts +185 -78
  28. package/src/commands/session.ts +35 -35
  29. package/src/commands/setup.ts +40 -344
  30. package/src/commands/test-init.ts +3 -3
  31. package/src/commands/test.ts +4 -4
  32. package/src/commands/watch.ts +28 -29
  33. package/src/commands/worktree.ts +49 -49
  34. package/src/context/context-manager.ts +10 -10
  35. package/src/context/session-manager.ts +41 -41
  36. package/src/framework/command-interface.ts +520 -0
  37. package/src/framework/command-registry.ts +942 -0
  38. package/src/framework/completion-exporter.ts +383 -0
  39. package/src/framework/debug-logger.ts +519 -0
  40. package/src/framework/error-handler.ts +867 -0
  41. package/src/framework/help-generator.ts +540 -0
  42. package/src/framework/index.ts +169 -0
  43. package/src/framework/interactive-repl.ts +703 -0
  44. package/src/framework/output-formatter.ts +834 -0
  45. package/src/framework/progress-manager.ts +539 -0
  46. package/src/index.ts +4 -4
  47. package/src/interactive/interactive-mode.ts +16 -16
  48. package/src/lib/conflict-resolution.ts +799 -9
  49. package/src/lib/merge-strategy.ts +529 -7
  50. package/src/lib/safety-mechanisms.ts +422 -18
  51. package/src/lib/state-detection.ts +1015 -13
  52. package/src/nlp/command-mapper.ts +29 -29
  53. package/src/nlp/command-parser.ts +17 -17
  54. package/src/nlp/intent-classifier.ts +7 -7
  55. package/src/nlp/intent-parser.ts +54 -52
  56. package/src/plugins/plugin-manager.ts +61 -39
  57. package/src/tests/computer-setup-integration.test.ts +46 -15
  58. package/src/types/modules.d.ts +424 -1
  59. package/src/utils/backup-rollback-manager.ts +11 -8
  60. package/src/utils/config-manager.ts +3 -3
  61. package/src/utils/error-handler.ts +2 -2
  62. package/src/utils/logger.ts +22 -22
  63. package/templates/batch/ci-cd.yaml +7 -7
  64. package/test-suites/api/health.spec.ts +20 -23
  65. package/test-suites/helpers/test-config.ts +14 -13
  66. package/test-suites/ui/accessibility.spec.ts +27 -22
  67. package/test-suites/ui/smoke.spec.ts +26 -21
  68. package/LICENSE +0 -21
  69. package/dist/ai/ai-service.d.ts +0 -152
  70. package/dist/ai/ai-service.d.ts.map +0 -1
  71. package/dist/ai/ai-service.js +0 -430
  72. package/dist/ai/ai-service.js.map +0 -1
  73. package/dist/ai/claude-client.d.ts +0 -130
  74. package/dist/ai/claude-client.d.ts.map +0 -1
  75. package/dist/ai/claude-client.js +0 -340
  76. package/dist/ai/claude-client.js.map +0 -1
  77. package/dist/ai/conversation-manager.d.ts +0 -164
  78. package/dist/ai/conversation-manager.d.ts.map +0 -1
  79. package/dist/ai/conversation-manager.js +0 -614
  80. package/dist/ai/conversation-manager.js.map +0 -1
  81. package/dist/ai/index.d.ts +0 -5
  82. package/dist/ai/index.d.ts.map +0 -1
  83. package/dist/ai/index.js +0 -8
  84. package/dist/ai/index.js.map +0 -1
  85. package/dist/cli.d.ts +0 -36
  86. package/dist/cli.d.ts.map +0 -1
  87. package/dist/cli.js +0 -192
  88. package/dist/cli.js.map +0 -1
  89. package/dist/commands/ai.d.ts +0 -89
  90. package/dist/commands/ai.d.ts.map +0 -1
  91. package/dist/commands/ai.js +0 -799
  92. package/dist/commands/ai.js.map +0 -1
  93. package/dist/commands/alignment.d.ts +0 -78
  94. package/dist/commands/alignment.d.ts.map +0 -1
  95. package/dist/commands/alignment.js +0 -817
  96. package/dist/commands/alignment.js.map +0 -1
  97. package/dist/commands/analyze-optimized.d.ts +0 -14
  98. package/dist/commands/analyze-optimized.d.ts.map +0 -1
  99. package/dist/commands/analyze-optimized.js +0 -600
  100. package/dist/commands/analyze-optimized.js.map +0 -1
  101. package/dist/commands/analyze.d.ts +0 -65
  102. package/dist/commands/analyze.d.ts.map +0 -1
  103. package/dist/commands/analyze.js +0 -435
  104. package/dist/commands/analyze.js.map +0 -1
  105. package/dist/commands/batch.d.ts +0 -71
  106. package/dist/commands/batch.d.ts.map +0 -1
  107. package/dist/commands/batch.js +0 -738
  108. package/dist/commands/batch.js.map +0 -1
  109. package/dist/commands/chat.d.ts +0 -71
  110. package/dist/commands/chat.d.ts.map +0 -1
  111. package/dist/commands/chat.js +0 -674
  112. package/dist/commands/chat.js.map +0 -1
  113. package/dist/commands/claude-init.d.ts +0 -28
  114. package/dist/commands/claude-init.d.ts.map +0 -1
  115. package/dist/commands/claude-init.js +0 -591
  116. package/dist/commands/claude-init.js.map +0 -1
  117. package/dist/commands/claude-setup.d.ts +0 -119
  118. package/dist/commands/claude-setup.d.ts.map +0 -1
  119. package/dist/commands/claude-setup.js +0 -1073
  120. package/dist/commands/claude-setup.js.map +0 -1
  121. package/dist/commands/computer-setup-commands.d.ts +0 -53
  122. package/dist/commands/computer-setup-commands.d.ts.map +0 -1
  123. package/dist/commands/computer-setup-commands.js +0 -705
  124. package/dist/commands/computer-setup-commands.js.map +0 -1
  125. package/dist/commands/computer-setup.d.ts +0 -7
  126. package/dist/commands/computer-setup.d.ts.map +0 -1
  127. package/dist/commands/computer-setup.js +0 -849
  128. package/dist/commands/computer-setup.js.map +0 -1
  129. package/dist/commands/create-command.d.ts +0 -7
  130. package/dist/commands/create-command.d.ts.map +0 -1
  131. package/dist/commands/create-command.js +0 -158
  132. package/dist/commands/create-command.js.map +0 -1
  133. package/dist/commands/create.d.ts +0 -74
  134. package/dist/commands/create.d.ts.map +0 -1
  135. package/dist/commands/create.js +0 -556
  136. package/dist/commands/create.js.map +0 -1
  137. package/dist/commands/dashboard.d.ts +0 -91
  138. package/dist/commands/dashboard.d.ts.map +0 -1
  139. package/dist/commands/dashboard.js +0 -538
  140. package/dist/commands/dashboard.js.map +0 -1
  141. package/dist/commands/govern.d.ts +0 -70
  142. package/dist/commands/govern.d.ts.map +0 -1
  143. package/dist/commands/govern.js +0 -481
  144. package/dist/commands/govern.js.map +0 -1
  145. package/dist/commands/governance.d.ts +0 -17
  146. package/dist/commands/governance.d.ts.map +0 -1
  147. package/dist/commands/governance.js +0 -703
  148. package/dist/commands/governance.js.map +0 -1
  149. package/dist/commands/guardian.d.ts +0 -20
  150. package/dist/commands/guardian.d.ts.map +0 -1
  151. package/dist/commands/guardian.js +0 -597
  152. package/dist/commands/guardian.js.map +0 -1
  153. package/dist/commands/init.d.ts +0 -59
  154. package/dist/commands/init.d.ts.map +0 -1
  155. package/dist/commands/init.js +0 -650
  156. package/dist/commands/init.js.map +0 -1
  157. package/dist/commands/orchestrator.d.ts +0 -7
  158. package/dist/commands/orchestrator.d.ts.map +0 -1
  159. package/dist/commands/orchestrator.js +0 -571
  160. package/dist/commands/orchestrator.js.map +0 -1
  161. package/dist/commands/performance-optimizer.d.ts +0 -30
  162. package/dist/commands/performance-optimizer.d.ts.map +0 -1
  163. package/dist/commands/performance-optimizer.js +0 -650
  164. package/dist/commands/performance-optimizer.js.map +0 -1
  165. package/dist/commands/plugins.d.ts +0 -87
  166. package/dist/commands/plugins.d.ts.map +0 -1
  167. package/dist/commands/plugins.js +0 -685
  168. package/dist/commands/plugins.js.map +0 -1
  169. package/dist/commands/rag.d.ts +0 -7
  170. package/dist/commands/rag.d.ts.map +0 -1
  171. package/dist/commands/rag.js +0 -748
  172. package/dist/commands/rag.js.map +0 -1
  173. package/dist/commands/session.d.ts +0 -41
  174. package/dist/commands/session.d.ts.map +0 -1
  175. package/dist/commands/session.js +0 -441
  176. package/dist/commands/session.js.map +0 -1
  177. package/dist/commands/setup.d.ts +0 -29
  178. package/dist/commands/setup.d.ts.map +0 -1
  179. package/dist/commands/setup.js +0 -397
  180. package/dist/commands/setup.js.map +0 -1
  181. package/dist/commands/test-init.d.ts +0 -9
  182. package/dist/commands/test-init.d.ts.map +0 -1
  183. package/dist/commands/test-init.js +0 -222
  184. package/dist/commands/test-init.js.map +0 -1
  185. package/dist/commands/test.d.ts +0 -25
  186. package/dist/commands/test.d.ts.map +0 -1
  187. package/dist/commands/test.js +0 -217
  188. package/dist/commands/test.js.map +0 -1
  189. package/dist/commands/vp.d.ts +0 -7
  190. package/dist/commands/vp.d.ts.map +0 -1
  191. package/dist/commands/vp.js +0 -571
  192. package/dist/commands/vp.js.map +0 -1
  193. package/dist/commands/watch.d.ts +0 -76
  194. package/dist/commands/watch.d.ts.map +0 -1
  195. package/dist/commands/watch.js +0 -613
  196. package/dist/commands/watch.js.map +0 -1
  197. package/dist/commands/worktree.d.ts +0 -63
  198. package/dist/commands/worktree.d.ts.map +0 -1
  199. package/dist/commands/worktree.js +0 -774
  200. package/dist/commands/worktree.js.map +0 -1
  201. package/dist/context/context-manager.d.ts +0 -155
  202. package/dist/context/context-manager.d.ts.map +0 -1
  203. package/dist/context/context-manager.js +0 -383
  204. package/dist/context/context-manager.js.map +0 -1
  205. package/dist/context/index.d.ts +0 -3
  206. package/dist/context/index.d.ts.map +0 -1
  207. package/dist/context/index.js +0 -6
  208. package/dist/context/index.js.map +0 -1
  209. package/dist/context/session-manager.d.ts +0 -207
  210. package/dist/context/session-manager.d.ts.map +0 -1
  211. package/dist/context/session-manager.js +0 -686
  212. package/dist/context/session-manager.js.map +0 -1
  213. package/dist/index.d.ts +0 -8
  214. package/dist/index.d.ts.map +0 -1
  215. package/dist/index.js +0 -51
  216. package/dist/index.js.map +0 -1
  217. package/dist/interactive/interactive-mode.d.ts +0 -76
  218. package/dist/interactive/interactive-mode.d.ts.map +0 -1
  219. package/dist/interactive/interactive-mode.js +0 -732
  220. package/dist/interactive/interactive-mode.js.map +0 -1
  221. package/dist/nlp/command-mapper.d.ts +0 -174
  222. package/dist/nlp/command-mapper.d.ts.map +0 -1
  223. package/dist/nlp/command-mapper.js +0 -624
  224. package/dist/nlp/command-mapper.js.map +0 -1
  225. package/dist/nlp/command-parser.d.ts +0 -106
  226. package/dist/nlp/command-parser.d.ts.map +0 -1
  227. package/dist/nlp/command-parser.js +0 -417
  228. package/dist/nlp/command-parser.js.map +0 -1
  229. package/dist/nlp/index.d.ts +0 -5
  230. package/dist/nlp/index.d.ts.map +0 -1
  231. package/dist/nlp/index.js +0 -8
  232. package/dist/nlp/index.js.map +0 -1
  233. package/dist/nlp/intent-classifier.d.ts +0 -59
  234. package/dist/nlp/intent-classifier.d.ts.map +0 -1
  235. package/dist/nlp/intent-classifier.js +0 -384
  236. package/dist/nlp/intent-classifier.js.map +0 -1
  237. package/dist/nlp/intent-parser.d.ts +0 -152
  238. package/dist/nlp/intent-parser.d.ts.map +0 -1
  239. package/dist/nlp/intent-parser.js +0 -744
  240. package/dist/nlp/intent-parser.js.map +0 -1
  241. package/dist/plugins/plugin-manager.d.ts +0 -120
  242. package/dist/plugins/plugin-manager.d.ts.map +0 -1
  243. package/dist/plugins/plugin-manager.js +0 -595
  244. package/dist/plugins/plugin-manager.js.map +0 -1
  245. package/dist/types/index.d.ts +0 -224
  246. package/dist/types/index.d.ts.map +0 -1
  247. package/dist/types/index.js +0 -3
  248. package/dist/types/index.js.map +0 -1
  249. package/dist/utils/backup-rollback-manager.d.ts +0 -72
  250. package/dist/utils/backup-rollback-manager.d.ts.map +0 -1
  251. package/dist/utils/backup-rollback-manager.js +0 -289
  252. package/dist/utils/backup-rollback-manager.js.map +0 -1
  253. package/dist/utils/claude-config-installer.d.ts +0 -98
  254. package/dist/utils/claude-config-installer.d.ts.map +0 -1
  255. package/dist/utils/claude-config-installer.js +0 -678
  256. package/dist/utils/claude-config-installer.js.map +0 -1
  257. package/dist/utils/config-manager.d.ts +0 -73
  258. package/dist/utils/config-manager.d.ts.map +0 -1
  259. package/dist/utils/config-manager.js +0 -339
  260. package/dist/utils/config-manager.js.map +0 -1
  261. package/dist/utils/error-handler.d.ts +0 -46
  262. package/dist/utils/error-handler.d.ts.map +0 -1
  263. package/dist/utils/error-handler.js +0 -169
  264. package/dist/utils/error-handler.js.map +0 -1
  265. package/dist/utils/logger.d.ts +0 -25
  266. package/dist/utils/logger.d.ts.map +0 -1
  267. package/dist/utils/logger.js +0 -105
  268. package/dist/utils/logger.js.map +0 -1
  269. package/src/commands/computer-setup-commands.ts +0 -872
@@ -1,397 +0,0 @@
1
- "use strict";
2
- /**
3
- * Simple Setup Commands - Main setup entry points
4
- * Provides the primary wundr setup commands that integrate with computer-setup
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.SetupCommands = void 0;
8
- const tslib_1 = require("tslib");
9
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
10
- const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
11
- const ora_1 = tslib_1.__importDefault(require("ora"));
12
- const computer_setup_1 = require("@wundr.io/computer-setup");
13
- class SetupCommands {
14
- program;
15
- configManager;
16
- pluginManager;
17
- orchestrator;
18
- platform;
19
- constructor(program, configManager, pluginManager) {
20
- this.program = program;
21
- this.configManager = configManager;
22
- this.pluginManager = pluginManager;
23
- this.platform = this.detectPlatform();
24
- this.orchestrator = new computer_setup_1.RealSetupOrchestrator(this.platform);
25
- this.registerCommands();
26
- }
27
- registerCommands() {
28
- // Main setup command (wundr setup)
29
- this.program
30
- .command('setup')
31
- .description('Set up developer machine with required tools')
32
- .option('-p, --profile <profile>', 'Use specific profile (frontend, backend, fullstack, devops)', 'fullstack')
33
- .option('--dry-run', 'Show what would be installed without making changes')
34
- .option('--interactive', 'Run in interactive mode')
35
- .action(async (options) => {
36
- await this.runSetup(options);
37
- });
38
- // Setup with specific profile (wundr setup:profile frontend)
39
- const setupProfile = this.program
40
- .command('setup:profile')
41
- .description('Set up using a specific developer profile');
42
- setupProfile
43
- .command('frontend')
44
- .description('Set up frontend development environment')
45
- .action(async () => {
46
- await this.runSetup({ profile: 'frontend' });
47
- });
48
- setupProfile
49
- .command('backend')
50
- .description('Set up backend development environment')
51
- .action(async () => {
52
- await this.runSetup({ profile: 'backend' });
53
- });
54
- setupProfile
55
- .command('fullstack')
56
- .description('Set up full-stack development environment')
57
- .action(async () => {
58
- await this.runSetup({ profile: 'fullstack' });
59
- });
60
- setupProfile
61
- .command('devops')
62
- .description('Set up DevOps engineering environment')
63
- .action(async () => {
64
- await this.runSetup({ profile: 'devops' });
65
- });
66
- // Validate setup (wundr setup:validate)
67
- this.program
68
- .command('setup:validate')
69
- .description('Validate current development environment setup')
70
- .option('--profile <profile>', 'Validate against specific profile')
71
- .option('--fix', 'Attempt to fix issues found')
72
- .action(async (options) => {
73
- await this.validateSetup(options);
74
- });
75
- // Resume setup (wundr setup:resume)
76
- this.program
77
- .command('setup:resume')
78
- .description('Resume interrupted setup from saved state')
79
- .action(async () => {
80
- await this.resumeSetup();
81
- });
82
- // Personalize setup (wundr setup:personalize)
83
- this.program
84
- .command('setup:personalize')
85
- .description('Run personalization and configuration')
86
- .action(async () => {
87
- await this.personalizeSetup();
88
- });
89
- }
90
- async runSetup(options) {
91
- console.log(chalk_1.default.cyan('\n🚀 Wundr Development Environment Setup'));
92
- console.log(chalk_1.default.gray('Setting up your development machine...\n'));
93
- try {
94
- // Check for resumable setup
95
- const canResume = await this.orchestrator.canResume();
96
- if (canResume && !options.dryRun) {
97
- const { resume } = await inquirer_1.default.prompt([
98
- {
99
- type: 'confirm',
100
- name: 'resume',
101
- message: 'Found incomplete setup. Resume from where you left off?',
102
- default: true,
103
- },
104
- ]);
105
- if (resume) {
106
- return await this.resumeSetup();
107
- }
108
- }
109
- // Get profile
110
- let profileName = options.profile;
111
- if (options.interactive && !profileName) {
112
- profileName = await this.selectProfile();
113
- }
114
- // Validate profile
115
- const availableProfiles = this.orchestrator.getAvailableProfiles();
116
- // Try different matching strategies
117
- let profile = availableProfiles.find(p => p.name.toLowerCase() === profileName.toLowerCase());
118
- if (!profile) {
119
- // Try partial match
120
- profile = availableProfiles.find(p => p.name.toLowerCase().includes(profileName.toLowerCase()) ||
121
- profileName
122
- .toLowerCase()
123
- .includes(p.name.toLowerCase().split(' ')[0]));
124
- }
125
- // Map common aliases
126
- if (!profile) {
127
- const aliases = {
128
- fullstack: 'Full Stack Developer',
129
- 'full-stack': 'Full Stack Developer',
130
- frontend: 'Frontend Developer',
131
- backend: 'Backend Developer',
132
- devops: 'DevOps Engineer',
133
- };
134
- const mappedName = aliases[profileName.toLowerCase()];
135
- if (mappedName) {
136
- profile = availableProfiles.find(p => p.name === mappedName);
137
- }
138
- }
139
- if (!profile) {
140
- console.error(chalk_1.default.red(`❌ Unknown profile: ${profileName}`));
141
- console.log(chalk_1.default.cyan('\n📋 Available profiles:'));
142
- availableProfiles.forEach(p => console.log(` • ${chalk_1.default.white(p.name)}: ${chalk_1.default.gray(p.description)}`));
143
- return;
144
- }
145
- console.log(chalk_1.default.cyan(`\n📋 Selected Profile: ${chalk_1.default.white(profile.name)}`));
146
- console.log(chalk_1.default.gray(`${profile.description}`));
147
- console.log(chalk_1.default.gray(`Estimated time: ${profile.estimatedTimeMinutes} minutes\n`));
148
- if (options.dryRun) {
149
- console.log(chalk_1.default.yellow('🔍 DRY RUN - Showing what would be installed:\n'));
150
- console.log(chalk_1.default.cyan('Required tools:'));
151
- profile.requiredTools.forEach(tool => console.log(` ✓ ${tool}`));
152
- if (profile.optionalTools.length > 0) {
153
- console.log(chalk_1.default.cyan('\nOptional tools:'));
154
- profile.optionalTools.forEach(tool => console.log(` • ${tool}`));
155
- }
156
- return;
157
- }
158
- // Progress tracking
159
- const progressCallback = (progress) => {
160
- process.stdout.clearLine(0);
161
- process.stdout.cursorTo(0);
162
- const progressBar = this.createProgressBar(progress.percentage);
163
- process.stdout.write(`${progressBar} ${progress.percentage.toFixed(1)}% - ${progress.currentStep}`);
164
- };
165
- console.log(chalk_1.default.cyan('🚀 Starting setup...\n'));
166
- const result = await this.orchestrator.orchestrate(profileName, {
167
- dryRun: options.dryRun,
168
- skipExisting: true,
169
- parallel: false,
170
- generateReport: true,
171
- }, progressCallback);
172
- console.log('\n'); // New line after progress
173
- if (result.success) {
174
- console.log(chalk_1.default.green('\n✅ Setup completed successfully!'));
175
- console.log(chalk_1.default.gray(`Duration: ${Math.round(result.duration / 1000)}s\n`));
176
- this.showSetupSummary(result);
177
- this.showNextSteps();
178
- }
179
- else {
180
- console.log(chalk_1.default.red('\n❌ Setup failed!'));
181
- this.showErrors(result);
182
- console.log(chalk_1.default.cyan('\n💡 Resume with: wundr setup:resume'));
183
- process.exit(1);
184
- }
185
- }
186
- catch (error) {
187
- console.error(chalk_1.default.red('\n❌ Setup failed:'), error.message);
188
- console.log(chalk_1.default.cyan('\n💡 Resume with: wundr setup:resume'));
189
- process.exit(1);
190
- }
191
- }
192
- async validateSetup(options) {
193
- console.log(chalk_1.default.cyan('\n🔍 Validating development environment...\n'));
194
- const spinner = (0, ora_1.default)('Running validation checks...').start();
195
- // Basic validation checks
196
- const checks = [
197
- { name: 'Node.js', test: () => this.checkCommand('node --version') },
198
- { name: 'Git', test: () => this.checkCommand('git --version') },
199
- { name: 'Homebrew', test: () => this.checkCommand('brew --version') },
200
- { name: 'Docker', test: () => this.checkCommand('docker --version') },
201
- ];
202
- const results = [];
203
- for (const check of checks) {
204
- try {
205
- const result = await check.test();
206
- results.push({
207
- name: check.name,
208
- status: 'pass',
209
- version: result,
210
- });
211
- }
212
- catch (error) {
213
- results.push({
214
- name: check.name,
215
- status: 'fail',
216
- error: error.message,
217
- });
218
- }
219
- }
220
- spinner.stop();
221
- console.log(chalk_1.default.cyan('📊 Validation Results:\n'));
222
- results.forEach(result => {
223
- const icon = result.status === 'pass' ? '✅' : '❌';
224
- const status = result.status === 'pass'
225
- ? chalk_1.default.green(`${result.version || 'installed'}`)
226
- : chalk_1.default.red('not found');
227
- console.log(`${icon} ${result.name}: ${status}`);
228
- });
229
- const failed = results.filter(r => r.status === 'fail');
230
- if (failed.length > 0) {
231
- console.log(chalk_1.default.yellow(`\n⚠️ ${failed.length} issues found`));
232
- if (options.fix) {
233
- console.log(chalk_1.default.cyan('\n🔧 Attempting to fix issues...'));
234
- await this.runSetup({ profile: options.profile || 'fullstack' });
235
- }
236
- else {
237
- console.log(chalk_1.default.cyan('\n💡 Fix issues with: wundr setup:validate --fix'));
238
- }
239
- }
240
- else {
241
- console.log(chalk_1.default.green('\n✅ All checks passed! Environment is ready.'));
242
- }
243
- }
244
- async resumeSetup() {
245
- console.log(chalk_1.default.cyan('\n🔄 Resuming setup...\n'));
246
- const progressCallback = (progress) => {
247
- process.stdout.clearLine(0);
248
- process.stdout.cursorTo(0);
249
- const progressBar = this.createProgressBar(progress.percentage);
250
- process.stdout.write(`${progressBar} ${progress.percentage.toFixed(1)}% - ${progress.currentStep}`);
251
- };
252
- try {
253
- const result = await this.orchestrator.resume(progressCallback);
254
- console.log('\n');
255
- if (result.success) {
256
- console.log(chalk_1.default.green('✅ Setup completed successfully!'));
257
- this.showSetupSummary(result);
258
- this.showNextSteps();
259
- }
260
- else {
261
- console.log(chalk_1.default.red('❌ Resume failed!'));
262
- this.showErrors(result);
263
- process.exit(1);
264
- }
265
- }
266
- catch (error) {
267
- console.error(chalk_1.default.red('❌ Resume failed:'), error.message);
268
- process.exit(1);
269
- }
270
- }
271
- async personalizeSetup() {
272
- console.log(chalk_1.default.cyan('\n👤 Personal Configuration Setup\n'));
273
- const answers = await inquirer_1.default.prompt([
274
- {
275
- type: 'input',
276
- name: 'name',
277
- message: 'Your name:',
278
- validate: (input) => input.length > 0 || 'Name is required',
279
- },
280
- {
281
- type: 'input',
282
- name: 'email',
283
- message: 'Your email:',
284
- validate: (input) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(input) || 'Valid email required',
285
- },
286
- {
287
- type: 'list',
288
- name: 'shell',
289
- message: 'Preferred shell:',
290
- choices: ['zsh', 'bash', 'fish'],
291
- default: 'zsh',
292
- },
293
- {
294
- type: 'confirm',
295
- name: 'aliases',
296
- message: 'Install helpful shell aliases?',
297
- default: true,
298
- },
299
- ]);
300
- console.log(chalk_1.default.cyan('\n⚙️ Configuring personal settings...'));
301
- // Configure Git
302
- try {
303
- await this.runCommand(`git config --global user.name "${answers.name}"`);
304
- await this.runCommand(`git config --global user.email "${answers.email}"`);
305
- console.log(chalk_1.default.green('✅ Git configured'));
306
- }
307
- catch (error) {
308
- console.log(chalk_1.default.yellow('⚠️ Could not configure Git'));
309
- }
310
- console.log(chalk_1.default.green('\n✅ Personalization complete!'));
311
- }
312
- async selectProfile() {
313
- const profiles = this.orchestrator.getAvailableProfiles();
314
- const { selectedProfile } = await inquirer_1.default.prompt([
315
- {
316
- type: 'list',
317
- name: 'selectedProfile',
318
- message: 'Select your development profile:',
319
- choices: profiles.map(p => ({
320
- name: `${p.name} - ${p.description}`,
321
- value: p.name.toLowerCase().replace(/\s+/g, ''),
322
- short: p.name,
323
- })),
324
- },
325
- ]);
326
- return selectedProfile;
327
- }
328
- createProgressBar(percentage) {
329
- const width = 20;
330
- const filled = Math.round((percentage / 100) * width);
331
- const empty = width - filled;
332
- return (chalk_1.default.cyan('[') +
333
- chalk_1.default.green('='.repeat(filled)) +
334
- chalk_1.default.gray('-'.repeat(empty)) +
335
- chalk_1.default.cyan(']'));
336
- }
337
- showSetupSummary(result) {
338
- if (result.completedSteps.length > 0) {
339
- console.log(chalk_1.default.cyan(`🎯 Completed (${result.completedSteps.length}):`));
340
- result.completedSteps
341
- .slice(0, 5)
342
- .forEach(step => console.log(` ✅ ${step.replace('install-', '')}`));
343
- if (result.completedSteps.length > 5) {
344
- console.log(` ... and ${result.completedSteps.length - 5} more`);
345
- }
346
- }
347
- if (result.skippedSteps.length > 0) {
348
- console.log(chalk_1.default.yellow(`\n⏭️ Skipped (${result.skippedSteps.length}):`));
349
- result.skippedSteps
350
- .slice(0, 3)
351
- .forEach(step => console.log(` ⏭️ ${step.replace('install-', '')} (already installed)`));
352
- }
353
- }
354
- showErrors(result) {
355
- if (result.failedSteps.length > 0) {
356
- console.log(chalk_1.default.red(`❌ Failed (${result.failedSteps.length}):`));
357
- result.failedSteps.forEach(step => console.log(` ❌ ${step.replace('install-', '')}`));
358
- }
359
- if (result.errors.length > 0) {
360
- console.log(chalk_1.default.red('\n🔍 Errors:'));
361
- result.errors
362
- .slice(0, 3)
363
- .forEach(error => console.log(` • ${error.message}`));
364
- }
365
- }
366
- showNextSteps() {
367
- console.log(chalk_1.default.cyan('\n📝 Next Steps:'));
368
- const steps = [
369
- 'Restart your terminal to apply changes',
370
- 'Validate setup: wundr setup:validate',
371
- 'Personalize: wundr setup:personalize',
372
- 'Start coding! 🚀',
373
- ];
374
- steps.forEach((step, i) => {
375
- console.log(` ${i + 1}. ${step}`);
376
- });
377
- console.log();
378
- }
379
- detectPlatform() {
380
- return {
381
- os: process.platform,
382
- arch: process.arch,
383
- version: process.version || 'unknown',
384
- };
385
- }
386
- async checkCommand(command) {
387
- const { execa } = await Promise.resolve().then(() => tslib_1.__importStar(require('execa')));
388
- const { stdout } = await execa('sh', ['-c', command]);
389
- return stdout?.split('\n')[0] || '';
390
- }
391
- async runCommand(command) {
392
- const { execa } = await Promise.resolve().then(() => tslib_1.__importStar(require('execa')));
393
- await execa('sh', ['-c', command]);
394
- }
395
- }
396
- exports.SetupCommands = SetupCommands;
397
- //# sourceMappingURL=setup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare class TestInitCommand {
3
- run(): Promise<void>;
4
- private generateConfig;
5
- private updatePackageJson;
6
- private generateCIConfig;
7
- }
8
- export declare function createTestInitCommand(): Command;
9
- //# sourceMappingURL=test-init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-init.d.ts","sourceRoot":"","sources":["../../src/commands/test-init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,qBAAa,eAAe;IACpB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAoF1B,OAAO,CAAC,cAAc;YAsER,iBAAiB;YAmBjB,gBAAgB;CAkD/B;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAS/C"}
@@ -1,222 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TestInitCommand = void 0;
4
- exports.createTestInitCommand = createTestInitCommand;
5
- const tslib_1 = require("tslib");
6
- const path_1 = tslib_1.__importDefault(require("path"));
7
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
- const commander_1 = require("commander");
9
- const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
10
- const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
11
- class TestInitCommand {
12
- async run() {
13
- console.log(chalk_1.default.blue('\n🧪 Initializing Wundr Test Configuration\n'));
14
- const answers = await inquirer_1.default.prompt([
15
- {
16
- type: 'input',
17
- name: 'baseURL',
18
- message: "What is your application's base URL?",
19
- default: 'http://localhost:3000',
20
- },
21
- {
22
- type: 'input',
23
- name: 'apiURL',
24
- message: 'What is your API base URL?',
25
- default: 'http://localhost:3000/api',
26
- },
27
- {
28
- type: 'checkbox',
29
- name: 'testSuites',
30
- message: 'Which test suites would you like to enable?',
31
- choices: [
32
- { name: 'Smoke Tests', value: 'smoke', checked: true },
33
- {
34
- name: 'Accessibility Tests',
35
- value: 'accessibility',
36
- checked: true,
37
- },
38
- { name: 'API Tests', value: 'api', checked: true },
39
- { name: 'Performance Tests', value: 'performance', checked: false },
40
- { name: 'Security Tests', value: 'security', checked: false },
41
- ],
42
- },
43
- {
44
- type: 'checkbox',
45
- name: 'browsers',
46
- message: 'Which browsers should we test?',
47
- choices: [
48
- { name: 'Chromium', value: 'chromium', checked: true },
49
- { name: 'Firefox', value: 'firefox', checked: false },
50
- { name: 'Safari (WebKit)', value: 'webkit', checked: false },
51
- { name: 'Mobile', value: 'mobile', checked: true },
52
- ],
53
- },
54
- {
55
- type: 'confirm',
56
- name: 'headless',
57
- message: 'Run tests in headless mode?',
58
- default: true,
59
- },
60
- {
61
- type: 'confirm',
62
- name: 'ci',
63
- message: 'Would you like to add CI/CD configuration?',
64
- default: true,
65
- },
66
- ]);
67
- // Generate configuration
68
- const config = this.generateConfig(answers);
69
- // Write configuration file
70
- const configPath = path_1.default.join(process.cwd(), 'wundr-test.config.js');
71
- await fs_extra_1.default.writeFile(configPath, config);
72
- console.log(chalk_1.default.green('\n✅ Test configuration created: wundr-test.config.js'));
73
- // Add package.json scripts
74
- await this.updatePackageJson();
75
- // Generate CI configuration if requested
76
- if (answers.ci) {
77
- await this.generateCIConfig(answers);
78
- }
79
- // Show next steps
80
- console.log(chalk_1.default.cyan('\n📋 Next Steps:'));
81
- console.log(' 1. Install Playwright: npm install -D @playwright/test');
82
- console.log(' 2. Run tests: npm run test:wundr');
83
- console.log(' 3. View report: npm run test:report');
84
- console.log(' 4. Customize wundr-test.config.js as needed');
85
- }
86
- generateConfig(answers) {
87
- const testSuites = answers.testSuites.reduce((acc, suite) => {
88
- acc[suite] = true;
89
- return acc;
90
- }, {});
91
- const projects = answers.browsers
92
- .map((browser) => {
93
- if (browser === 'mobile') {
94
- return ` {
95
- name: 'mobile',
96
- use: {
97
- browserName: 'chromium',
98
- viewport: { width: 375, height: 667 },
99
- userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X)'
100
- }
101
- }`;
102
- }
103
- return ` {
104
- name: '${browser}',
105
- use: {
106
- browserName: '${browser}',
107
- viewport: { width: 1280, height: 720 }
108
- }
109
- }`;
110
- })
111
- .join(',\n');
112
- return `/**
113
- * Wundr Test Configuration
114
- * Generated on ${new Date().toISOString()}
115
- */
116
-
117
- module.exports = {
118
- // Base URL of your application
119
- baseURL: '${answers.baseURL}',
120
-
121
- // Test execution settings
122
- timeout: 30000,
123
- retries: 2,
124
- workers: 4,
125
-
126
- // Browser settings
127
- headless: ${answers.headless},
128
- slowMo: 0,
129
-
130
- // Screenshot and video settings
131
- screenshot: 'only-on-failure',
132
- video: 'retain-on-failure',
133
- trace: 'on-first-retry',
134
-
135
- // API configuration
136
- api: {
137
- baseURL: '${answers.apiURL}',
138
- headers: {
139
- 'Content-Type': 'application/json'
140
- },
141
- timeout: 10000
142
- },
143
-
144
- // Enabled test suites
145
- testSuites: ${JSON.stringify(testSuites, null, 4)},
146
-
147
- // Projects/browsers to test
148
- projects: [
149
- ${projects}
150
- ]
151
- };`;
152
- }
153
- async updatePackageJson() {
154
- const packageJsonPath = path_1.default.join(process.cwd(), 'package.json');
155
- if (await fs_extra_1.default.pathExists(packageJsonPath)) {
156
- const packageJson = await fs_extra_1.default.readJson(packageJsonPath);
157
- packageJson.scripts = packageJson.scripts || {};
158
- packageJson.scripts['test:wundr'] = 'wundr test';
159
- packageJson.scripts['test:wundr:ui'] = 'wundr test --type ui';
160
- packageJson.scripts['test:wundr:api'] = 'wundr test --type api';
161
- packageJson.scripts['test:wundr:headed'] = 'wundr test --headed';
162
- packageJson.scripts['test:report'] = 'wundr test --report';
163
- await fs_extra_1.default.writeJson(packageJsonPath, packageJson, { spaces: 2 });
164
- console.log(chalk_1.default.green('✅ Added test scripts to package.json'));
165
- }
166
- }
167
- async generateCIConfig(answers) {
168
- const githubWorkflow = `name: Wundr Tests
169
-
170
- on:
171
- push:
172
- branches: [ main, master ]
173
- pull_request:
174
- branches: [ main, master ]
175
-
176
- jobs:
177
- test:
178
- runs-on: ubuntu-latest
179
-
180
- steps:
181
- - uses: actions/checkout@v3
182
-
183
- - name: Setup Node.js
184
- uses: actions/setup-node@v3
185
- with:
186
- node-version: '18'
187
-
188
- - name: Install dependencies
189
- run: npm ci
190
-
191
- - name: Install Playwright
192
- run: npx playwright install --with-deps
193
-
194
- - name: Run Wundr tests
195
- run: npm run test:wundr
196
- env:
197
- TEST_BASE_URL: '${answers.baseURL}'
198
-
199
- - name: Upload test results
200
- if: always()
201
- uses: actions/upload-artifact@v3
202
- with:
203
- name: test-results
204
- path: test-results/
205
- retention-days: 30`;
206
- const githubDir = path_1.default.join(process.cwd(), '.github', 'workflows');
207
- await fs_extra_1.default.ensureDir(githubDir);
208
- await fs_extra_1.default.writeFile(path_1.default.join(githubDir, 'wundr-tests.yml'), githubWorkflow);
209
- console.log(chalk_1.default.green('✅ Created GitHub Actions workflow: .github/workflows/wundr-tests.yml'));
210
- }
211
- }
212
- exports.TestInitCommand = TestInitCommand;
213
- function createTestInitCommand() {
214
- const command = new commander_1.Command('test-init')
215
- .description('Initialize Wundr test configuration for your project')
216
- .action(async () => {
217
- const initCommand = new TestInitCommand();
218
- await initCommand.run();
219
- });
220
- return command;
221
- }
222
- //# sourceMappingURL=test-init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-init.js","sourceRoot":"","sources":["../../src/commands/test-init.ts"],"names":[],"mappings":"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"}