@wundr.io/cli 1.0.0 → 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 (224) hide show
  1. package/README.md +696 -280
  2. package/dist/ai/ai-service.d.ts +2 -2
  3. package/dist/ai/ai-service.d.ts.map +1 -1
  4. package/dist/ai/ai-service.js +1 -1
  5. package/dist/ai/ai-service.js.map +1 -1
  6. package/dist/ai/claude-client.d.ts.map +1 -1
  7. package/dist/ai/claude-client.js +2 -1
  8. package/dist/ai/claude-client.js.map +1 -1
  9. package/dist/ai/conversation-manager.d.ts +2 -2
  10. package/dist/ai/conversation-manager.d.ts.map +1 -1
  11. package/dist/ai/conversation-manager.js +5 -3
  12. package/dist/ai/conversation-manager.js.map +1 -1
  13. package/dist/cli.d.ts.map +1 -1
  14. package/dist/cli.js +32 -13
  15. package/dist/cli.js.map +1 -1
  16. package/dist/commands/ai.d.ts +3 -3
  17. package/dist/commands/ai.d.ts.map +1 -1
  18. package/dist/commands/ai.js +2 -2
  19. package/dist/commands/ai.js.map +1 -1
  20. package/dist/commands/alignment.d.ts +78 -0
  21. package/dist/commands/alignment.d.ts.map +1 -0
  22. package/dist/commands/alignment.js +817 -0
  23. package/dist/commands/alignment.js.map +1 -0
  24. package/dist/commands/analyze-optimized.d.ts.map +1 -1
  25. package/dist/commands/analyze-optimized.js +9 -6
  26. package/dist/commands/analyze-optimized.js.map +1 -1
  27. package/dist/commands/analyze.d.ts +3 -3
  28. package/dist/commands/analyze.d.ts.map +1 -1
  29. package/dist/commands/analyze.js +2 -2
  30. package/dist/commands/analyze.js.map +1 -1
  31. package/dist/commands/batch.d.ts +3 -3
  32. package/dist/commands/batch.d.ts.map +1 -1
  33. package/dist/commands/batch.js +7 -7
  34. package/dist/commands/batch.js.map +1 -1
  35. package/dist/commands/chat.d.ts +3 -3
  36. package/dist/commands/chat.d.ts.map +1 -1
  37. package/dist/commands/chat.js +3 -3
  38. package/dist/commands/chat.js.map +1 -1
  39. package/dist/commands/claude-init.d.ts +1 -1
  40. package/dist/commands/claude-init.d.ts.map +1 -1
  41. package/dist/commands/claude-init.js +11 -7
  42. package/dist/commands/claude-init.js.map +1 -1
  43. package/dist/commands/claude-setup.d.ts +88 -1
  44. package/dist/commands/claude-setup.d.ts.map +1 -1
  45. package/dist/commands/claude-setup.js +549 -46
  46. package/dist/commands/claude-setup.js.map +1 -1
  47. package/dist/commands/computer-setup-commands.d.ts +17 -3
  48. package/dist/commands/computer-setup-commands.d.ts.map +1 -1
  49. package/dist/commands/computer-setup-commands.js +145 -3
  50. package/dist/commands/computer-setup-commands.js.map +1 -1
  51. package/dist/commands/computer-setup.d.ts.map +1 -1
  52. package/dist/commands/computer-setup.js +372 -4
  53. package/dist/commands/computer-setup.js.map +1 -1
  54. package/dist/commands/create-command.d.ts.map +1 -1
  55. package/dist/commands/create-command.js +3 -3
  56. package/dist/commands/create-command.js.map +1 -1
  57. package/dist/commands/create.d.ts +3 -3
  58. package/dist/commands/create.d.ts.map +1 -1
  59. package/dist/commands/create.js +3 -3
  60. package/dist/commands/create.js.map +1 -1
  61. package/dist/commands/dashboard.d.ts +3 -3
  62. package/dist/commands/dashboard.d.ts.map +1 -1
  63. package/dist/commands/dashboard.js +4 -3
  64. package/dist/commands/dashboard.js.map +1 -1
  65. package/dist/commands/govern.d.ts +3 -3
  66. package/dist/commands/govern.d.ts.map +1 -1
  67. package/dist/commands/govern.js +4 -3
  68. package/dist/commands/govern.js.map +1 -1
  69. package/dist/commands/governance.d.ts +17 -0
  70. package/dist/commands/governance.d.ts.map +1 -0
  71. package/dist/commands/governance.js +703 -0
  72. package/dist/commands/governance.js.map +1 -0
  73. package/dist/commands/guardian.d.ts +20 -0
  74. package/dist/commands/guardian.d.ts.map +1 -0
  75. package/dist/commands/guardian.js +597 -0
  76. package/dist/commands/guardian.js.map +1 -0
  77. package/dist/commands/init.d.ts +7 -3
  78. package/dist/commands/init.d.ts.map +1 -1
  79. package/dist/commands/init.js +71 -5
  80. package/dist/commands/init.js.map +1 -1
  81. package/dist/commands/performance-optimizer.d.ts +2 -2
  82. package/dist/commands/performance-optimizer.d.ts.map +1 -1
  83. package/dist/commands/performance-optimizer.js +8 -7
  84. package/dist/commands/performance-optimizer.js.map +1 -1
  85. package/dist/commands/plugins.d.ts +3 -3
  86. package/dist/commands/plugins.d.ts.map +1 -1
  87. package/dist/commands/plugins.js +2 -2
  88. package/dist/commands/plugins.js.map +1 -1
  89. package/dist/commands/rag.d.ts +7 -0
  90. package/dist/commands/rag.d.ts.map +1 -0
  91. package/dist/commands/rag.js +748 -0
  92. package/dist/commands/rag.js.map +1 -0
  93. package/dist/commands/session.d.ts +41 -0
  94. package/dist/commands/session.d.ts.map +1 -0
  95. package/dist/commands/session.js +441 -0
  96. package/dist/commands/session.js.map +1 -0
  97. package/dist/commands/setup.d.ts +3 -3
  98. package/dist/commands/setup.d.ts.map +1 -1
  99. package/dist/commands/setup.js +1 -3
  100. package/dist/commands/setup.js.map +1 -1
  101. package/dist/commands/test-init.d.ts.map +1 -1
  102. package/dist/commands/test-init.js +2 -2
  103. package/dist/commands/test-init.js.map +1 -1
  104. package/dist/commands/test.d.ts.map +1 -1
  105. package/dist/commands/test.js +2 -2
  106. package/dist/commands/test.js.map +1 -1
  107. package/dist/commands/vp.d.ts +7 -0
  108. package/dist/commands/vp.d.ts.map +1 -0
  109. package/dist/commands/vp.js +571 -0
  110. package/dist/commands/vp.js.map +1 -0
  111. package/dist/commands/watch.d.ts +3 -3
  112. package/dist/commands/watch.d.ts.map +1 -1
  113. package/dist/commands/watch.js +10 -7
  114. package/dist/commands/watch.js.map +1 -1
  115. package/dist/commands/worktree.d.ts +63 -0
  116. package/dist/commands/worktree.d.ts.map +1 -0
  117. package/dist/commands/worktree.js +774 -0
  118. package/dist/commands/worktree.js.map +1 -0
  119. package/dist/context/context-manager.d.ts +1 -1
  120. package/dist/context/context-manager.d.ts.map +1 -1
  121. package/dist/context/context-manager.js +1 -1
  122. package/dist/context/context-manager.js.map +1 -1
  123. package/dist/context/session-manager.d.ts +2 -2
  124. package/dist/context/session-manager.d.ts.map +1 -1
  125. package/dist/context/session-manager.js +9 -5
  126. package/dist/context/session-manager.js.map +1 -1
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +1 -1
  129. package/dist/index.js.map +1 -1
  130. package/dist/interactive/interactive-mode.d.ts +2 -2
  131. package/dist/interactive/interactive-mode.d.ts.map +1 -1
  132. package/dist/interactive/interactive-mode.js +6 -4
  133. package/dist/interactive/interactive-mode.js.map +1 -1
  134. package/dist/nlp/command-mapper.d.ts +1 -1
  135. package/dist/nlp/command-mapper.d.ts.map +1 -1
  136. package/dist/nlp/command-mapper.js +3 -2
  137. package/dist/nlp/command-mapper.js.map +1 -1
  138. package/dist/nlp/command-parser.d.ts +1 -1
  139. package/dist/nlp/command-parser.d.ts.map +1 -1
  140. package/dist/nlp/command-parser.js +2 -1
  141. package/dist/nlp/command-parser.js.map +1 -1
  142. package/dist/nlp/intent-parser.d.ts +1 -1
  143. package/dist/nlp/intent-parser.d.ts.map +1 -1
  144. package/dist/nlp/intent-parser.js +14 -9
  145. package/dist/nlp/intent-parser.js.map +1 -1
  146. package/dist/plugins/plugin-manager.d.ts +2 -2
  147. package/dist/plugins/plugin-manager.d.ts.map +1 -1
  148. package/dist/plugins/plugin-manager.js +3 -3
  149. package/dist/plugins/plugin-manager.js.map +1 -1
  150. package/dist/types/index.d.ts +1 -1
  151. package/dist/types/index.d.ts.map +1 -1
  152. package/dist/utils/backup-rollback-manager.d.ts +72 -0
  153. package/dist/utils/backup-rollback-manager.d.ts.map +1 -0
  154. package/dist/utils/backup-rollback-manager.js +289 -0
  155. package/dist/utils/backup-rollback-manager.js.map +1 -0
  156. package/dist/utils/claude-config-installer.d.ts +94 -0
  157. package/dist/utils/claude-config-installer.d.ts.map +1 -0
  158. package/dist/utils/claude-config-installer.js +628 -0
  159. package/dist/utils/claude-config-installer.js.map +1 -0
  160. package/dist/utils/config-manager.d.ts +1 -1
  161. package/dist/utils/config-manager.d.ts.map +1 -1
  162. package/dist/utils/config-manager.js +5 -5
  163. package/dist/utils/config-manager.js.map +1 -1
  164. package/dist/utils/error-handler.d.ts +1 -1
  165. package/dist/utils/error-handler.d.ts.map +1 -1
  166. package/dist/utils/error-handler.js.map +1 -1
  167. package/dist/utils/logger.d.ts +1 -1
  168. package/dist/utils/logger.d.ts.map +1 -1
  169. package/dist/utils/logger.js +22 -11
  170. package/dist/utils/logger.js.map +1 -1
  171. package/package.json +26 -7
  172. package/src/ai/ai-service.ts +22 -19
  173. package/src/ai/claude-client.ts +20 -16
  174. package/src/ai/conversation-manager.ts +37 -30
  175. package/src/cli.ts +42 -13
  176. package/src/commands/ai.ts +59 -57
  177. package/src/commands/alignment.ts +1212 -0
  178. package/src/commands/analyze-optimized.ts +70 -62
  179. package/src/commands/analyze.ts +22 -20
  180. package/src/commands/batch.ts +41 -38
  181. package/src/commands/chat.ts +37 -34
  182. package/src/commands/claude-init.ts +38 -30
  183. package/src/commands/claude-setup.ts +692 -97
  184. package/src/commands/computer-setup-commands.ts +203 -37
  185. package/src/commands/computer-setup.ts +474 -4
  186. package/src/commands/create-command.ts +7 -7
  187. package/src/commands/create.ts +36 -33
  188. package/src/commands/dashboard.ts +33 -28
  189. package/src/commands/govern.ts +34 -29
  190. package/src/commands/governance.ts +1005 -0
  191. package/src/commands/guardian.ts +887 -0
  192. package/src/commands/init.ts +112 -22
  193. package/src/commands/performance-optimizer.ts +48 -42
  194. package/src/commands/plugins.ts +35 -32
  195. package/src/commands/project-update.ts +1053 -0
  196. package/src/commands/rag.ts +904 -0
  197. package/src/commands/session.ts +631 -0
  198. package/src/commands/setup.ts +35 -31
  199. package/src/commands/test-init.ts +6 -5
  200. package/src/commands/test.ts +7 -6
  201. package/src/commands/vp.ts +762 -0
  202. package/src/commands/watch.ts +44 -33
  203. package/src/commands/worktree.ts +1057 -0
  204. package/src/context/context-manager.ts +15 -12
  205. package/src/context/session-manager.ts +51 -40
  206. package/src/index.ts +7 -6
  207. package/src/interactive/interactive-mode.ts +25 -18
  208. package/src/lib/conflict-resolution.ts +28 -0
  209. package/src/lib/merge-strategy.ts +28 -0
  210. package/src/lib/safety-mechanisms.ts +47 -0
  211. package/src/lib/state-detection.ts +28 -0
  212. package/src/nlp/command-mapper.ts +35 -30
  213. package/src/nlp/command-parser.ts +20 -17
  214. package/src/nlp/intent-classifier.ts +7 -7
  215. package/src/nlp/intent-parser.ts +61 -49
  216. package/src/plugins/plugin-manager.ts +27 -23
  217. package/src/tests/computer-setup-integration.test.ts +439 -0
  218. package/src/types/index.ts +1 -1
  219. package/src/types/modules.d.ts +1 -0
  220. package/src/utils/backup-rollback-manager.ts +363 -0
  221. package/src/utils/claude-config-installer.ts +734 -0
  222. package/src/utils/config-manager.ts +12 -9
  223. package/src/utils/error-handler.ts +5 -3
  224. package/src/utils/logger.ts +35 -12
@@ -1,10 +1,13 @@
1
- import fs from 'fs-extra';
2
- import path from 'path';
3
1
  import os from 'os';
2
+ import path from 'path';
3
+
4
+ import fs from 'fs-extra';
4
5
  import { z } from 'zod';
5
- import { WundrConfig } from '../types';
6
- import { logger } from './logger';
6
+
7
7
  import { errorHandler } from './error-handler';
8
+ import { logger } from './logger';
9
+
10
+ import type { WundrConfig } from '../types';
8
11
 
9
12
  // Zod schema for configuration validation
10
13
  const WundrConfigSchema = z.object({
@@ -101,7 +104,7 @@ export class ConfigManager {
101
104
  'WUNDR_CONFIG_INVALID',
102
105
  'Failed to load or parse configuration file',
103
106
  { configPath: configFile },
104
- true
107
+ true,
105
108
  );
106
109
  }
107
110
  }
@@ -126,7 +129,7 @@ export class ConfigManager {
126
129
  'WUNDR_CONFIG_INVALID',
127
130
  'Failed to save configuration file',
128
131
  { configPath: configFile },
129
- false
132
+ false,
130
133
  );
131
134
  }
132
135
  }
@@ -166,7 +169,7 @@ export class ConfigManager {
166
169
  return {
167
170
  valid: false,
168
171
  errors: error.issues.map(
169
- issue => `${issue.path.join('.')}: ${issue.message}`
172
+ issue => `${issue.path.join('.')}: ${issue.message}`,
170
173
  ),
171
174
  };
172
175
  }
@@ -213,7 +216,7 @@ export class ConfigManager {
213
216
  throw new Error(`Invalid path: empty key at position ${i}`);
214
217
  }
215
218
  if (!current || typeof current !== 'object') {
216
- throw new Error(`Invalid path: cannot set property on non-object`);
219
+ throw new Error('Invalid path: cannot set property on non-object');
217
220
  }
218
221
  if (!current[key] || typeof current[key] !== 'object') {
219
222
  current[key] = {};
@@ -226,7 +229,7 @@ export class ConfigManager {
226
229
  throw new Error('Invalid path: empty final key');
227
230
  }
228
231
  if (!finalKey || !current || typeof current !== 'object') {
229
- throw new Error(`Invalid path: cannot set property`);
232
+ throw new Error('Invalid path: cannot set property');
230
233
  }
231
234
  current[finalKey] = value;
232
235
  }
@@ -1,7 +1,9 @@
1
1
  import chalk from 'chalk';
2
- import { WundrError } from '../types';
2
+
3
3
  import { logger } from './logger';
4
4
 
5
+ import type { WundrError } from '../types';
6
+
5
7
  /**
6
8
  * Centralized error handling system
7
9
  */
@@ -114,7 +116,7 @@ class ErrorHandler {
114
116
 
115
117
  console.error(chalk.yellow('\nšŸ’” This appears to be an unexpected error.'));
116
118
  console.error(
117
- chalk.yellow(' Please report this issue with the above details.')
119
+ chalk.yellow(' Please report this issue with the above details.'),
118
120
  );
119
121
  }
120
122
 
@@ -165,7 +167,7 @@ class ErrorHandler {
165
167
  code: string,
166
168
  message: string,
167
169
  context?: Record<string, any>,
168
- recoverable = false
170
+ recoverable = false,
169
171
  ): WundrError {
170
172
  const error = new Error(message) as WundrError;
171
173
  error.code = code;
@@ -1,5 +1,6 @@
1
1
  import chalk from 'chalk';
2
- import { Logger } from '../types';
2
+
3
+ import type { Logger } from '../types';
3
4
 
4
5
  /**
5
6
  * Enhanced logger with multiple levels and colored output
@@ -17,7 +18,9 @@ class WundrLogger implements Logger {
17
18
  }
18
19
 
19
20
  private shouldLog(level: string): boolean {
20
- if (this.silent) return false;
21
+ if (this.silent) {
22
+ return false;
23
+ }
21
24
 
22
25
  const levels = { debug: 0, info: 1, warn: 2, error: 3 };
23
26
  return levels[level as keyof typeof levels] >= levels[this.level];
@@ -36,54 +39,74 @@ class WundrLogger implements Logger {
36
39
  }
37
40
 
38
41
  debug(message: string, ...args: any[]): void {
39
- if (!this.shouldLog('debug')) return;
42
+ if (!this.shouldLog('debug')) {
43
+ return;
44
+ }
40
45
  console.log(chalk.gray(this.formatMessage('debug', message, ...args)));
41
46
  }
42
47
 
43
48
  info(message: string, ...args: any[]): void {
44
- if (!this.shouldLog('info')) return;
49
+ if (!this.shouldLog('info')) {
50
+ return;
51
+ }
45
52
  console.log(chalk.blue(this.formatMessage('info', message, ...args)));
46
53
  }
47
54
 
48
55
  warn(message: string, ...args: any[]): void {
49
- if (!this.shouldLog('warn')) return;
56
+ if (!this.shouldLog('warn')) {
57
+ return;
58
+ }
50
59
  console.warn(chalk.yellow(this.formatMessage('warn', message, ...args)));
51
60
  }
52
61
 
53
62
  error(message: string, ...args: any[]): void {
54
- if (!this.shouldLog('error')) return;
63
+ if (!this.shouldLog('error')) {
64
+ return;
65
+ }
55
66
  console.error(chalk.red(this.formatMessage('error', message, ...args)));
56
67
  }
57
68
 
58
69
  success(message: string, ...args: any[]): void {
59
- if (!this.shouldLog('info')) return;
70
+ if (!this.shouldLog('info')) {
71
+ return;
72
+ }
60
73
  console.log(chalk.green(this.formatMessage('success', message, ...args)));
61
74
  }
62
75
 
63
76
  // Utility methods for structured logging
64
77
  table(data: any[]): void {
65
- if (this.silent) return;
78
+ if (this.silent) {
79
+ return;
80
+ }
66
81
  console.table(data);
67
82
  }
68
83
 
69
84
  json(data: any): void {
70
- if (this.silent) return;
85
+ if (this.silent) {
86
+ return;
87
+ }
71
88
  console.log(JSON.stringify(data, null, 2));
72
89
  }
73
90
 
74
91
  group(label: string): void {
75
- if (this.silent) return;
92
+ if (this.silent) {
93
+ return;
94
+ }
76
95
  console.group(chalk.cyan(label));
77
96
  }
78
97
 
79
98
  groupEnd(): void {
80
- if (this.silent) return;
99
+ if (this.silent) {
100
+ return;
101
+ }
81
102
  console.groupEnd();
82
103
  }
83
104
 
84
105
  // Progress logging
85
106
  progress(current: number, total: number, message?: string): void {
86
- if (this.silent) return;
107
+ if (this.silent) {
108
+ return;
109
+ }
87
110
  const percentage = Math.round((current / total) * 100);
88
111
  const bar = 'ā–ˆ'.repeat(Math.round(percentage / 2));
89
112
  const empty = 'ā–‘'.repeat(50 - Math.round(percentage / 2));