@wundr.io/cli 1.0.12 → 1.0.14

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 (233) hide show
  1. package/dist/ai/ai-service.d.ts +152 -0
  2. package/dist/ai/ai-service.d.ts.map +1 -0
  3. package/dist/ai/ai-service.js +430 -0
  4. package/dist/ai/ai-service.js.map +1 -0
  5. package/dist/ai/claude-client.d.ts +130 -0
  6. package/dist/ai/claude-client.d.ts.map +1 -0
  7. package/dist/ai/claude-client.js +340 -0
  8. package/dist/ai/claude-client.js.map +1 -0
  9. package/dist/ai/conversation-manager.d.ts +164 -0
  10. package/dist/ai/conversation-manager.d.ts.map +1 -0
  11. package/dist/ai/conversation-manager.js +614 -0
  12. package/dist/ai/conversation-manager.js.map +1 -0
  13. package/dist/ai/index.d.ts +5 -0
  14. package/dist/ai/index.d.ts.map +1 -0
  15. package/dist/ai/index.js +8 -0
  16. package/dist/ai/index.js.map +1 -0
  17. package/dist/cli.d.ts +36 -0
  18. package/dist/cli.d.ts.map +1 -0
  19. package/dist/cli.js +192 -0
  20. package/dist/cli.js.map +1 -0
  21. package/dist/commands/ai.d.ts +89 -0
  22. package/dist/commands/ai.d.ts.map +1 -0
  23. package/dist/commands/ai.js +954 -0
  24. package/dist/commands/ai.js.map +1 -0
  25. package/dist/commands/alignment.d.ts +78 -0
  26. package/dist/commands/alignment.d.ts.map +1 -0
  27. package/dist/commands/alignment.js +817 -0
  28. package/dist/commands/alignment.js.map +1 -0
  29. package/dist/commands/analyze-optimized.d.ts +14 -0
  30. package/dist/commands/analyze-optimized.d.ts.map +1 -0
  31. package/dist/commands/analyze-optimized.js +609 -0
  32. package/dist/commands/analyze-optimized.js.map +1 -0
  33. package/dist/commands/analyze.d.ts +65 -0
  34. package/dist/commands/analyze.d.ts.map +1 -0
  35. package/dist/commands/analyze.js +435 -0
  36. package/dist/commands/analyze.js.map +1 -0
  37. package/dist/commands/batch.d.ts +93 -0
  38. package/dist/commands/batch.d.ts.map +1 -0
  39. package/dist/commands/batch.js +854 -0
  40. package/dist/commands/batch.js.map +1 -0
  41. package/dist/commands/chat.d.ts +72 -0
  42. package/dist/commands/chat.d.ts.map +1 -0
  43. package/dist/commands/chat.js +678 -0
  44. package/dist/commands/chat.js.map +1 -0
  45. package/dist/commands/claude-init.d.ts +28 -0
  46. package/dist/commands/claude-init.d.ts.map +1 -0
  47. package/dist/commands/claude-init.js +591 -0
  48. package/dist/commands/claude-init.js.map +1 -0
  49. package/dist/commands/claude-setup.d.ts +119 -0
  50. package/dist/commands/claude-setup.d.ts.map +1 -0
  51. package/dist/commands/claude-setup.js +1079 -0
  52. package/dist/commands/claude-setup.js.map +1 -0
  53. package/dist/commands/computer-setup.d.ts +8 -0
  54. package/dist/commands/computer-setup.d.ts.map +1 -0
  55. package/dist/commands/computer-setup.js +877 -0
  56. package/dist/commands/computer-setup.js.map +1 -0
  57. package/dist/commands/create-command.d.ts +7 -0
  58. package/dist/commands/create-command.d.ts.map +1 -0
  59. package/dist/commands/create-command.js +158 -0
  60. package/dist/commands/create-command.js.map +1 -0
  61. package/dist/commands/create.d.ts +74 -0
  62. package/dist/commands/create.d.ts.map +1 -0
  63. package/dist/commands/create.js +556 -0
  64. package/dist/commands/create.js.map +1 -0
  65. package/dist/commands/dashboard.d.ts +91 -0
  66. package/dist/commands/dashboard.d.ts.map +1 -0
  67. package/dist/commands/dashboard.js +538 -0
  68. package/dist/commands/dashboard.js.map +1 -0
  69. package/dist/commands/govern.d.ts +70 -0
  70. package/dist/commands/govern.d.ts.map +1 -0
  71. package/dist/commands/govern.js +481 -0
  72. package/dist/commands/govern.js.map +1 -0
  73. package/dist/commands/governance.d.ts +17 -0
  74. package/dist/commands/governance.d.ts.map +1 -0
  75. package/dist/commands/governance.js +703 -0
  76. package/dist/commands/governance.js.map +1 -0
  77. package/dist/commands/guardian.d.ts +20 -0
  78. package/dist/commands/guardian.d.ts.map +1 -0
  79. package/dist/commands/guardian.js +597 -0
  80. package/dist/commands/guardian.js.map +1 -0
  81. package/dist/commands/init.d.ts +59 -0
  82. package/dist/commands/init.d.ts.map +1 -0
  83. package/dist/commands/init.js +650 -0
  84. package/dist/commands/init.js.map +1 -0
  85. package/dist/commands/orchestrator.d.ts +7 -0
  86. package/dist/commands/orchestrator.d.ts.map +1 -0
  87. package/dist/commands/orchestrator.js +578 -0
  88. package/dist/commands/orchestrator.js.map +1 -0
  89. package/dist/commands/performance-optimizer.d.ts +30 -0
  90. package/dist/commands/performance-optimizer.d.ts.map +1 -0
  91. package/dist/commands/performance-optimizer.js +650 -0
  92. package/dist/commands/performance-optimizer.js.map +1 -0
  93. package/dist/commands/plugins.d.ts +87 -0
  94. package/dist/commands/plugins.d.ts.map +1 -0
  95. package/dist/commands/plugins.js +685 -0
  96. package/dist/commands/plugins.js.map +1 -0
  97. package/dist/commands/rag.d.ts +7 -0
  98. package/dist/commands/rag.d.ts.map +1 -0
  99. package/dist/commands/rag.js +751 -0
  100. package/dist/commands/rag.js.map +1 -0
  101. package/dist/commands/session.d.ts +41 -0
  102. package/dist/commands/session.d.ts.map +1 -0
  103. package/dist/commands/session.js +441 -0
  104. package/dist/commands/session.js.map +1 -0
  105. package/dist/commands/setup.d.ts +24 -0
  106. package/dist/commands/setup.d.ts.map +1 -0
  107. package/dist/commands/setup.js +172 -0
  108. package/dist/commands/setup.js.map +1 -0
  109. package/dist/commands/test-init.d.ts +9 -0
  110. package/dist/commands/test-init.d.ts.map +1 -0
  111. package/dist/commands/test-init.js +222 -0
  112. package/dist/commands/test-init.js.map +1 -0
  113. package/dist/commands/test.d.ts +25 -0
  114. package/dist/commands/test.d.ts.map +1 -0
  115. package/dist/commands/test.js +217 -0
  116. package/dist/commands/test.js.map +1 -0
  117. package/dist/commands/watch.d.ts +76 -0
  118. package/dist/commands/watch.d.ts.map +1 -0
  119. package/dist/commands/watch.js +613 -0
  120. package/dist/commands/watch.js.map +1 -0
  121. package/dist/commands/worktree.d.ts +63 -0
  122. package/dist/commands/worktree.d.ts.map +1 -0
  123. package/dist/commands/worktree.js +774 -0
  124. package/dist/commands/worktree.js.map +1 -0
  125. package/dist/context/context-manager.d.ts +155 -0
  126. package/dist/context/context-manager.d.ts.map +1 -0
  127. package/dist/context/context-manager.js +383 -0
  128. package/dist/context/context-manager.js.map +1 -0
  129. package/dist/context/index.d.ts +3 -0
  130. package/dist/context/index.d.ts.map +1 -0
  131. package/dist/context/index.js +6 -0
  132. package/dist/context/index.js.map +1 -0
  133. package/dist/context/session-manager.d.ts +207 -0
  134. package/dist/context/session-manager.d.ts.map +1 -0
  135. package/dist/context/session-manager.js +686 -0
  136. package/dist/context/session-manager.js.map +1 -0
  137. package/dist/framework/command-interface.d.ts +349 -0
  138. package/dist/framework/command-interface.d.ts.map +1 -0
  139. package/dist/framework/command-interface.js +101 -0
  140. package/dist/framework/command-interface.js.map +1 -0
  141. package/dist/framework/command-registry.d.ts +173 -0
  142. package/dist/framework/command-registry.d.ts.map +1 -0
  143. package/dist/framework/command-registry.js +734 -0
  144. package/dist/framework/command-registry.js.map +1 -0
  145. package/dist/framework/completion-exporter.d.ts +79 -0
  146. package/dist/framework/completion-exporter.d.ts.map +1 -0
  147. package/dist/framework/completion-exporter.js +259 -0
  148. package/dist/framework/completion-exporter.js.map +1 -0
  149. package/dist/framework/debug-logger.d.ts +163 -0
  150. package/dist/framework/debug-logger.d.ts.map +1 -0
  151. package/dist/framework/debug-logger.js +373 -0
  152. package/dist/framework/debug-logger.js.map +1 -0
  153. package/dist/framework/error-handler.d.ts +196 -0
  154. package/dist/framework/error-handler.d.ts.map +1 -0
  155. package/dist/framework/error-handler.js +613 -0
  156. package/dist/framework/error-handler.js.map +1 -0
  157. package/dist/framework/help-generator.d.ts +78 -0
  158. package/dist/framework/help-generator.d.ts.map +1 -0
  159. package/dist/framework/help-generator.js +414 -0
  160. package/dist/framework/help-generator.js.map +1 -0
  161. package/dist/framework/index.d.ts +62 -0
  162. package/dist/framework/index.d.ts.map +1 -0
  163. package/dist/framework/index.js +95 -0
  164. package/dist/framework/index.js.map +1 -0
  165. package/dist/framework/interactive-repl.d.ts +138 -0
  166. package/dist/framework/interactive-repl.d.ts.map +1 -0
  167. package/dist/framework/interactive-repl.js +567 -0
  168. package/dist/framework/interactive-repl.js.map +1 -0
  169. package/dist/framework/output-formatter.d.ts +274 -0
  170. package/dist/framework/output-formatter.d.ts.map +1 -0
  171. package/dist/framework/output-formatter.js +545 -0
  172. package/dist/framework/output-formatter.js.map +1 -0
  173. package/dist/framework/progress-manager.d.ts +192 -0
  174. package/dist/framework/progress-manager.d.ts.map +1 -0
  175. package/dist/framework/progress-manager.js +408 -0
  176. package/dist/framework/progress-manager.js.map +1 -0
  177. package/dist/index.d.ts +8 -0
  178. package/dist/index.d.ts.map +1 -0
  179. package/dist/index.js +51 -0
  180. package/dist/index.js.map +1 -0
  181. package/dist/interactive/interactive-mode.d.ts +76 -0
  182. package/dist/interactive/interactive-mode.d.ts.map +1 -0
  183. package/dist/interactive/interactive-mode.js +732 -0
  184. package/dist/interactive/interactive-mode.js.map +1 -0
  185. package/dist/nlp/command-mapper.d.ts +174 -0
  186. package/dist/nlp/command-mapper.d.ts.map +1 -0
  187. package/dist/nlp/command-mapper.js +624 -0
  188. package/dist/nlp/command-mapper.js.map +1 -0
  189. package/dist/nlp/command-parser.d.ts +106 -0
  190. package/dist/nlp/command-parser.d.ts.map +1 -0
  191. package/dist/nlp/command-parser.js +417 -0
  192. package/dist/nlp/command-parser.js.map +1 -0
  193. package/dist/nlp/index.d.ts +5 -0
  194. package/dist/nlp/index.d.ts.map +1 -0
  195. package/dist/nlp/index.js +8 -0
  196. package/dist/nlp/index.js.map +1 -0
  197. package/dist/nlp/intent-classifier.d.ts +59 -0
  198. package/dist/nlp/intent-classifier.d.ts.map +1 -0
  199. package/dist/nlp/intent-classifier.js +384 -0
  200. package/dist/nlp/intent-classifier.js.map +1 -0
  201. package/dist/nlp/intent-parser.d.ts +152 -0
  202. package/dist/nlp/intent-parser.d.ts.map +1 -0
  203. package/dist/nlp/intent-parser.js +746 -0
  204. package/dist/nlp/intent-parser.js.map +1 -0
  205. package/dist/plugins/plugin-manager.d.ts +121 -0
  206. package/dist/plugins/plugin-manager.d.ts.map +1 -0
  207. package/dist/plugins/plugin-manager.js +606 -0
  208. package/dist/plugins/plugin-manager.js.map +1 -0
  209. package/dist/types/index.d.ts +224 -0
  210. package/dist/types/index.d.ts.map +1 -0
  211. package/dist/types/index.js +3 -0
  212. package/dist/types/index.js.map +1 -0
  213. package/dist/utils/backup-rollback-manager.d.ts +72 -0
  214. package/dist/utils/backup-rollback-manager.d.ts.map +1 -0
  215. package/dist/utils/backup-rollback-manager.js +288 -0
  216. package/dist/utils/backup-rollback-manager.js.map +1 -0
  217. package/dist/utils/claude-config-installer.d.ts +98 -0
  218. package/dist/utils/claude-config-installer.d.ts.map +1 -0
  219. package/dist/utils/claude-config-installer.js +678 -0
  220. package/dist/utils/claude-config-installer.js.map +1 -0
  221. package/dist/utils/config-manager.d.ts +73 -0
  222. package/dist/utils/config-manager.d.ts.map +1 -0
  223. package/dist/utils/config-manager.js +339 -0
  224. package/dist/utils/config-manager.js.map +1 -0
  225. package/dist/utils/error-handler.d.ts +46 -0
  226. package/dist/utils/error-handler.d.ts.map +1 -0
  227. package/dist/utils/error-handler.js +169 -0
  228. package/dist/utils/error-handler.js.map +1 -0
  229. package/dist/utils/logger.d.ts +25 -0
  230. package/dist/utils/logger.d.ts.map +1 -0
  231. package/dist/utils/logger.js +105 -0
  232. package/dist/utils/logger.js.map +1 -0
  233. package/package.json +6 -6
@@ -0,0 +1,192 @@
1
+ /**
2
+ * Progress Manager - Progress bars and spinners for long-running operations.
3
+ *
4
+ * Provides:
5
+ * - Single and multi-bar progress tracking
6
+ * - Spinner for indeterminate operations
7
+ * - ETA calculation
8
+ * - Step-based progress for sequential operations
9
+ * - Pipe-safe (no-op when stdout is not a TTY)
10
+ *
11
+ * @module framework/progress-manager
12
+ */
13
+ /**
14
+ * Configuration for a progress bar.
15
+ */
16
+ export interface ProgressBarOptions {
17
+ /** Total number of units. */
18
+ total: number;
19
+ /** Bar width in characters. Defaults to 30. */
20
+ width?: number;
21
+ /** Label displayed before the bar. */
22
+ label?: string;
23
+ /** Filled character. Defaults to '='. */
24
+ filledChar?: string;
25
+ /** Empty character. Defaults to '-'. */
26
+ emptyChar?: string;
27
+ /** Show percentage. Defaults to true. */
28
+ showPercentage?: boolean;
29
+ /** Show ETA. Defaults to true. */
30
+ showETA?: boolean;
31
+ /** Show count (current/total). Defaults to true. */
32
+ showCount?: boolean;
33
+ /** Custom format function. */
34
+ format?: (state: ProgressState) => string;
35
+ }
36
+ /**
37
+ * Current state of a progress bar.
38
+ */
39
+ export interface ProgressState {
40
+ current: number;
41
+ total: number;
42
+ percentage: number;
43
+ elapsed: number;
44
+ eta: number;
45
+ rate: number;
46
+ label: string;
47
+ }
48
+ /**
49
+ * A step in a multi-step operation.
50
+ */
51
+ export interface ProgressStep {
52
+ name: string;
53
+ status: 'pending' | 'running' | 'done' | 'failed' | 'skipped';
54
+ message?: string;
55
+ duration?: number;
56
+ }
57
+ /**
58
+ * Configuration for a multi-step tracker.
59
+ */
60
+ export interface StepTrackerOptions {
61
+ /** Whether to show step numbers. Defaults to true. */
62
+ showNumbers?: boolean;
63
+ /** Whether to show elapsed time per step. Defaults to true. */
64
+ showDuration?: boolean;
65
+ }
66
+ export declare class ProgressBar {
67
+ private current;
68
+ private startTime;
69
+ private options;
70
+ private isTTY;
71
+ private lastRender;
72
+ constructor(options: ProgressBarOptions);
73
+ /**
74
+ * Update progress to a specific value.
75
+ */
76
+ update(value: number): void;
77
+ /**
78
+ * Increment progress by a given amount.
79
+ */
80
+ increment(amount?: number): void;
81
+ /**
82
+ * Get the current state.
83
+ */
84
+ getState(): ProgressState;
85
+ /**
86
+ * Render the progress bar to stderr.
87
+ */
88
+ render(): void;
89
+ /**
90
+ * Finish the progress bar (add newline).
91
+ */
92
+ finish(message?: string): void;
93
+ /**
94
+ * Render the bar as a string (for non-interactive use).
95
+ */
96
+ toString(): string;
97
+ private defaultFormat;
98
+ private formatTime;
99
+ }
100
+ export declare class MultiProgressManager {
101
+ private bars;
102
+ /**
103
+ * Create and register a new progress bar.
104
+ */
105
+ create(id: string, options: ProgressBarOptions): ProgressBar;
106
+ /**
107
+ * Get a progress bar by ID.
108
+ */
109
+ get(id: string): ProgressBar | undefined;
110
+ /**
111
+ * Update a progress bar by ID.
112
+ */
113
+ update(id: string, value: number): void;
114
+ /**
115
+ * Finish and remove a progress bar.
116
+ */
117
+ finish(id: string, message?: string): void;
118
+ /**
119
+ * Finish all progress bars.
120
+ */
121
+ finishAll(): void;
122
+ }
123
+ /**
124
+ * Track progress through a series of named steps.
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * const tracker = new StepTracker([
129
+ * 'Installing dependencies',
130
+ * 'Running migrations',
131
+ * 'Building assets',
132
+ * 'Verifying deployment',
133
+ * ]);
134
+ *
135
+ * tracker.start(0);
136
+ * await installDeps();
137
+ * tracker.complete(0);
138
+ *
139
+ * tracker.start(1);
140
+ * await runMigrations();
141
+ * tracker.complete(1);
142
+ * ```
143
+ */
144
+ export declare class StepTracker {
145
+ private steps;
146
+ private startTimes;
147
+ private options;
148
+ private isTTY;
149
+ constructor(stepNames: string[], options?: StepTrackerOptions);
150
+ /**
151
+ * Mark a step as running.
152
+ */
153
+ start(index: number): void;
154
+ /**
155
+ * Mark a step as completed.
156
+ */
157
+ complete(index: number, message?: string): void;
158
+ /**
159
+ * Mark a step as failed.
160
+ */
161
+ fail(index: number, message?: string): void;
162
+ /**
163
+ * Mark a step as skipped.
164
+ */
165
+ skip(index: number, reason?: string): void;
166
+ /**
167
+ * Get all steps with their current status.
168
+ */
169
+ getSteps(): readonly ProgressStep[];
170
+ /**
171
+ * Get the overall progress as a fraction.
172
+ */
173
+ getProgress(): {
174
+ completed: number;
175
+ total: number;
176
+ percentage: number;
177
+ };
178
+ /**
179
+ * Render step status to stderr.
180
+ */
181
+ render(): void;
182
+ /**
183
+ * Render the final summary.
184
+ */
185
+ summary(): string;
186
+ private setDuration;
187
+ private statusIcon;
188
+ private statusColor;
189
+ private stepSuffix;
190
+ private formatDuration;
191
+ }
192
+ //# sourceMappingURL=progress-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-manager.d.ts","sourceRoot":"","sources":["../../src/framework/progress-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,408 @@
1
+ "use strict";
2
+ /**
3
+ * Progress Manager - Progress bars and spinners for long-running operations.
4
+ *
5
+ * Provides:
6
+ * - Single and multi-bar progress tracking
7
+ * - Spinner for indeterminate operations
8
+ * - ETA calculation
9
+ * - Step-based progress for sequential operations
10
+ * - Pipe-safe (no-op when stdout is not a TTY)
11
+ *
12
+ * @module framework/progress-manager
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.StepTracker = exports.MultiProgressManager = exports.ProgressBar = void 0;
16
+ const tslib_1 = require("tslib");
17
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
18
+ // ---------------------------------------------------------------------------
19
+ // Progress Bar
20
+ // ---------------------------------------------------------------------------
21
+ class ProgressBar {
22
+ current = 0;
23
+ startTime;
24
+ options;
25
+ isTTY;
26
+ lastRender = '';
27
+ constructor(options) {
28
+ this.startTime = Date.now();
29
+ this.isTTY = process.stderr.isTTY === true;
30
+ this.options = {
31
+ total: options.total,
32
+ width: options.width ?? 30,
33
+ label: options.label ?? '',
34
+ filledChar: options.filledChar ?? '=',
35
+ emptyChar: options.emptyChar ?? '-',
36
+ showPercentage: options.showPercentage ?? true,
37
+ showETA: options.showETA ?? true,
38
+ showCount: options.showCount ?? true,
39
+ format: options.format,
40
+ };
41
+ }
42
+ /**
43
+ * Update progress to a specific value.
44
+ */
45
+ update(value) {
46
+ this.current = Math.min(value, this.options.total);
47
+ this.render();
48
+ }
49
+ /**
50
+ * Increment progress by a given amount.
51
+ */
52
+ increment(amount = 1) {
53
+ this.update(this.current + amount);
54
+ }
55
+ /**
56
+ * Get the current state.
57
+ */
58
+ getState() {
59
+ const elapsed = Date.now() - this.startTime;
60
+ const percentage = this.options.total > 0 ? this.current / this.options.total : 0;
61
+ const rate = elapsed > 0 ? (this.current / elapsed) * 1000 : 0;
62
+ const remaining = this.options.total - this.current;
63
+ const eta = rate > 0 ? (remaining / rate) * 1000 : 0;
64
+ return {
65
+ current: this.current,
66
+ total: this.options.total,
67
+ percentage,
68
+ elapsed,
69
+ eta,
70
+ rate,
71
+ label: this.options.label,
72
+ };
73
+ }
74
+ /**
75
+ * Render the progress bar to stderr.
76
+ */
77
+ render() {
78
+ if (!this.isTTY)
79
+ return;
80
+ const state = this.getState();
81
+ let line;
82
+ if (this.options.format) {
83
+ line = this.options.format(state);
84
+ }
85
+ else {
86
+ line = this.defaultFormat(state);
87
+ }
88
+ // Only rewrite if changed
89
+ if (line !== this.lastRender) {
90
+ process.stderr.clearLine(0);
91
+ process.stderr.cursorTo(0);
92
+ process.stderr.write(line);
93
+ this.lastRender = line;
94
+ }
95
+ }
96
+ /**
97
+ * Finish the progress bar (add newline).
98
+ */
99
+ finish(message) {
100
+ if (!this.isTTY)
101
+ return;
102
+ this.current = this.options.total;
103
+ this.render();
104
+ process.stderr.write('\n');
105
+ if (message) {
106
+ process.stderr.write(message + '\n');
107
+ }
108
+ }
109
+ /**
110
+ * Render the bar as a string (for non-interactive use).
111
+ */
112
+ toString() {
113
+ const state = this.getState();
114
+ if (this.options.format) {
115
+ return this.options.format(state);
116
+ }
117
+ return this.defaultFormat(state);
118
+ }
119
+ // -------------------------------------------------------------------------
120
+ // Private
121
+ // -------------------------------------------------------------------------
122
+ defaultFormat(state) {
123
+ const parts = [];
124
+ // Label
125
+ if (this.options.label) {
126
+ parts.push(chalk_1.default.cyan(this.options.label));
127
+ }
128
+ // Bar
129
+ const filled = Math.round(state.percentage * this.options.width);
130
+ const empty = this.options.width - filled;
131
+ const bar = chalk_1.default.cyan('[') +
132
+ chalk_1.default.green(this.options.filledChar.repeat(filled)) +
133
+ chalk_1.default.gray(this.options.emptyChar.repeat(empty)) +
134
+ chalk_1.default.cyan(']');
135
+ parts.push(bar);
136
+ // Percentage
137
+ if (this.options.showPercentage) {
138
+ parts.push(`${(state.percentage * 100).toFixed(0)}%`);
139
+ }
140
+ // Count
141
+ if (this.options.showCount) {
142
+ parts.push(chalk_1.default.gray(`${state.current}/${state.total}`));
143
+ }
144
+ // ETA
145
+ if (this.options.showETA &&
146
+ state.current > 0 &&
147
+ state.current < state.total) {
148
+ parts.push(chalk_1.default.gray(`ETA: ${this.formatTime(state.eta)}`));
149
+ }
150
+ return parts.join(' ');
151
+ }
152
+ formatTime(ms) {
153
+ const seconds = Math.ceil(ms / 1000);
154
+ if (seconds < 60)
155
+ return `${seconds}s`;
156
+ const minutes = Math.floor(seconds / 60);
157
+ const remainingSeconds = seconds % 60;
158
+ return `${minutes}m${remainingSeconds}s`;
159
+ }
160
+ }
161
+ exports.ProgressBar = ProgressBar;
162
+ // ---------------------------------------------------------------------------
163
+ // Multi-Progress Manager
164
+ // ---------------------------------------------------------------------------
165
+ class MultiProgressManager {
166
+ bars = new Map();
167
+ /**
168
+ * Create and register a new progress bar.
169
+ */
170
+ create(id, options) {
171
+ const bar = new ProgressBar(options);
172
+ this.bars.set(id, bar);
173
+ return bar;
174
+ }
175
+ /**
176
+ * Get a progress bar by ID.
177
+ */
178
+ get(id) {
179
+ return this.bars.get(id);
180
+ }
181
+ /**
182
+ * Update a progress bar by ID.
183
+ */
184
+ update(id, value) {
185
+ this.bars.get(id)?.update(value);
186
+ }
187
+ /**
188
+ * Finish and remove a progress bar.
189
+ */
190
+ finish(id, message) {
191
+ const bar = this.bars.get(id);
192
+ if (bar) {
193
+ bar.finish(message);
194
+ this.bars.delete(id);
195
+ }
196
+ }
197
+ /**
198
+ * Finish all progress bars.
199
+ */
200
+ finishAll() {
201
+ for (const [id, bar] of this.bars) {
202
+ bar.finish();
203
+ this.bars.delete(id);
204
+ }
205
+ }
206
+ }
207
+ exports.MultiProgressManager = MultiProgressManager;
208
+ // ---------------------------------------------------------------------------
209
+ // Step Tracker
210
+ // ---------------------------------------------------------------------------
211
+ /**
212
+ * Track progress through a series of named steps.
213
+ *
214
+ * @example
215
+ * ```typescript
216
+ * const tracker = new StepTracker([
217
+ * 'Installing dependencies',
218
+ * 'Running migrations',
219
+ * 'Building assets',
220
+ * 'Verifying deployment',
221
+ * ]);
222
+ *
223
+ * tracker.start(0);
224
+ * await installDeps();
225
+ * tracker.complete(0);
226
+ *
227
+ * tracker.start(1);
228
+ * await runMigrations();
229
+ * tracker.complete(1);
230
+ * ```
231
+ */
232
+ class StepTracker {
233
+ steps;
234
+ startTimes = new Map();
235
+ options;
236
+ isTTY;
237
+ constructor(stepNames, options = {}) {
238
+ this.steps = stepNames.map(name => ({
239
+ name,
240
+ status: 'pending',
241
+ }));
242
+ this.options = {
243
+ showNumbers: options.showNumbers ?? true,
244
+ showDuration: options.showDuration ?? true,
245
+ };
246
+ this.isTTY = process.stderr.isTTY === true;
247
+ }
248
+ /**
249
+ * Mark a step as running.
250
+ */
251
+ start(index) {
252
+ const step = this.steps[index];
253
+ if (!step)
254
+ return;
255
+ step.status = 'running';
256
+ this.startTimes.set(index, Date.now());
257
+ this.render();
258
+ }
259
+ /**
260
+ * Mark a step as completed.
261
+ */
262
+ complete(index, message) {
263
+ const step = this.steps[index];
264
+ if (!step)
265
+ return;
266
+ step.status = 'done';
267
+ step.message = message;
268
+ this.setDuration(index);
269
+ this.render();
270
+ }
271
+ /**
272
+ * Mark a step as failed.
273
+ */
274
+ fail(index, message) {
275
+ const step = this.steps[index];
276
+ if (!step)
277
+ return;
278
+ step.status = 'failed';
279
+ step.message = message;
280
+ this.setDuration(index);
281
+ this.render();
282
+ }
283
+ /**
284
+ * Mark a step as skipped.
285
+ */
286
+ skip(index, reason) {
287
+ const step = this.steps[index];
288
+ if (!step)
289
+ return;
290
+ step.status = 'skipped';
291
+ step.message = reason;
292
+ this.render();
293
+ }
294
+ /**
295
+ * Get all steps with their current status.
296
+ */
297
+ getSteps() {
298
+ return this.steps;
299
+ }
300
+ /**
301
+ * Get the overall progress as a fraction.
302
+ */
303
+ getProgress() {
304
+ const completed = this.steps.filter(s => s.status === 'done' || s.status === 'skipped').length;
305
+ return {
306
+ completed,
307
+ total: this.steps.length,
308
+ percentage: this.steps.length > 0 ? completed / this.steps.length : 0,
309
+ };
310
+ }
311
+ /**
312
+ * Render step status to stderr.
313
+ */
314
+ render() {
315
+ if (!this.isTTY)
316
+ return;
317
+ const lines = this.steps.map((step, index) => {
318
+ const prefix = this.options.showNumbers ? `${index + 1}. ` : '';
319
+ const icon = this.statusIcon(step.status);
320
+ const name = this.statusColor(step.status, step.name);
321
+ const suffix = this.stepSuffix(step);
322
+ return ` ${prefix}${icon} ${name}${suffix}`;
323
+ });
324
+ // Move cursor up to overwrite previous render
325
+ const moveUp = this.steps.length;
326
+ if (moveUp > 0) {
327
+ process.stderr.write(`\x1b[${moveUp}A`);
328
+ }
329
+ for (const line of lines) {
330
+ process.stderr.clearLine(0);
331
+ process.stderr.write(line + '\n');
332
+ }
333
+ }
334
+ /**
335
+ * Render the final summary.
336
+ */
337
+ summary() {
338
+ const { completed, total } = this.getProgress();
339
+ const failed = this.steps.filter(s => s.status === 'failed').length;
340
+ const skipped = this.steps.filter(s => s.status === 'skipped').length;
341
+ const parts = [`${completed}/${total} steps completed`];
342
+ if (failed > 0)
343
+ parts.push(chalk_1.default.red(`${failed} failed`));
344
+ if (skipped > 0)
345
+ parts.push(chalk_1.default.yellow(`${skipped} skipped`));
346
+ return parts.join(', ');
347
+ }
348
+ // -------------------------------------------------------------------------
349
+ // Private
350
+ // -------------------------------------------------------------------------
351
+ setDuration(index) {
352
+ const start = this.startTimes.get(index);
353
+ if (start !== undefined) {
354
+ const step = this.steps[index];
355
+ if (step) {
356
+ step.duration = Date.now() - start;
357
+ }
358
+ this.startTimes.delete(index);
359
+ }
360
+ }
361
+ statusIcon(status) {
362
+ switch (status) {
363
+ case 'pending':
364
+ return chalk_1.default.gray('[ ]');
365
+ case 'running':
366
+ return chalk_1.default.cyan('[~]');
367
+ case 'done':
368
+ return chalk_1.default.green('[+]');
369
+ case 'failed':
370
+ return chalk_1.default.red('[x]');
371
+ case 'skipped':
372
+ return chalk_1.default.yellow('[-]');
373
+ }
374
+ }
375
+ statusColor(status, text) {
376
+ switch (status) {
377
+ case 'pending':
378
+ return chalk_1.default.gray(text);
379
+ case 'running':
380
+ return chalk_1.default.cyan(text);
381
+ case 'done':
382
+ return chalk_1.default.green(text);
383
+ case 'failed':
384
+ return chalk_1.default.red(text);
385
+ case 'skipped':
386
+ return chalk_1.default.yellow(text);
387
+ }
388
+ }
389
+ stepSuffix(step) {
390
+ const parts = [];
391
+ if (step.message) {
392
+ parts.push(chalk_1.default.gray(` - ${step.message}`));
393
+ }
394
+ if (this.options.showDuration && step.duration !== undefined) {
395
+ parts.push(chalk_1.default.gray(` (${this.formatDuration(step.duration)})`));
396
+ }
397
+ return parts.join('');
398
+ }
399
+ formatDuration(ms) {
400
+ if (ms < 1000)
401
+ return `${ms}ms`;
402
+ if (ms < 60000)
403
+ return `${(ms / 1000).toFixed(1)}s`;
404
+ return `${(ms / 60000).toFixed(1)}min`;
405
+ }
406
+ }
407
+ exports.StepTracker = StepTracker;
408
+ //# sourceMappingURL=progress-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-manager.js","sourceRoot":"","sources":["../../src/framework/progress-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Main CLI entry point
4
+ * Initializes the Wundr CLI with all commands and interactive modes
5
+ */
6
+ declare function main(): Promise<void>;
7
+ export { main };
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAWA;;;GAGG;AACH,iBAAe,IAAI,kBA6BlB;AAoBD,OAAO,EAAE,IAAI,EAAE,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.main = main;
5
+ const tslib_1 = require("tslib");
6
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
+ const figlet_1 = tslib_1.__importDefault(require("figlet"));
8
+ const package_json_1 = require("../package.json");
9
+ const cli_1 = require("./cli");
10
+ const error_handler_1 = require("./utils/error-handler");
11
+ const logger_1 = require("./utils/logger");
12
+ /**
13
+ * Main CLI entry point
14
+ * Initializes the Wundr CLI with all commands and interactive modes
15
+ */
16
+ async function main() {
17
+ try {
18
+ // Display banner
19
+ console.log(chalk_1.default.cyan(figlet_1.default.textSync('WUNDR', {
20
+ font: 'ANSI Shadow',
21
+ horizontalLayout: 'fitted',
22
+ verticalLayout: 'fitted',
23
+ })));
24
+ console.log(chalk_1.default.gray(`The Intelligent CLI-Based Coding Agents Orchestrator v${package_json_1.version}\n`));
25
+ // Initialize CLI
26
+ const cli = new cli_1.WundrCLI();
27
+ const program = cli.createProgram();
28
+ // Parse arguments
29
+ await program.parseAsync(process.argv);
30
+ }
31
+ catch (error) {
32
+ error_handler_1.errorHandler.handle(error);
33
+ process.exit(1);
34
+ }
35
+ }
36
+ // Handle uncaught exceptions
37
+ process.on('uncaughtException', error => {
38
+ logger_1.logger.error('Uncaught Exception:', error);
39
+ error_handler_1.errorHandler.handle(error);
40
+ process.exit(1);
41
+ });
42
+ process.on('unhandledRejection', (reason, promise) => {
43
+ logger_1.logger.error('Unhandled Rejection at:', promise, 'reason:', reason);
44
+ error_handler_1.errorHandler.handle(reason);
45
+ process.exit(1);
46
+ });
47
+ // Execute main function
48
+ if (require.main === module) {
49
+ main();
50
+ }
51
+ //# sourceMappingURL=index.js.map