@wundr.io/cli 1.0.0

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 (213) hide show
  1. package/README.md +551 -0
  2. package/bin/wundr.js +39 -0
  3. package/dist/ai/ai-service.d.ts +152 -0
  4. package/dist/ai/ai-service.d.ts.map +1 -0
  5. package/dist/ai/ai-service.js +430 -0
  6. package/dist/ai/ai-service.js.map +1 -0
  7. package/dist/ai/claude-client.d.ts +130 -0
  8. package/dist/ai/claude-client.d.ts.map +1 -0
  9. package/dist/ai/claude-client.js +339 -0
  10. package/dist/ai/claude-client.js.map +1 -0
  11. package/dist/ai/conversation-manager.d.ts +164 -0
  12. package/dist/ai/conversation-manager.d.ts.map +1 -0
  13. package/dist/ai/conversation-manager.js +612 -0
  14. package/dist/ai/conversation-manager.js.map +1 -0
  15. package/dist/ai/index.d.ts +5 -0
  16. package/dist/ai/index.d.ts.map +1 -0
  17. package/dist/ai/index.js +8 -0
  18. package/dist/ai/index.js.map +1 -0
  19. package/dist/cli.d.ts +36 -0
  20. package/dist/cli.d.ts.map +1 -0
  21. package/dist/cli.js +173 -0
  22. package/dist/cli.js.map +1 -0
  23. package/dist/commands/ai.d.ts +89 -0
  24. package/dist/commands/ai.d.ts.map +1 -0
  25. package/dist/commands/ai.js +735 -0
  26. package/dist/commands/ai.js.map +1 -0
  27. package/dist/commands/analyze-optimized.d.ts +14 -0
  28. package/dist/commands/analyze-optimized.d.ts.map +1 -0
  29. package/dist/commands/analyze-optimized.js +437 -0
  30. package/dist/commands/analyze-optimized.js.map +1 -0
  31. package/dist/commands/analyze.d.ts +65 -0
  32. package/dist/commands/analyze.d.ts.map +1 -0
  33. package/dist/commands/analyze.js +435 -0
  34. package/dist/commands/analyze.js.map +1 -0
  35. package/dist/commands/batch.d.ts +71 -0
  36. package/dist/commands/batch.d.ts.map +1 -0
  37. package/dist/commands/batch.js +738 -0
  38. package/dist/commands/batch.js.map +1 -0
  39. package/dist/commands/chat.d.ts +71 -0
  40. package/dist/commands/chat.d.ts.map +1 -0
  41. package/dist/commands/chat.js +674 -0
  42. package/dist/commands/chat.js.map +1 -0
  43. package/dist/commands/claude-init.d.ts +28 -0
  44. package/dist/commands/claude-init.d.ts.map +1 -0
  45. package/dist/commands/claude-init.js +587 -0
  46. package/dist/commands/claude-init.js.map +1 -0
  47. package/dist/commands/claude-setup.d.ts +32 -0
  48. package/dist/commands/claude-setup.d.ts.map +1 -0
  49. package/dist/commands/claude-setup.js +570 -0
  50. package/dist/commands/claude-setup.js.map +1 -0
  51. package/dist/commands/computer-setup-commands.d.ts +39 -0
  52. package/dist/commands/computer-setup-commands.d.ts.map +1 -0
  53. package/dist/commands/computer-setup-commands.js +563 -0
  54. package/dist/commands/computer-setup-commands.js.map +1 -0
  55. package/dist/commands/computer-setup.d.ts +7 -0
  56. package/dist/commands/computer-setup.d.ts.map +1 -0
  57. package/dist/commands/computer-setup.js +481 -0
  58. package/dist/commands/computer-setup.js.map +1 -0
  59. package/dist/commands/create-command.d.ts +7 -0
  60. package/dist/commands/create-command.d.ts.map +1 -0
  61. package/dist/commands/create-command.js +158 -0
  62. package/dist/commands/create-command.js.map +1 -0
  63. package/dist/commands/create.d.ts +74 -0
  64. package/dist/commands/create.d.ts.map +1 -0
  65. package/dist/commands/create.js +556 -0
  66. package/dist/commands/create.js.map +1 -0
  67. package/dist/commands/dashboard.d.ts +91 -0
  68. package/dist/commands/dashboard.d.ts.map +1 -0
  69. package/dist/commands/dashboard.js +537 -0
  70. package/dist/commands/dashboard.js.map +1 -0
  71. package/dist/commands/govern.d.ts +70 -0
  72. package/dist/commands/govern.d.ts.map +1 -0
  73. package/dist/commands/govern.js +480 -0
  74. package/dist/commands/govern.js.map +1 -0
  75. package/dist/commands/init.d.ts +55 -0
  76. package/dist/commands/init.d.ts.map +1 -0
  77. package/dist/commands/init.js +584 -0
  78. package/dist/commands/init.js.map +1 -0
  79. package/dist/commands/performance-optimizer.d.ts +30 -0
  80. package/dist/commands/performance-optimizer.d.ts.map +1 -0
  81. package/dist/commands/performance-optimizer.js +649 -0
  82. package/dist/commands/performance-optimizer.js.map +1 -0
  83. package/dist/commands/plugins.d.ts +87 -0
  84. package/dist/commands/plugins.d.ts.map +1 -0
  85. package/dist/commands/plugins.js +685 -0
  86. package/dist/commands/plugins.js.map +1 -0
  87. package/dist/commands/setup.d.ts +29 -0
  88. package/dist/commands/setup.d.ts.map +1 -0
  89. package/dist/commands/setup.js +399 -0
  90. package/dist/commands/setup.js.map +1 -0
  91. package/dist/commands/test-init.d.ts +9 -0
  92. package/dist/commands/test-init.d.ts.map +1 -0
  93. package/dist/commands/test-init.js +222 -0
  94. package/dist/commands/test-init.js.map +1 -0
  95. package/dist/commands/test.d.ts +25 -0
  96. package/dist/commands/test.d.ts.map +1 -0
  97. package/dist/commands/test.js +217 -0
  98. package/dist/commands/test.js.map +1 -0
  99. package/dist/commands/watch.d.ts +76 -0
  100. package/dist/commands/watch.d.ts.map +1 -0
  101. package/dist/commands/watch.js +610 -0
  102. package/dist/commands/watch.js.map +1 -0
  103. package/dist/context/context-manager.d.ts +155 -0
  104. package/dist/context/context-manager.d.ts.map +1 -0
  105. package/dist/context/context-manager.js +383 -0
  106. package/dist/context/context-manager.js.map +1 -0
  107. package/dist/context/index.d.ts +3 -0
  108. package/dist/context/index.d.ts.map +1 -0
  109. package/dist/context/index.js +6 -0
  110. package/dist/context/index.js.map +1 -0
  111. package/dist/context/session-manager.d.ts +207 -0
  112. package/dist/context/session-manager.d.ts.map +1 -0
  113. package/dist/context/session-manager.js +682 -0
  114. package/dist/context/session-manager.js.map +1 -0
  115. package/dist/index.d.ts +8 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +51 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/interactive/interactive-mode.d.ts +76 -0
  120. package/dist/interactive/interactive-mode.d.ts.map +1 -0
  121. package/dist/interactive/interactive-mode.js +730 -0
  122. package/dist/interactive/interactive-mode.js.map +1 -0
  123. package/dist/nlp/command-mapper.d.ts +174 -0
  124. package/dist/nlp/command-mapper.d.ts.map +1 -0
  125. package/dist/nlp/command-mapper.js +623 -0
  126. package/dist/nlp/command-mapper.js.map +1 -0
  127. package/dist/nlp/command-parser.d.ts +106 -0
  128. package/dist/nlp/command-parser.d.ts.map +1 -0
  129. package/dist/nlp/command-parser.js +416 -0
  130. package/dist/nlp/command-parser.js.map +1 -0
  131. package/dist/nlp/index.d.ts +5 -0
  132. package/dist/nlp/index.d.ts.map +1 -0
  133. package/dist/nlp/index.js +8 -0
  134. package/dist/nlp/index.js.map +1 -0
  135. package/dist/nlp/intent-classifier.d.ts +59 -0
  136. package/dist/nlp/intent-classifier.d.ts.map +1 -0
  137. package/dist/nlp/intent-classifier.js +384 -0
  138. package/dist/nlp/intent-classifier.js.map +1 -0
  139. package/dist/nlp/intent-parser.d.ts +152 -0
  140. package/dist/nlp/intent-parser.d.ts.map +1 -0
  141. package/dist/nlp/intent-parser.js +739 -0
  142. package/dist/nlp/intent-parser.js.map +1 -0
  143. package/dist/plugins/plugin-manager.d.ts +120 -0
  144. package/dist/plugins/plugin-manager.d.ts.map +1 -0
  145. package/dist/plugins/plugin-manager.js +595 -0
  146. package/dist/plugins/plugin-manager.js.map +1 -0
  147. package/dist/types/index.d.ts +224 -0
  148. package/dist/types/index.d.ts.map +1 -0
  149. package/dist/types/index.js +3 -0
  150. package/dist/types/index.js.map +1 -0
  151. package/dist/utils/config-manager.d.ts +73 -0
  152. package/dist/utils/config-manager.d.ts.map +1 -0
  153. package/dist/utils/config-manager.js +339 -0
  154. package/dist/utils/config-manager.js.map +1 -0
  155. package/dist/utils/error-handler.d.ts +46 -0
  156. package/dist/utils/error-handler.d.ts.map +1 -0
  157. package/dist/utils/error-handler.js +169 -0
  158. package/dist/utils/error-handler.js.map +1 -0
  159. package/dist/utils/logger.d.ts +25 -0
  160. package/dist/utils/logger.d.ts.map +1 -0
  161. package/dist/utils/logger.js +94 -0
  162. package/dist/utils/logger.js.map +1 -0
  163. package/package.json +119 -0
  164. package/src/ai/ai-service.ts +595 -0
  165. package/src/ai/claude-client.ts +490 -0
  166. package/src/ai/conversation-manager.ts +907 -0
  167. package/src/ai/index.ts +8 -0
  168. package/src/cli.ts +202 -0
  169. package/src/commands/ai.ts +995 -0
  170. package/src/commands/analyze-optimized.ts +641 -0
  171. package/src/commands/analyze.ts +576 -0
  172. package/src/commands/batch.ts +935 -0
  173. package/src/commands/chat.ts +876 -0
  174. package/src/commands/claude-init.ts +715 -0
  175. package/src/commands/claude-setup.ts +697 -0
  176. package/src/commands/computer-setup-commands.ts +709 -0
  177. package/src/commands/computer-setup.ts +565 -0
  178. package/src/commands/create-command.ts +175 -0
  179. package/src/commands/create.ts +727 -0
  180. package/src/commands/dashboard.ts +691 -0
  181. package/src/commands/govern.ts +635 -0
  182. package/src/commands/init.ts +677 -0
  183. package/src/commands/performance-optimizer.ts +864 -0
  184. package/src/commands/plugins.ts +848 -0
  185. package/src/commands/setup.ts +508 -0
  186. package/src/commands/test-init.ts +242 -0
  187. package/src/commands/test.ts +264 -0
  188. package/src/commands/watch.ts +755 -0
  189. package/src/context/context-manager.ts +546 -0
  190. package/src/context/index.ts +9 -0
  191. package/src/context/session-manager.ts +1019 -0
  192. package/src/index.ts +64 -0
  193. package/src/interactive/interactive-mode.ts +830 -0
  194. package/src/nlp/command-mapper.ts +885 -0
  195. package/src/nlp/command-parser.ts +564 -0
  196. package/src/nlp/index.ts +4 -0
  197. package/src/nlp/intent-classifier.ts +458 -0
  198. package/src/nlp/intent-parser.ts +1101 -0
  199. package/src/plugins/plugin-manager.ts +744 -0
  200. package/src/types/index.ts +252 -0
  201. package/src/types/modules.d.ts +56 -0
  202. package/src/utils/config-manager.ts +391 -0
  203. package/src/utils/error-handler.ts +192 -0
  204. package/src/utils/logger.ts +104 -0
  205. package/templates/batch/ci-cd.yaml +62 -0
  206. package/templates/component/{{fileName}}.test.tsx +17 -0
  207. package/templates/component/{{fileName}}.tsx +21 -0
  208. package/templates/service/{{fileName}}.ts +98 -0
  209. package/templates/wundr-test.config.js +0 -0
  210. package/test-suites/api/health.spec.ts +134 -0
  211. package/test-suites/helpers/test-config.ts +84 -0
  212. package/test-suites/ui/accessibility.spec.ts +102 -0
  213. package/test-suites/ui/smoke.spec.ts +92 -0
@@ -0,0 +1,8 @@
1
+ export { ClaudeClient } from './claude-client';
2
+ export type {
3
+ ClaudeConfig,
4
+ ClaudeMessage,
5
+ ClaudeResponse,
6
+ } from './claude-client';
7
+ export { AIService } from './ai-service';
8
+ export type { AIServiceConfig, ConversationContext } from './ai-service';
package/src/cli.ts ADDED
@@ -0,0 +1,202 @@
1
+ import { Command } from 'commander';
2
+ import { version } from '../package.json';
3
+ import { InteractiveMode } from './interactive/interactive-mode';
4
+ import { PluginManager } from './plugins/plugin-manager';
5
+ import { ConfigManager } from './utils/config-manager';
6
+ import { logger } from './utils/logger';
7
+
8
+ // Import command modules
9
+ import { InitCommands } from './commands/init';
10
+ import { CreateCommands } from './commands/create';
11
+ import { AnalyzeCommands } from './commands/analyze';
12
+ import { GovernCommands } from './commands/govern';
13
+ import { AICommands } from './commands/ai';
14
+ import { DashboardCommands } from './commands/dashboard';
15
+ import { WatchCommands } from './commands/watch';
16
+ import { BatchCommands } from './commands/batch';
17
+ import { ChatCommands } from './commands/chat';
18
+ import { PluginCommands } from './commands/plugins';
19
+ import { SetupCommands } from './commands/setup';
20
+ import { createComputerSetupCommand } from './commands/computer-setup';
21
+ import { createTestCommand } from './commands/test';
22
+ import claudeInitCommand from './commands/claude-init';
23
+ import claudeSetupCommand from './commands/claude-setup';
24
+
25
+ /**
26
+ * Main CLI class that orchestrates all commands and modes
27
+ */
28
+ export class WundrCLI {
29
+ private program: Command;
30
+ private interactiveMode: InteractiveMode;
31
+ private pluginManager: PluginManager;
32
+ private configManager: ConfigManager;
33
+
34
+ constructor() {
35
+ this.program = new Command();
36
+ this.configManager = new ConfigManager();
37
+ this.pluginManager = new PluginManager(this.configManager);
38
+ this.interactiveMode = new InteractiveMode(
39
+ this.configManager,
40
+ this.pluginManager
41
+ );
42
+
43
+ this.setupProgram();
44
+ this.registerCommands();
45
+ this.setupGlobalOptions();
46
+ this.setupInteractiveMode();
47
+ }
48
+
49
+ /**
50
+ * Setup the main program configuration
51
+ */
52
+ private setupProgram(): void {
53
+ this.program
54
+ .name('wundr')
55
+ .description(
56
+ 'Unified Developer Platform - Code Analysis, Governance & Computer Setup for Engineering Teams'
57
+ )
58
+ .version(version, '-v, --version', 'display version number')
59
+ .helpOption('-h, --help', 'display help for command')
60
+ .addHelpText(
61
+ 'before',
62
+ `
63
+ ╦ ╦╦ ╦╔╗╔╔╦╗╦═╗
64
+ ║║║║ ║║║║ ║║╠╦╝
65
+ ╚╩╝╚═╝╝╚╝═╩╝╩╚═
66
+ The Unified Developer Platform
67
+ `
68
+ )
69
+ .configureOutput({
70
+ writeOut: str => process.stdout.write(str),
71
+ writeErr: str => process.stderr.write(str),
72
+ });
73
+ }
74
+
75
+ /**
76
+ * Register all command categories
77
+ */
78
+ private registerCommands(): void {
79
+ // Computer Setup & Provisioning (primary integration)
80
+ new SetupCommands(this.program, this.configManager, this.pluginManager);
81
+ // Use the working computer-setup command instead of the broken one
82
+ this.program.addCommand(createComputerSetupCommand());
83
+
84
+ // Code Analysis & Governance (original wundr features)
85
+ new AnalyzeCommands(this.program, this.configManager, this.pluginManager);
86
+ new GovernCommands(this.program, this.configManager, this.pluginManager);
87
+
88
+ // Project Management
89
+ new InitCommands(this.program, this.configManager, this.pluginManager);
90
+ new CreateCommands(this.program, this.configManager, this.pluginManager);
91
+
92
+ // AI & Automation
93
+ new AICommands(this.program, this.configManager, this.pluginManager);
94
+ new BatchCommands(this.program, this.configManager, this.pluginManager);
95
+
96
+ // Dashboard & Monitoring
97
+ new DashboardCommands(this.program, this.configManager, this.pluginManager);
98
+ new WatchCommands(this.program, this.configManager, this.pluginManager);
99
+
100
+ // Testing
101
+ this.program.addCommand(createTestCommand());
102
+
103
+ // Interactive Modes
104
+ new ChatCommands(this.program, this.configManager, this.pluginManager);
105
+
106
+ // Plugin Management
107
+ new PluginCommands(this.program, this.configManager, this.pluginManager);
108
+
109
+ // Claude Integration
110
+ claudeInitCommand(this.program);
111
+ claudeSetupCommand(this.program);
112
+ }
113
+
114
+ /**
115
+ * Setup global options and hooks
116
+ */
117
+ private setupGlobalOptions(): void {
118
+ this.program
119
+ .option('--config <path>', 'specify config file path')
120
+ .option('--verbose', 'enable verbose logging')
121
+ .option('--quiet', 'suppress output')
122
+ .option('--no-color', 'disable colored output')
123
+ .option('--dry-run', 'show what would be done without executing')
124
+ .option('--interactive', 'force interactive mode')
125
+ .hook('preAction', (thisCommand, actionCommand) => {
126
+ const options = thisCommand.opts();
127
+
128
+ // Setup logging level
129
+ if (options['verbose']) {
130
+ logger.setLevel('debug');
131
+ } else if (options['quiet']) {
132
+ logger.setLevel('error');
133
+ }
134
+
135
+ // Load custom config if specified
136
+ if (options['config']) {
137
+ this.configManager.loadConfig(options['config']);
138
+ }
139
+
140
+ // Setup color mode
141
+ if (options['noColor']) {
142
+ process.env['NO_COLOR'] = '1';
143
+ }
144
+
145
+ logger.debug(`Executing command: ${actionCommand.name()}`);
146
+ });
147
+ }
148
+
149
+ /**
150
+ * Setup interactive mode triggers
151
+ */
152
+ private setupInteractiveMode(): void {
153
+ // Interactive wizard command
154
+ this.program
155
+ .command('wizard')
156
+ .alias('w')
157
+ .description('launch interactive wizard mode')
158
+ .option('--mode <type>', 'wizard mode (setup, analyze, create)', 'setup')
159
+ .action(async options => {
160
+ await this.interactiveMode.launchWizard(options.mode);
161
+ });
162
+
163
+ // Chat interface command
164
+ this.program
165
+ .command('chat')
166
+ .alias('c')
167
+ .description('launch natural language chat interface')
168
+ .option('--model <model>', 'AI model to use', 'claude-3')
169
+ .option('--context <path>', 'load context from directory')
170
+ .action(async options => {
171
+ await this.interactiveMode.launchChat(options);
172
+ });
173
+
174
+ // TUI dashboard command
175
+ this.program
176
+ .command('tui')
177
+ .alias('t')
178
+ .description('launch terminal user interface')
179
+ .option(
180
+ '--layout <type>',
181
+ 'TUI layout (dashboard, monitor, debug)',
182
+ 'dashboard'
183
+ )
184
+ .action(async options => {
185
+ await this.interactiveMode.launchTUI(options.layout);
186
+ });
187
+ }
188
+
189
+ /**
190
+ * Get the configured program
191
+ */
192
+ public createProgram(): Command {
193
+ return this.program;
194
+ }
195
+
196
+ /**
197
+ * Load and register plugins
198
+ */
199
+ public async loadPlugins(): Promise<void> {
200
+ await this.pluginManager.loadPlugins();
201
+ }
202
+ }