@wundr.io/cli 1.0.0 → 1.0.2-dev.20260530174250.ef0ec927

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 (230) hide show
  1. package/README.md +696 -280
  2. package/bin/wundr.js +13 -5
  3. package/package.json +30 -9
  4. package/src/ai/ai-service.ts +6 -4
  5. package/src/ai/claude-client.ts +6 -2
  6. package/src/ai/conversation-manager.ts +12 -5
  7. package/src/cli.ts +42 -13
  8. package/src/commands/ai.ts +340 -64
  9. package/src/commands/alignment.ts +1212 -0
  10. package/src/commands/analyze-optimized.ts +371 -33
  11. package/src/commands/analyze.ts +8 -6
  12. package/src/commands/batch.ts +166 -26
  13. package/src/commands/chat.ts +20 -10
  14. package/src/commands/claude-init.ts +31 -27
  15. package/src/commands/claude-setup.ts +761 -81
  16. package/src/commands/computer-setup.ts +524 -12
  17. package/src/commands/create-command.ts +3 -3
  18. package/src/commands/create.ts +9 -6
  19. package/src/commands/dashboard.ts +11 -6
  20. package/src/commands/govern.ts +11 -6
  21. package/src/commands/governance.ts +1005 -0
  22. package/src/commands/guardian.ts +887 -0
  23. package/src/commands/init.ts +104 -11
  24. package/src/commands/orchestrator.ts +789 -0
  25. package/src/commands/performance-optimizer.ts +15 -10
  26. package/src/commands/plugins.ts +8 -5
  27. package/src/commands/project-update.ts +1156 -0
  28. package/src/commands/rag.ts +1011 -0
  29. package/src/commands/session.ts +631 -0
  30. package/src/commands/setup.ts +42 -344
  31. package/src/commands/test-init.ts +3 -2
  32. package/src/commands/test.ts +3 -2
  33. package/src/commands/watch.ts +21 -11
  34. package/src/commands/worktree.ts +1057 -0
  35. package/src/context/context-manager.ts +5 -2
  36. package/src/context/session-manager.ts +18 -7
  37. package/src/framework/command-interface.ts +520 -0
  38. package/src/framework/command-registry.ts +942 -0
  39. package/src/framework/completion-exporter.ts +383 -0
  40. package/src/framework/debug-logger.ts +519 -0
  41. package/src/framework/error-handler.ts +867 -0
  42. package/src/framework/help-generator.ts +540 -0
  43. package/src/framework/index.ts +169 -0
  44. package/src/framework/interactive-repl.ts +703 -0
  45. package/src/framework/output-formatter.ts +834 -0
  46. package/src/framework/progress-manager.ts +539 -0
  47. package/src/index.ts +3 -2
  48. package/src/interactive/interactive-mode.ts +14 -7
  49. package/src/lib/conflict-resolution.ts +818 -0
  50. package/src/lib/merge-strategy.ts +550 -0
  51. package/src/lib/safety-mechanisms.ts +451 -0
  52. package/src/lib/state-detection.ts +1030 -0
  53. package/src/nlp/command-mapper.ts +8 -3
  54. package/src/nlp/command-parser.ts +5 -2
  55. package/src/nlp/intent-parser.ts +23 -9
  56. package/src/plugins/plugin-manager.ts +50 -24
  57. package/src/tests/computer-setup-integration.test.ts +470 -0
  58. package/src/types/index.ts +1 -1
  59. package/src/types/modules.d.ts +425 -1
  60. package/src/utils/backup-rollback-manager.ts +366 -0
  61. package/src/utils/claude-config-installer.ts +823 -0
  62. package/src/utils/config-manager.ts +9 -6
  63. package/src/utils/error-handler.ts +3 -1
  64. package/src/utils/logger.ts +35 -12
  65. package/templates/batch/ci-cd.yaml +7 -7
  66. package/test-suites/api/health.spec.ts +20 -23
  67. package/test-suites/helpers/test-config.ts +14 -13
  68. package/test-suites/ui/accessibility.spec.ts +27 -22
  69. package/test-suites/ui/smoke.spec.ts +26 -21
  70. package/dist/ai/ai-service.d.ts +0 -152
  71. package/dist/ai/ai-service.d.ts.map +0 -1
  72. package/dist/ai/ai-service.js +0 -430
  73. package/dist/ai/ai-service.js.map +0 -1
  74. package/dist/ai/claude-client.d.ts +0 -130
  75. package/dist/ai/claude-client.d.ts.map +0 -1
  76. package/dist/ai/claude-client.js +0 -339
  77. package/dist/ai/claude-client.js.map +0 -1
  78. package/dist/ai/conversation-manager.d.ts +0 -164
  79. package/dist/ai/conversation-manager.d.ts.map +0 -1
  80. package/dist/ai/conversation-manager.js +0 -612
  81. package/dist/ai/conversation-manager.js.map +0 -1
  82. package/dist/ai/index.d.ts +0 -5
  83. package/dist/ai/index.d.ts.map +0 -1
  84. package/dist/ai/index.js +0 -8
  85. package/dist/ai/index.js.map +0 -1
  86. package/dist/cli.d.ts +0 -36
  87. package/dist/cli.d.ts.map +0 -1
  88. package/dist/cli.js +0 -173
  89. package/dist/cli.js.map +0 -1
  90. package/dist/commands/ai.d.ts +0 -89
  91. package/dist/commands/ai.d.ts.map +0 -1
  92. package/dist/commands/ai.js +0 -735
  93. package/dist/commands/ai.js.map +0 -1
  94. package/dist/commands/analyze-optimized.d.ts +0 -14
  95. package/dist/commands/analyze-optimized.d.ts.map +0 -1
  96. package/dist/commands/analyze-optimized.js +0 -437
  97. package/dist/commands/analyze-optimized.js.map +0 -1
  98. package/dist/commands/analyze.d.ts +0 -65
  99. package/dist/commands/analyze.d.ts.map +0 -1
  100. package/dist/commands/analyze.js +0 -435
  101. package/dist/commands/analyze.js.map +0 -1
  102. package/dist/commands/batch.d.ts +0 -71
  103. package/dist/commands/batch.d.ts.map +0 -1
  104. package/dist/commands/batch.js +0 -738
  105. package/dist/commands/batch.js.map +0 -1
  106. package/dist/commands/chat.d.ts +0 -71
  107. package/dist/commands/chat.d.ts.map +0 -1
  108. package/dist/commands/chat.js +0 -674
  109. package/dist/commands/chat.js.map +0 -1
  110. package/dist/commands/claude-init.d.ts +0 -28
  111. package/dist/commands/claude-init.d.ts.map +0 -1
  112. package/dist/commands/claude-init.js +0 -587
  113. package/dist/commands/claude-init.js.map +0 -1
  114. package/dist/commands/claude-setup.d.ts +0 -32
  115. package/dist/commands/claude-setup.d.ts.map +0 -1
  116. package/dist/commands/claude-setup.js +0 -570
  117. package/dist/commands/claude-setup.js.map +0 -1
  118. package/dist/commands/computer-setup-commands.d.ts +0 -39
  119. package/dist/commands/computer-setup-commands.d.ts.map +0 -1
  120. package/dist/commands/computer-setup-commands.js +0 -563
  121. package/dist/commands/computer-setup-commands.js.map +0 -1
  122. package/dist/commands/computer-setup.d.ts +0 -7
  123. package/dist/commands/computer-setup.d.ts.map +0 -1
  124. package/dist/commands/computer-setup.js +0 -481
  125. package/dist/commands/computer-setup.js.map +0 -1
  126. package/dist/commands/create-command.d.ts +0 -7
  127. package/dist/commands/create-command.d.ts.map +0 -1
  128. package/dist/commands/create-command.js +0 -158
  129. package/dist/commands/create-command.js.map +0 -1
  130. package/dist/commands/create.d.ts +0 -74
  131. package/dist/commands/create.d.ts.map +0 -1
  132. package/dist/commands/create.js +0 -556
  133. package/dist/commands/create.js.map +0 -1
  134. package/dist/commands/dashboard.d.ts +0 -91
  135. package/dist/commands/dashboard.d.ts.map +0 -1
  136. package/dist/commands/dashboard.js +0 -537
  137. package/dist/commands/dashboard.js.map +0 -1
  138. package/dist/commands/govern.d.ts +0 -70
  139. package/dist/commands/govern.d.ts.map +0 -1
  140. package/dist/commands/govern.js +0 -480
  141. package/dist/commands/govern.js.map +0 -1
  142. package/dist/commands/init.d.ts +0 -55
  143. package/dist/commands/init.d.ts.map +0 -1
  144. package/dist/commands/init.js +0 -584
  145. package/dist/commands/init.js.map +0 -1
  146. package/dist/commands/performance-optimizer.d.ts +0 -30
  147. package/dist/commands/performance-optimizer.d.ts.map +0 -1
  148. package/dist/commands/performance-optimizer.js +0 -649
  149. package/dist/commands/performance-optimizer.js.map +0 -1
  150. package/dist/commands/plugins.d.ts +0 -87
  151. package/dist/commands/plugins.d.ts.map +0 -1
  152. package/dist/commands/plugins.js +0 -685
  153. package/dist/commands/plugins.js.map +0 -1
  154. package/dist/commands/setup.d.ts +0 -29
  155. package/dist/commands/setup.d.ts.map +0 -1
  156. package/dist/commands/setup.js +0 -399
  157. package/dist/commands/setup.js.map +0 -1
  158. package/dist/commands/test-init.d.ts +0 -9
  159. package/dist/commands/test-init.d.ts.map +0 -1
  160. package/dist/commands/test-init.js +0 -222
  161. package/dist/commands/test-init.js.map +0 -1
  162. package/dist/commands/test.d.ts +0 -25
  163. package/dist/commands/test.d.ts.map +0 -1
  164. package/dist/commands/test.js +0 -217
  165. package/dist/commands/test.js.map +0 -1
  166. package/dist/commands/watch.d.ts +0 -76
  167. package/dist/commands/watch.d.ts.map +0 -1
  168. package/dist/commands/watch.js +0 -610
  169. package/dist/commands/watch.js.map +0 -1
  170. package/dist/context/context-manager.d.ts +0 -155
  171. package/dist/context/context-manager.d.ts.map +0 -1
  172. package/dist/context/context-manager.js +0 -383
  173. package/dist/context/context-manager.js.map +0 -1
  174. package/dist/context/index.d.ts +0 -3
  175. package/dist/context/index.d.ts.map +0 -1
  176. package/dist/context/index.js +0 -6
  177. package/dist/context/index.js.map +0 -1
  178. package/dist/context/session-manager.d.ts +0 -207
  179. package/dist/context/session-manager.d.ts.map +0 -1
  180. package/dist/context/session-manager.js +0 -682
  181. package/dist/context/session-manager.js.map +0 -1
  182. package/dist/index.d.ts +0 -8
  183. package/dist/index.d.ts.map +0 -1
  184. package/dist/index.js +0 -51
  185. package/dist/index.js.map +0 -1
  186. package/dist/interactive/interactive-mode.d.ts +0 -76
  187. package/dist/interactive/interactive-mode.d.ts.map +0 -1
  188. package/dist/interactive/interactive-mode.js +0 -730
  189. package/dist/interactive/interactive-mode.js.map +0 -1
  190. package/dist/nlp/command-mapper.d.ts +0 -174
  191. package/dist/nlp/command-mapper.d.ts.map +0 -1
  192. package/dist/nlp/command-mapper.js +0 -623
  193. package/dist/nlp/command-mapper.js.map +0 -1
  194. package/dist/nlp/command-parser.d.ts +0 -106
  195. package/dist/nlp/command-parser.d.ts.map +0 -1
  196. package/dist/nlp/command-parser.js +0 -416
  197. package/dist/nlp/command-parser.js.map +0 -1
  198. package/dist/nlp/index.d.ts +0 -5
  199. package/dist/nlp/index.d.ts.map +0 -1
  200. package/dist/nlp/index.js +0 -8
  201. package/dist/nlp/index.js.map +0 -1
  202. package/dist/nlp/intent-classifier.d.ts +0 -59
  203. package/dist/nlp/intent-classifier.d.ts.map +0 -1
  204. package/dist/nlp/intent-classifier.js +0 -384
  205. package/dist/nlp/intent-classifier.js.map +0 -1
  206. package/dist/nlp/intent-parser.d.ts +0 -152
  207. package/dist/nlp/intent-parser.d.ts.map +0 -1
  208. package/dist/nlp/intent-parser.js +0 -739
  209. package/dist/nlp/intent-parser.js.map +0 -1
  210. package/dist/plugins/plugin-manager.d.ts +0 -120
  211. package/dist/plugins/plugin-manager.d.ts.map +0 -1
  212. package/dist/plugins/plugin-manager.js +0 -595
  213. package/dist/plugins/plugin-manager.js.map +0 -1
  214. package/dist/types/index.d.ts +0 -224
  215. package/dist/types/index.d.ts.map +0 -1
  216. package/dist/types/index.js +0 -3
  217. package/dist/types/index.js.map +0 -1
  218. package/dist/utils/config-manager.d.ts +0 -73
  219. package/dist/utils/config-manager.d.ts.map +0 -1
  220. package/dist/utils/config-manager.js +0 -339
  221. package/dist/utils/config-manager.js.map +0 -1
  222. package/dist/utils/error-handler.d.ts +0 -46
  223. package/dist/utils/error-handler.d.ts.map +0 -1
  224. package/dist/utils/error-handler.js +0 -169
  225. package/dist/utils/error-handler.js.map +0 -1
  226. package/dist/utils/logger.d.ts +0 -25
  227. package/dist/utils/logger.d.ts.map +0 -1
  228. package/dist/utils/logger.js +0 -94
  229. package/dist/utils/logger.js.map +0 -1
  230. package/src/commands/computer-setup-commands.ts +0 -709
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude-setup.js","sourceRoot":"","sources":["../../src/commands/claude-setup.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- /**
2
- * Computer Setup Commands
3
- * Integrates real setup orchestrator for provisioning developer machines
4
- */
5
- import { Command } from 'commander';
6
- import { ConfigManager } from '../utils/config-manager';
7
- import { PluginManager } from '../plugins/plugin-manager';
8
- export declare class ComputerSetupCommands {
9
- private program;
10
- private configManager;
11
- private pluginManager;
12
- private orchestrator;
13
- private platform;
14
- constructor(program: Command, configManager: ConfigManager, pluginManager: PluginManager);
15
- private registerCommands;
16
- private runSetup;
17
- private manageProfiles;
18
- private validateSetup;
19
- private runDoctor;
20
- private createInteractiveProfile;
21
- private detectPlatform;
22
- private selectProfile;
23
- private resumeSetup;
24
- private listAvailableProfiles;
25
- private generateSetupSteps;
26
- private executeSetupStep;
27
- private displayNextSteps;
28
- private loadProfile;
29
- private getDefaultProfile;
30
- private listProfiles;
31
- private editProfile;
32
- private deleteProfile;
33
- private exportProfiles;
34
- private importProfiles;
35
- private manageTeamConfig;
36
- private installTool;
37
- private attemptFixes;
38
- }
39
- //# sourceMappingURL=computer-setup-commands.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"computer-setup-commands.d.ts","sourceRoot":"","sources":["../../src/commands/computer-setup-commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AA2B1D,qBAAa,qBAAqB;IAK9B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa;IANvB,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,QAAQ,CAAgB;gBAGtB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa;IAOtC,OAAO,CAAC,gBAAgB;YAsHV,QAAQ;YA4KR,cAAc;YAoBd,aAAa;YAmCb,SAAS;YAyBT,wBAAwB;IAqFtC,OAAO,CAAC,cAAc;YAUR,aAAa;YAmBb,WAAW;YAkCX,qBAAqB;IAyBnC,OAAO,CAAC,kBAAkB;YAmCZ,gBAAgB;IAS9B,OAAO,CAAC,gBAAgB;YAeV,WAAW;YASX,iBAAiB;YAQjB,YAAY;YAQZ,WAAW;YAIX,aAAa;YAIb,cAAc;YAId,cAAc;YAId,gBAAgB;YAIhB,WAAW;YAIX,YAAY;CAM3B"}
@@ -1,563 +0,0 @@
1
- "use strict";
2
- /**
3
- * Computer Setup Commands
4
- * Integrates real setup orchestrator for provisioning developer machines
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ComputerSetupCommands = void 0;
8
- const tslib_1 = require("tslib");
9
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
10
- const ora_1 = tslib_1.__importDefault(require("ora"));
11
- const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
12
- // Note: Using relative path import due to workspace resolution issues in this monorepo setup
13
- // The computer-setup package must be built first before building this CLI package
14
- const dist_1 = require("../../../computer-setup/dist");
15
- class ComputerSetupCommands {
16
- program;
17
- configManager;
18
- pluginManager;
19
- orchestrator;
20
- platform;
21
- constructor(program, configManager, pluginManager) {
22
- this.program = program;
23
- this.configManager = configManager;
24
- this.pluginManager = pluginManager;
25
- this.platform = this.detectPlatform();
26
- this.orchestrator = new dist_1.RealSetupOrchestrator(this.platform);
27
- this.registerCommands();
28
- }
29
- registerCommands() {
30
- const computerSetup = this.program
31
- .command('computer-setup')
32
- .alias('setup-machine')
33
- .alias('provision')
34
- .description('Set up a new developer machine with all required tools and configurations')
35
- .addHelpText('after', chalk_1.default.gray(`
36
- Examples:
37
- ${chalk_1.default.green('wundr computer-setup')} Interactive setup for new machine
38
- ${chalk_1.default.green('wundr computer-setup --profile frontend')} Use frontend developer profile
39
- ${chalk_1.default.green('wundr computer-setup --team platform')} Apply platform team configuration
40
- ${chalk_1.default.green('wundr computer-setup doctor')} Diagnose setup issues
41
- ${chalk_1.default.green('wundr computer-setup validate')} Validate current setup
42
- `));
43
- // Main setup command
44
- computerSetup
45
- .command('run', { isDefault: true })
46
- .description('Run computer setup for new developer machine')
47
- .option('-p, --profile <profile>', 'Use specific profile (frontend, backend, fullstack, devops)')
48
- .option('-t, --team <team>', 'Apply team-specific configurations')
49
- .option('-m, --mode <mode>', 'Setup mode', 'interactive')
50
- .option('--os <os>', 'Target OS (auto-detected by default)')
51
- .option('--dry-run', 'Show what would be installed without making changes')
52
- .option('--skip-existing', 'Skip tools that are already installed')
53
- .option('--parallel', 'Install tools in parallel where possible')
54
- .option('--report', 'Generate detailed setup report')
55
- .action(async (options) => {
56
- await this.runSetup(options);
57
- });
58
- // Resume command
59
- computerSetup
60
- .command('resume')
61
- .description('Resume failed setup from saved state')
62
- .action(async () => {
63
- await this.resumeSetup();
64
- });
65
- // List profiles command
66
- computerSetup
67
- .command('list-profiles')
68
- .description('List available developer profiles')
69
- .action(async () => {
70
- await this.listAvailableProfiles();
71
- });
72
- // Profile management
73
- computerSetup
74
- .command('profile')
75
- .description('Manage developer profiles')
76
- .option('-l, --list', 'List available profiles')
77
- .option('-c, --create', 'Create new profile')
78
- .option('-e, --edit <name>', 'Edit existing profile')
79
- .option('-d, --delete <name>', 'Delete profile')
80
- .option('--export <path>', 'Export profiles')
81
- .option('--import <path>', 'Import profiles')
82
- .action(async (options) => {
83
- await this.manageProfiles(options);
84
- });
85
- // Team configuration
86
- computerSetup
87
- .command('team')
88
- .description('Manage team configurations')
89
- .argument('[team]', 'Team identifier')
90
- .option('--download', 'Download team configuration')
91
- .option('--apply', 'Apply team configuration')
92
- .option('--sync', 'Sync with team repository')
93
- .action(async (team, options) => {
94
- await this.manageTeamConfig(team, options);
95
- });
96
- // Validation
97
- computerSetup
98
- .command('validate')
99
- .description('Validate current machine setup')
100
- .option('--profile <profile>', 'Validate against specific profile')
101
- .option('--fix', 'Attempt to fix issues')
102
- .option('--report', 'Generate validation report')
103
- .action(async (options) => {
104
- await this.validateSetup(options);
105
- });
106
- // Doctor - diagnose issues
107
- computerSetup
108
- .command('doctor')
109
- .description('Diagnose and fix common setup issues')
110
- .option('--check <tool>', 'Check specific tool')
111
- .option('--fix', 'Attempt automatic fixes')
112
- .option('--verbose', 'Show detailed diagnostics')
113
- .action(async (options) => {
114
- await this.runDoctor(options);
115
- });
116
- // Tool-specific setup commands
117
- computerSetup
118
- .command('install')
119
- .description('Install specific tools')
120
- .argument('<tool>', 'Tool to install (node, python, docker, etc.)')
121
- .option('--version <version>', 'Specific version to install')
122
- .option('--global', 'Install globally')
123
- .action(async (tool, options) => {
124
- await this.installTool(tool, options);
125
- });
126
- }
127
- async runSetup(options) {
128
- console.log(chalk_1.default.cyan('\nšŸ–„ļø Wundr Computer Setup'));
129
- console.log(chalk_1.default.gray('Setting up your development machine...\n'));
130
- try {
131
- // Check for resumable setup
132
- const canResume = await this.orchestrator.canResume();
133
- if (canResume) {
134
- const { resume } = await inquirer_1.default.prompt([
135
- {
136
- type: 'confirm',
137
- name: 'resume',
138
- message: 'Found incomplete setup. Resume from where you left off?',
139
- default: true,
140
- },
141
- ]);
142
- if (resume) {
143
- return await this.resumeSetup();
144
- }
145
- }
146
- // Get profile
147
- let profileName = options.profile;
148
- if (!profileName) {
149
- if (options.mode === 'interactive') {
150
- profileName = await this.selectProfile();
151
- }
152
- else {
153
- profileName = 'fullstack'; // Default
154
- }
155
- }
156
- // Validate profile
157
- const availableProfiles = this.orchestrator.getAvailableProfiles();
158
- const profile = availableProfiles.find(p => p.name.toLowerCase().includes(profileName.toLowerCase()));
159
- if (!profile) {
160
- console.error(chalk_1.default.red(`āŒ Unknown profile: ${profileName}`));
161
- console.log(chalk_1.default.cyan('\nAvailable profiles:'));
162
- availableProfiles.forEach(p => console.log(` • ${p.name}: ${p.description}`));
163
- return;
164
- }
165
- console.log(chalk_1.default.cyan(`\nšŸ“‹ Selected Profile: ${chalk_1.default.white(profile.name)}`));
166
- console.log(chalk_1.default.gray(`${profile.description}`));
167
- console.log(chalk_1.default.gray(`Estimated time: ${profile.estimatedTimeMinutes} minutes\n`));
168
- // Show what will be installed
169
- console.log(chalk_1.default.cyan('šŸ› ļø Tools to install:'));
170
- profile.requiredTools.forEach(tool => console.log(` • ${tool}`));
171
- if (profile.optionalTools.length > 0) {
172
- console.log(chalk_1.default.cyan('\nšŸ”§ Optional tools:'));
173
- profile.optionalTools.forEach(tool => console.log(` • ${tool}`));
174
- }
175
- if (options.dryRun) {
176
- console.log(chalk_1.default.yellow('\nāš ļø DRY RUN - No changes will be made'));
177
- return;
178
- }
179
- // Confirm before proceeding
180
- if (options.mode === 'interactive') {
181
- const { proceed } = await inquirer_1.default.prompt([
182
- {
183
- type: 'confirm',
184
- name: 'proceed',
185
- message: 'Proceed with setup?',
186
- default: true,
187
- },
188
- ]);
189
- if (!proceed) {
190
- console.log(chalk_1.default.yellow('Setup cancelled'));
191
- return;
192
- }
193
- }
194
- // Run the orchestrator with progress tracking
195
- const progressCallback = (progress) => {
196
- // Update progress display
197
- process.stdout.clearLine(0);
198
- process.stdout.cursorTo(0);
199
- process.stdout.write(`${chalk_1.default.cyan('[')}${progress.percentage.toFixed(1)}%${chalk_1.default.cyan(']')} ${progress.currentStep}`);
200
- };
201
- console.log(chalk_1.default.cyan('\nšŸš€ Starting setup...\n'));
202
- const result = await this.orchestrator.orchestrate(profileName, {
203
- dryRun: options.dryRun,
204
- skipExisting: options.skipExisting,
205
- parallel: options.parallel,
206
- generateReport: options.report,
207
- }, progressCallback);
208
- console.log('\n'); // New line after progress
209
- if (result.success) {
210
- console.log(chalk_1.default.green('āœ… Computer setup completed successfully!'));
211
- console.log(chalk_1.default.gray(`Setup took ${Math.round(result.duration / 1000)} seconds\n`));
212
- if (result.completedSteps.length > 0) {
213
- console.log(chalk_1.default.cyan(`šŸŽÆ Completed steps (${result.completedSteps.length}):`));
214
- result.completedSteps
215
- .slice(0, 5)
216
- .forEach(step => console.log(` āœ… ${step}`));
217
- if (result.completedSteps.length > 5) {
218
- console.log(` ... and ${result.completedSteps.length - 5} more`);
219
- }
220
- }
221
- if (result.skippedSteps.length > 0) {
222
- console.log(chalk_1.default.yellow(`ā­ļø Skipped steps (${result.skippedSteps.length}):`));
223
- result.skippedSteps.forEach(step => console.log(` ā­ļø ${step}`));
224
- }
225
- this.displayNextSteps();
226
- }
227
- else {
228
- console.log(chalk_1.default.red('āŒ Setup failed!'));
229
- if (result.failedSteps.length > 0) {
230
- console.log(chalk_1.default.red(`Failed steps (${result.failedSteps.length}):`));
231
- result.failedSteps.forEach(step => console.log(` āŒ ${step}`));
232
- }
233
- if (result.errors.length > 0) {
234
- console.log(chalk_1.default.red('\nErrors:'));
235
- result.errors.forEach(error => console.log(` • ${error.message}`));
236
- }
237
- console.log(chalk_1.default.cyan('\nšŸ’” You can resume setup by running: wundr computer-setup resume'));
238
- process.exit(1);
239
- }
240
- }
241
- catch (error) {
242
- console.error(chalk_1.default.red('\nāŒ Setup failed with error:'), error);
243
- console.log(chalk_1.default.cyan('\nšŸ’” You can resume setup by running: wundr computer-setup resume'));
244
- process.exit(1);
245
- }
246
- }
247
- async manageProfiles(options) {
248
- if (options.list) {
249
- const profiles = await this.listProfiles();
250
- console.log(chalk_1.default.cyan('\nšŸ“‹ Available Profiles:\n'));
251
- profiles.forEach(p => {
252
- console.log(chalk_1.default.white(` • ${p.name} (${p.role})`));
253
- });
254
- }
255
- else if (options.create) {
256
- await this.createInteractiveProfile();
257
- }
258
- else if (options.edit) {
259
- await this.editProfile(options.edit);
260
- }
261
- else if (options.delete) {
262
- await this.deleteProfile(options.delete);
263
- }
264
- else if (options.export) {
265
- await this.exportProfiles(options.export);
266
- }
267
- else if (options.import) {
268
- await this.importProfiles(options.import);
269
- }
270
- }
271
- async validateSetup(options) {
272
- const spinner = (0, ora_1.default)('Validating setup...').start();
273
- const checks = [
274
- { name: 'Node.js', cmd: 'node --version', required: true },
275
- { name: 'Git', cmd: 'git --version', required: true },
276
- { name: 'Docker', cmd: 'docker --version', required: false },
277
- { name: 'Claude Code', cmd: 'claude --version', required: false },
278
- ];
279
- const results = [];
280
- for (const check of checks) {
281
- try {
282
- // Would execute command and check
283
- results.push({ ...check, status: 'passed' });
284
- }
285
- catch (error) {
286
- results.push({ ...check, status: 'failed' });
287
- }
288
- }
289
- spinner.stop();
290
- console.log(chalk_1.default.cyan('\nšŸ” Validation Results:\n'));
291
- results.forEach(r => {
292
- const icon = r.status === 'passed' ? 'āœ…' : 'āŒ';
293
- const color = r.status === 'passed' ? chalk_1.default.green : chalk_1.default.red;
294
- console.log(color(` ${icon} ${r.name}`));
295
- });
296
- if (options.fix) {
297
- await this.attemptFixes(results.filter(r => r.status === 'failed'));
298
- }
299
- }
300
- async runDoctor(options) {
301
- console.log(chalk_1.default.cyan('\nšŸ„ Computer Setup Doctor\n'));
302
- const diagnostics = [
303
- 'Checking system requirements...',
304
- 'Verifying network connectivity...',
305
- 'Checking disk space...',
306
- 'Validating permissions...',
307
- 'Checking installed tools...',
308
- 'Verifying configurations...',
309
- ];
310
- for (const diagnostic of diagnostics) {
311
- const spinner = (0, ora_1.default)(diagnostic).start();
312
- await new Promise(resolve => setTimeout(resolve, 500));
313
- spinner.succeed();
314
- }
315
- console.log(chalk_1.default.green('\nāœ… All checks passed!'));
316
- console.log(chalk_1.default.cyan('\nšŸ’Š Recommendations:'));
317
- console.log(' 1. Keep your tools updated');
318
- console.log(' 2. Regular security updates');
319
- console.log(' 3. Backup your configurations');
320
- }
321
- async createInteractiveProfile() {
322
- console.log(chalk_1.default.cyan('\nšŸ‘¤ Create Developer Profile\n'));
323
- const answers = await inquirer_1.default.prompt([
324
- {
325
- type: 'input',
326
- name: 'name',
327
- message: 'Your name:',
328
- validate: input => input.length > 0,
329
- },
330
- {
331
- type: 'input',
332
- name: 'email',
333
- message: 'Your email:',
334
- validate: input => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(input),
335
- },
336
- {
337
- type: 'list',
338
- name: 'role',
339
- message: 'Your role:',
340
- choices: [
341
- 'Frontend Developer',
342
- 'Backend Developer',
343
- 'Full Stack Developer',
344
- 'DevOps Engineer',
345
- 'Machine Learning Engineer',
346
- 'Mobile Developer',
347
- ],
348
- },
349
- {
350
- type: 'checkbox',
351
- name: 'tools',
352
- message: 'Select tools to install:',
353
- choices: [
354
- { name: 'Node.js', checked: true },
355
- { name: 'Python' },
356
- { name: 'Docker', checked: true },
357
- { name: 'Kubernetes' },
358
- { name: 'AWS CLI' },
359
- { name: 'Claude Code', checked: true },
360
- { name: 'GitHub CLI', checked: true },
361
- ],
362
- },
363
- ]);
364
- console.log(chalk_1.default.green('\nāœ… Profile created successfully!'));
365
- // Map answers to DeveloperProfile structure
366
- const profile = {
367
- name: 'custom',
368
- role: answers.role,
369
- languages: {
370
- javascript: answers.tools.includes('Node.js'),
371
- typescript: answers.tools.includes('TypeScript'),
372
- python: answers.tools.includes('Python'),
373
- },
374
- frameworks: {},
375
- tools: {
376
- packageManagers: {
377
- npm: answers.tools.includes('Node.js'),
378
- yarn: answers.tools.includes('Yarn'),
379
- pnpm: answers.tools.includes('pnpm'),
380
- },
381
- containers: {
382
- docker: answers.tools.includes('Docker'),
383
- dockerCompose: answers.tools.includes('Docker'),
384
- kubernetes: answers.tools.includes('Kubernetes'),
385
- },
386
- editors: {
387
- vscode: answers.tools.includes('VS Code'),
388
- vim: answers.tools.includes('Vim'),
389
- claude: answers.tools.includes('Claude Code'),
390
- },
391
- databases: {
392
- postgresql: answers.tools.includes('PostgreSQL'),
393
- mysql: answers.tools.includes('MySQL'),
394
- mongodb: answers.tools.includes('MongoDB'),
395
- redis: answers.tools.includes('Redis'),
396
- },
397
- },
398
- };
399
- return profile;
400
- }
401
- detectPlatform(os) {
402
- return {
403
- os: (os || process.platform),
404
- arch: process.arch,
405
- version: process.version,
406
- node: process.version,
407
- shell: process.env.SHELL,
408
- };
409
- }
410
- async selectProfile() {
411
- const profiles = this.orchestrator.getAvailableProfiles();
412
- const { selectedProfile } = await inquirer_1.default.prompt([
413
- {
414
- type: 'list',
415
- name: 'selectedProfile',
416
- message: 'Select a developer profile:',
417
- choices: profiles.map(p => ({
418
- name: `${p.name} - ${p.description}`,
419
- value: p.name.toLowerCase().replace(' ', ''),
420
- short: p.name,
421
- })),
422
- },
423
- ]);
424
- return selectedProfile;
425
- }
426
- async resumeSetup() {
427
- console.log(chalk_1.default.cyan('\nšŸ”„ Resuming setup from saved state...\n'));
428
- const progressCallback = (progress) => {
429
- process.stdout.clearLine(0);
430
- process.stdout.cursorTo(0);
431
- process.stdout.write(`${chalk_1.default.cyan('[')}${progress.percentage.toFixed(1)}%${chalk_1.default.cyan(']')} ${progress.currentStep}`);
432
- };
433
- try {
434
- const result = await this.orchestrator.resume(progressCallback);
435
- console.log('\n'); // New line after progress
436
- if (result.success) {
437
- console.log(chalk_1.default.green('āœ… Setup resumed and completed successfully!'));
438
- this.displayNextSteps();
439
- }
440
- else {
441
- console.log(chalk_1.default.red('āŒ Resume failed!'));
442
- if (result.errors.length > 0) {
443
- console.log(chalk_1.default.red('Errors:'));
444
- result.errors.forEach(error => console.log(` • ${error.message}`));
445
- }
446
- process.exit(1);
447
- }
448
- }
449
- catch (error) {
450
- console.error(chalk_1.default.red('āŒ Resume failed:'), error);
451
- process.exit(1);
452
- }
453
- }
454
- async listAvailableProfiles() {
455
- console.log(chalk_1.default.cyan('\nšŸ‘¤ Available Developer Profiles:\n'));
456
- const profiles = this.orchestrator.getAvailableProfiles();
457
- profiles.forEach(profile => {
458
- console.log(chalk_1.default.white(`šŸ“‹ ${profile.name}`));
459
- console.log(chalk_1.default.gray(` ${profile.description}`));
460
- console.log(chalk_1.default.gray(` Categories: ${profile.categories.join(', ')}`));
461
- console.log(chalk_1.default.gray(` Tools: ${profile.requiredTools.join(', ')}`));
462
- console.log(chalk_1.default.gray(` Estimated time: ${profile.estimatedTimeMinutes} minutes`));
463
- console.log();
464
- });
465
- console.log(chalk_1.default.cyan('Usage: wundr computer-setup --profile <profile-name>'));
466
- console.log(chalk_1.default.gray('Example: wundr computer-setup --profile frontend\n'));
467
- }
468
- generateSetupSteps(profile, platform) {
469
- const steps = [];
470
- // Platform-specific setup
471
- if (platform.os === 'darwin') {
472
- steps.push({ name: 'Install Homebrew', required: true });
473
- steps.push({ name: 'Install Xcode Command Line Tools', required: true });
474
- }
475
- // Common tools
476
- steps.push({ name: 'Configure Git', required: true });
477
- steps.push({ name: 'Generate SSH keys', required: true });
478
- // Profile-specific tools
479
- if (profile.tools?.includes('Node.js')) {
480
- steps.push({ name: 'Install Node.js via nvm', required: true });
481
- steps.push({ name: 'Install pnpm', required: true });
482
- }
483
- if (profile.tools?.includes('Docker')) {
484
- steps.push({ name: 'Install Docker Desktop', required: false });
485
- }
486
- if (profile.tools?.includes('Claude Code')) {
487
- steps.push({ name: 'Install Claude Code', required: false });
488
- steps.push({ name: 'Configure Claude Flow', required: false });
489
- }
490
- // Final steps
491
- steps.push({ name: 'Configure shell environment', required: true });
492
- steps.push({ name: 'Install VS Code extensions', required: false });
493
- return steps;
494
- }
495
- async executeSetupStep(step, options) {
496
- // Simulate execution
497
- await new Promise(resolve => setTimeout(resolve, 500));
498
- if (Math.random() > 0.95 && !step.required) {
499
- throw new Error('Simulated error');
500
- }
501
- }
502
- displayNextSteps() {
503
- console.log(chalk_1.default.cyan('\nšŸ“ Next Steps:\n'));
504
- const steps = [
505
- 'Restart your terminal to apply changes',
506
- 'Run "wundr computer-setup validate" to verify',
507
- 'Sign in to your team tools (Slack, GitHub, etc.)',
508
- 'Clone your team repositories',
509
- 'Review team documentation',
510
- ];
511
- steps.forEach((step, i) => {
512
- console.log(chalk_1.default.white(` ${i + 1}. ${step}`));
513
- });
514
- }
515
- async loadProfile(name) {
516
- // Load profile from config
517
- return {
518
- name: name,
519
- role: 'fullstack',
520
- tools: ['Node.js', 'Docker', 'Claude Code'],
521
- };
522
- }
523
- async getDefaultProfile() {
524
- return {
525
- name: 'default',
526
- role: 'fullstack',
527
- tools: ['Node.js', 'Git'],
528
- };
529
- }
530
- async listProfiles() {
531
- return [
532
- { name: 'frontend', role: 'Frontend Developer' },
533
- { name: 'backend', role: 'Backend Developer' },
534
- { name: 'fullstack', role: 'Full Stack Developer' },
535
- ];
536
- }
537
- async editProfile(name) {
538
- console.log(chalk_1.default.cyan(`Editing profile: ${name}`));
539
- }
540
- async deleteProfile(name) {
541
- console.log(chalk_1.default.yellow(`Deleting profile: ${name}`));
542
- }
543
- async exportProfiles(path) {
544
- console.log(chalk_1.default.green(`Profiles exported to: ${path}`));
545
- }
546
- async importProfiles(path) {
547
- console.log(chalk_1.default.green(`Profiles imported from: ${path}`));
548
- }
549
- async manageTeamConfig(team, options) {
550
- console.log(chalk_1.default.cyan(`Managing team configuration: ${team}`));
551
- }
552
- async installTool(tool, options) {
553
- console.log(chalk_1.default.cyan(`Installing ${tool}...`));
554
- }
555
- async attemptFixes(failures) {
556
- console.log(chalk_1.default.yellow('\nAttempting fixes...'));
557
- for (const failure of failures) {
558
- console.log(chalk_1.default.gray(` Fixing ${failure.name}...`));
559
- }
560
- }
561
- }
562
- exports.ComputerSetupCommands = ComputerSetupCommands;
563
- //# sourceMappingURL=computer-setup-commands.js.map