erosolar-cli 1.7.213 → 1.7.215

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 (104) hide show
  1. package/dist/bin/erosolar.js +3 -0
  2. package/dist/bin/erosolar.js.map +1 -1
  3. package/dist/mcp/sseClient.d.ts.map +1 -1
  4. package/dist/mcp/sseClient.js +54 -27
  5. package/dist/mcp/sseClient.js.map +1 -1
  6. package/dist/shell/claudeCodeStreamHandler.d.ts.map +1 -1
  7. package/dist/shell/claudeCodeStreamHandler.js +11 -1
  8. package/dist/shell/claudeCodeStreamHandler.js.map +1 -1
  9. package/dist/shell/interactiveShell.d.ts +10 -0
  10. package/dist/shell/interactiveShell.d.ts.map +1 -1
  11. package/dist/shell/interactiveShell.js +76 -31
  12. package/dist/shell/interactiveShell.js.map +1 -1
  13. package/dist/shell/shellApp.d.ts.map +1 -1
  14. package/dist/shell/shellApp.js +3 -0
  15. package/dist/shell/shellApp.js.map +1 -1
  16. package/dist/shell/streamingOutputManager.d.ts +1 -0
  17. package/dist/shell/streamingOutputManager.d.ts.map +1 -1
  18. package/dist/shell/streamingOutputManager.js +16 -4
  19. package/dist/shell/streamingOutputManager.js.map +1 -1
  20. package/dist/shell/terminalInput.d.ts +27 -7
  21. package/dist/shell/terminalInput.d.ts.map +1 -1
  22. package/dist/shell/terminalInput.js +91 -53
  23. package/dist/shell/terminalInput.js.map +1 -1
  24. package/dist/shell/terminalInputAdapter.d.ts +14 -0
  25. package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
  26. package/dist/shell/terminalInputAdapter.js +20 -0
  27. package/dist/shell/terminalInputAdapter.js.map +1 -1
  28. package/dist/ui/display.d.ts +17 -4
  29. package/dist/ui/display.d.ts.map +1 -1
  30. package/dist/ui/display.js +141 -81
  31. package/dist/ui/display.js.map +1 -1
  32. package/dist/ui/globalWriteLock.d.ts +38 -0
  33. package/dist/ui/globalWriteLock.d.ts.map +1 -0
  34. package/dist/ui/globalWriteLock.js +54 -0
  35. package/dist/ui/globalWriteLock.js.map +1 -0
  36. package/dist/ui/unified/layout.d.ts +27 -0
  37. package/dist/ui/unified/layout.d.ts.map +1 -0
  38. package/dist/ui/unified/layout.js +110 -0
  39. package/dist/ui/unified/layout.js.map +1 -0
  40. package/package.json +1 -1
  41. package/dist/ui/FixedInputArea.d.ts +0 -108
  42. package/dist/ui/FixedInputArea.d.ts.map +0 -1
  43. package/dist/ui/FixedInputArea.js +0 -312
  44. package/dist/ui/FixedInputArea.js.map +0 -1
  45. package/dist/ui/advancedTheme.d.ts +0 -246
  46. package/dist/ui/advancedTheme.d.ts.map +0 -1
  47. package/dist/ui/advancedTheme.js +0 -478
  48. package/dist/ui/advancedTheme.js.map +0 -1
  49. package/dist/ui/collapsibleContent.d.ts +0 -57
  50. package/dist/ui/collapsibleContent.d.ts.map +0 -1
  51. package/dist/ui/collapsibleContent.js +0 -106
  52. package/dist/ui/collapsibleContent.js.map +0 -1
  53. package/dist/ui/diffViewer.d.ts +0 -42
  54. package/dist/ui/diffViewer.d.ts.map +0 -1
  55. package/dist/ui/diffViewer.js +0 -343
  56. package/dist/ui/diffViewer.js.map +0 -1
  57. package/dist/ui/gitDisplay.d.ts +0 -45
  58. package/dist/ui/gitDisplay.d.ts.map +0 -1
  59. package/dist/ui/gitDisplay.js +0 -215
  60. package/dist/ui/gitDisplay.js.map +0 -1
  61. package/dist/ui/gitFormatter.d.ts +0 -29
  62. package/dist/ui/gitFormatter.d.ts.map +0 -1
  63. package/dist/ui/gitFormatter.js +0 -203
  64. package/dist/ui/gitFormatter.js.map +0 -1
  65. package/dist/ui/keyboardShortcuts.d.ts +0 -49
  66. package/dist/ui/keyboardShortcuts.d.ts.map +0 -1
  67. package/dist/ui/keyboardShortcuts.js +0 -128
  68. package/dist/ui/keyboardShortcuts.js.map +0 -1
  69. package/dist/ui/logFormatter.d.ts +0 -70
  70. package/dist/ui/logFormatter.d.ts.map +0 -1
  71. package/dist/ui/logFormatter.js +0 -323
  72. package/dist/ui/logFormatter.js.map +0 -1
  73. package/dist/ui/outputSummarizer.d.ts +0 -52
  74. package/dist/ui/outputSummarizer.d.ts.map +0 -1
  75. package/dist/ui/outputSummarizer.js +0 -242
  76. package/dist/ui/outputSummarizer.js.map +0 -1
  77. package/dist/ui/progressBar.d.ts +0 -51
  78. package/dist/ui/progressBar.d.ts.map +0 -1
  79. package/dist/ui/progressBar.js +0 -153
  80. package/dist/ui/progressBar.js.map +0 -1
  81. package/dist/ui/progressIndicator.d.ts +0 -69
  82. package/dist/ui/progressIndicator.d.ts.map +0 -1
  83. package/dist/ui/progressIndicator.js +0 -145
  84. package/dist/ui/progressIndicator.js.map +0 -1
  85. package/dist/ui/streamingIndicators.d.ts +0 -42
  86. package/dist/ui/streamingIndicators.d.ts.map +0 -1
  87. package/dist/ui/streamingIndicators.js +0 -155
  88. package/dist/ui/streamingIndicators.js.map +0 -1
  89. package/dist/ui/tableFormatter.d.ts +0 -31
  90. package/dist/ui/tableFormatter.d.ts.map +0 -1
  91. package/dist/ui/tableFormatter.js +0 -186
  92. package/dist/ui/tableFormatter.js.map +0 -1
  93. package/dist/ui/thinkingTracker.d.ts +0 -51
  94. package/dist/ui/thinkingTracker.d.ts.map +0 -1
  95. package/dist/ui/thinkingTracker.js +0 -115
  96. package/dist/ui/thinkingTracker.js.map +0 -1
  97. package/dist/ui/toolDisplayAdapter.d.ts +0 -66
  98. package/dist/ui/toolDisplayAdapter.d.ts.map +0 -1
  99. package/dist/ui/toolDisplayAdapter.js +0 -356
  100. package/dist/ui/toolDisplayAdapter.js.map +0 -1
  101. package/dist/ui/treeVisualizer.d.ts +0 -56
  102. package/dist/ui/treeVisualizer.d.ts.map +0 -1
  103. package/dist/ui/treeVisualizer.js +0 -247
  104. package/dist/ui/treeVisualizer.js.map +0 -1
@@ -1,242 +0,0 @@
1
- /**
2
- * Output Summarizer - Claude Code style
3
- * Intelligently summarizes and truncates tool output
4
- */
5
- import { theme } from './theme.js';
6
- export class OutputSummarizer {
7
- /**
8
- * Summarize output intelligently based on content type
9
- */
10
- summarize(output, maxLines = 10) {
11
- const lines = output.split('\n');
12
- const contentType = this.detectContentType(output);
13
- const lineCount = lines.length;
14
- const truncated = lineCount > maxLines;
15
- let preview;
16
- let summary;
17
- switch (contentType) {
18
- case 'json':
19
- ({ preview, summary } = this.summarizeJson(output, maxLines));
20
- break;
21
- case 'diff':
22
- ({ preview, summary } = this.summarizeDiff(output, maxLines));
23
- break;
24
- case 'log':
25
- ({ preview, summary } = this.summarizeLog(output, maxLines));
26
- break;
27
- case 'error':
28
- ({ preview, summary } = this.summarizeError(output, maxLines));
29
- break;
30
- case 'code':
31
- ({ preview, summary } = this.summarizeCode(output, maxLines));
32
- break;
33
- default:
34
- ({ preview, summary } = this.summarizeText(output, maxLines));
35
- }
36
- return {
37
- preview,
38
- fullContent: output,
39
- summary,
40
- lineCount,
41
- truncated,
42
- contentType,
43
- };
44
- }
45
- /**
46
- * Detect content type from output
47
- */
48
- detectContentType(output) {
49
- const trimmed = output.trim();
50
- // JSON
51
- if ((trimmed.startsWith('{') && trimmed.endsWith('}')) ||
52
- (trimmed.startsWith('[') && trimmed.endsWith(']'))) {
53
- try {
54
- JSON.parse(trimmed);
55
- return 'json';
56
- }
57
- catch {
58
- // Not valid JSON
59
- }
60
- }
61
- // Diff
62
- if (output.includes('@@') || output.includes('diff --git') ||
63
- output.match(/^[+-]{3}/m)) {
64
- return 'diff';
65
- }
66
- // Error
67
- if (output.match(/error|exception|failed|fatal/i) &&
68
- output.match(/at .+:\d+/)) {
69
- return 'error';
70
- }
71
- // Log
72
- if (output.match(/\d{4}-\d{2}-\d{2}|\d{2}:\d{2}:\d{2}|INFO|WARN|ERROR|DEBUG/)) {
73
- return 'log';
74
- }
75
- // Code (contains common patterns)
76
- if (output.match(/function|class|import|export|const|let|var|def|public|private/)) {
77
- return 'code';
78
- }
79
- return 'text';
80
- }
81
- /**
82
- * Summarize JSON output
83
- */
84
- summarizeJson(output, maxLines) {
85
- try {
86
- const parsed = JSON.parse(output);
87
- const formatted = JSON.stringify(parsed, null, 2);
88
- const lines = formatted.split('\n');
89
- if (lines.length <= maxLines) {
90
- return {
91
- preview: this.highlightJson(formatted),
92
- summary: `JSON object with ${Object.keys(parsed).length} keys`,
93
- };
94
- }
95
- const preview = lines.slice(0, maxLines).join('\n');
96
- const remaining = lines.length - maxLines;
97
- return {
98
- preview: `${this.highlightJson(preview)}\n${theme.ui.muted(` … +${remaining} lines (ctrl+o to expand)`)}`,
99
- summary: `JSON object (${lines.length} lines)`,
100
- };
101
- }
102
- catch {
103
- return this.summarizeText(output, maxLines);
104
- }
105
- }
106
- /**
107
- * Highlight JSON syntax
108
- */
109
- highlightJson(json) {
110
- return json
111
- .split('\n')
112
- .map(line => {
113
- // Keys
114
- line = line.replace(/"([^"]+)":/g, (_, key) => `${theme.info(`"${key}"`)}: `);
115
- // String values
116
- line = line.replace(/: "([^"]*)"/g, (_, value) => `: ${theme.success(`"${value}"`)}`);
117
- // Numbers
118
- line = line.replace(/: (\d+\.?\d*)/g, (_, num) => `: ${theme.warning(num)}`);
119
- // Booleans/null
120
- line = line.replace(/: (true|false|null)/g, (_, bool) => `: ${theme.secondary(bool)}`);
121
- return ` ${line}`;
122
- })
123
- .join('\n');
124
- }
125
- /**
126
- * Summarize diff output
127
- */
128
- summarizeDiff(output, maxLines) {
129
- const lines = output.split('\n');
130
- const additions = lines.filter(l => l.startsWith('+')).length;
131
- const deletions = lines.filter(l => l.startsWith('-')).length;
132
- const preview = lines.slice(0, maxLines)
133
- .map(line => {
134
- if (line.startsWith('+') && !line.startsWith('+++')) {
135
- return theme.success(` ${line}`);
136
- }
137
- else if (line.startsWith('-') && !line.startsWith('---')) {
138
- return theme.error(` ${line}`);
139
- }
140
- else if (line.startsWith('@@')) {
141
- return theme.info(` ${line}`);
142
- }
143
- return theme.ui.muted(` ${line}`);
144
- })
145
- .join('\n');
146
- const remaining = lines.length - maxLines;
147
- const fullPreview = remaining > 0
148
- ? `${preview}\n${theme.ui.muted(` … +${remaining} lines (ctrl+o to expand)`)}`
149
- : preview;
150
- return {
151
- preview: fullPreview,
152
- summary: `${additions} additions, ${deletions} deletions`,
153
- };
154
- }
155
- /**
156
- * Summarize log output
157
- */
158
- summarizeLog(output, maxLines) {
159
- const lines = output.split('\n').filter(l => l.trim());
160
- const errors = lines.filter(l => /error|fatal/i.test(l)).length;
161
- const warnings = lines.filter(l => /warn/i.test(l)).length;
162
- const preview = lines.slice(0, maxLines)
163
- .map(line => {
164
- if (/error|fatal/i.test(line)) {
165
- return theme.error(` ${line}`);
166
- }
167
- else if (/warn/i.test(line)) {
168
- return theme.warning(` ${line}`);
169
- }
170
- return theme.ui.muted(` ${line}`);
171
- })
172
- .join('\n');
173
- const remaining = lines.length - maxLines;
174
- const fullPreview = remaining > 0
175
- ? `${preview}\n${theme.ui.muted(` … +${remaining} lines (ctrl+o to expand)`)}`
176
- : preview;
177
- const parts = [];
178
- if (errors > 0)
179
- parts.push(`${errors} error${errors > 1 ? 's' : ''}`);
180
- if (warnings > 0)
181
- parts.push(`${warnings} warning${warnings > 1 ? 's' : ''}`);
182
- return {
183
- preview: fullPreview,
184
- summary: parts.length > 0 ? parts.join(', ') : `${lines.length} log lines`,
185
- };
186
- }
187
- /**
188
- * Summarize error output
189
- */
190
- summarizeError(output, maxLines) {
191
- const lines = output.split('\n');
192
- const errorLine = lines.find(l => /error|exception/i.test(l)) || lines[0];
193
- const preview = lines.slice(0, maxLines)
194
- .map(line => theme.error(` ${line}`))
195
- .join('\n');
196
- const remaining = lines.length - maxLines;
197
- const fullPreview = remaining > 0
198
- ? `${preview}\n${theme.ui.muted(` … +${remaining} lines (ctrl+o to expand)`)}`
199
- : preview;
200
- return {
201
- preview: fullPreview,
202
- summary: errorLine || 'Error occurred',
203
- };
204
- }
205
- /**
206
- * Summarize code output
207
- */
208
- summarizeCode(output, maxLines) {
209
- const lines = output.split('\n').filter(l => l.trim());
210
- const preview = lines.slice(0, maxLines)
211
- .map(line => ` ${line}`)
212
- .join('\n');
213
- const remaining = lines.length - maxLines;
214
- const fullPreview = remaining > 0
215
- ? `${preview}\n${theme.ui.muted(` … +${remaining} lines (ctrl+o to expand)`)}`
216
- : preview;
217
- return {
218
- preview: fullPreview,
219
- summary: `${lines.length} lines of code`,
220
- };
221
- }
222
- /**
223
- * Summarize plain text output
224
- */
225
- summarizeText(output, maxLines) {
226
- const lines = output.split('\n').filter(l => l.trim());
227
- const preview = lines.slice(0, maxLines)
228
- .map(line => ` ${line}`)
229
- .join('\n');
230
- const remaining = lines.length - maxLines;
231
- const fullPreview = remaining > 0
232
- ? `${preview}\n${theme.ui.muted(` … +${remaining} lines (ctrl+o to expand)`)}`
233
- : preview;
234
- return {
235
- preview: fullPreview,
236
- summary: `${lines.length} lines`,
237
- };
238
- }
239
- }
240
- // Singleton instance
241
- export const outputSummarizer = new OutputSummarizer();
242
- //# sourceMappingURL=outputSummarizer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"outputSummarizer.js","sourceRoot":"","sources":["../../src/ui/outputSummarizer.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- /**
2
- * Progress Bar - Claude Code style
3
- * Visual progress indicators for long operations
4
- */
5
- export interface ProgressBarOptions {
6
- width?: number;
7
- showPercentage?: boolean;
8
- showLabel?: boolean;
9
- style?: 'bar' | 'blocks' | 'dots';
10
- }
11
- /**
12
- * Create a progress bar (Claude Code style)
13
- *
14
- * @param current Current value
15
- * @param total Total value
16
- * @param options Formatting options
17
- * @returns Formatted progress bar string
18
- */
19
- export declare function formatProgressBar(current: number, total: number, options?: ProgressBarOptions): string;
20
- /**
21
- * Create a compact progress indicator
22
- * Example: [████████░░] 80%
23
- */
24
- export declare function formatCompactProgress(current: number, total: number): string;
25
- export declare function formatSpinner(frameIndex?: number, label?: string): string;
26
- /**
27
- * Multi-step progress indicator
28
- * Example:
29
- * ✓ Step 1 complete
30
- * ◐ Step 2 in progress...
31
- * ○ Step 3 pending
32
- */
33
- export interface ProgressStep {
34
- label: string;
35
- status: 'completed' | 'in_progress' | 'pending' | 'error';
36
- details?: string;
37
- }
38
- export declare function formatSteppedProgress(steps: ProgressStep[]): string;
39
- /**
40
- * Percentage-based visual indicator
41
- */
42
- export declare function formatPercentageIndicator(percentage: number, label?: string): string;
43
- /**
44
- * File download/upload progress
45
- */
46
- export declare function formatTransferProgress(bytesTransferred: number, totalBytes: number, rateBytesPerSecond?: number): string;
47
- /**
48
- * Time remaining estimate
49
- */
50
- export declare function formatTimeRemaining(seconds: number): string;
51
- //# sourceMappingURL=progressBar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"progressBar.d.ts","sourceRoot":"","sources":["../../src/ui/progressBar.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CAwBR;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAe5E;AAOD,wBAAgB,aAAa,CAAC,UAAU,GAAE,MAAU,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5E;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,CA0BnE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAoBR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,CASR;AAYD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAY3D"}
@@ -1,153 +0,0 @@
1
- /**
2
- * Progress Bar - Claude Code style
3
- * Visual progress indicators for long operations
4
- */
5
- import { theme } from './theme.js';
6
- /**
7
- * Create a progress bar (Claude Code style)
8
- *
9
- * @param current Current value
10
- * @param total Total value
11
- * @param options Formatting options
12
- * @returns Formatted progress bar string
13
- */
14
- export function formatProgressBar(current, total, options = {}) {
15
- const width = options.width || 30;
16
- const showPercentage = options.showPercentage ?? true;
17
- const style = options.style || 'bar';
18
- const percentage = Math.min(100, Math.max(0, Math.round((current / total) * 100)));
19
- const filled = Math.floor((percentage / 100) * width);
20
- const empty = width - filled;
21
- let bar;
22
- switch (style) {
23
- case 'blocks':
24
- bar = theme.success('█'.repeat(filled)) + theme.ui.muted('░'.repeat(empty));
25
- break;
26
- case 'dots':
27
- bar = theme.success('●'.repeat(filled)) + theme.ui.muted('○'.repeat(empty));
28
- break;
29
- default: // 'bar'
30
- bar = theme.success('━'.repeat(filled)) + theme.ui.muted('─'.repeat(empty));
31
- }
32
- const percentageStr = showPercentage ? ` ${theme.info(`${percentage}%`)}` : '';
33
- return `${bar}${percentageStr}`;
34
- }
35
- /**
36
- * Create a compact progress indicator
37
- * Example: [████████░░] 80%
38
- */
39
- export function formatCompactProgress(current, total) {
40
- const percentage = Math.round((current / total) * 100);
41
- const filled = Math.floor(percentage / 10);
42
- const empty = 10 - filled;
43
- const bar = '█'.repeat(filled) + '░'.repeat(empty);
44
- const coloredBar = percentage >= 75
45
- ? theme.success(bar)
46
- : percentage >= 50
47
- ? theme.info(bar)
48
- : percentage >= 25
49
- ? theme.warning(bar)
50
- : theme.error(bar);
51
- return `[${coloredBar}] ${theme.info(`${percentage}%`)}`;
52
- }
53
- /**
54
- * Spinning indicator for indeterminate progress
55
- */
56
- const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
57
- export function formatSpinner(frameIndex = 0, label) {
58
- const frame = SPINNER_FRAMES[frameIndex % SPINNER_FRAMES.length];
59
- const spinner = theme.info(frame);
60
- return label ? `${spinner} ${label}` : spinner;
61
- }
62
- export function formatSteppedProgress(steps) {
63
- return steps.map(step => {
64
- let icon;
65
- let labelColor;
66
- switch (step.status) {
67
- case 'completed':
68
- icon = theme.success('✓');
69
- labelColor = theme.ui.text;
70
- break;
71
- case 'in_progress':
72
- icon = theme.info('◐');
73
- labelColor = theme.info;
74
- break;
75
- case 'error':
76
- icon = theme.error('✗');
77
- labelColor = theme.error;
78
- break;
79
- default: // 'pending'
80
- icon = theme.ui.muted('○');
81
- labelColor = theme.ui.muted;
82
- }
83
- const details = step.details ? ` ${theme.ui.muted(`(${step.details})`)}` : '';
84
- return ` ${icon} ${labelColor(step.label)}${details}`;
85
- }).join('\n');
86
- }
87
- /**
88
- * Percentage-based visual indicator
89
- */
90
- export function formatPercentageIndicator(percentage, label) {
91
- let color;
92
- let symbol;
93
- if (percentage >= 90) {
94
- color = theme.error;
95
- symbol = '●';
96
- }
97
- else if (percentage >= 70) {
98
- color = theme.warning;
99
- symbol = '◐';
100
- }
101
- else if (percentage >= 50) {
102
- color = theme.info;
103
- symbol = '◑';
104
- }
105
- else {
106
- color = theme.success;
107
- symbol = '○';
108
- }
109
- const indicator = color(`${symbol} ${percentage}%`);
110
- return label ? `${label}: ${indicator}` : indicator;
111
- }
112
- /**
113
- * File download/upload progress
114
- */
115
- export function formatTransferProgress(bytesTransferred, totalBytes, rateBytesPerSecond) {
116
- const percentage = Math.round((bytesTransferred / totalBytes) * 100);
117
- const bar = formatProgressBar(bytesTransferred, totalBytes, { width: 20, showPercentage: false });
118
- const transferred = formatBytes(bytesTransferred);
119
- const total = formatBytes(totalBytes);
120
- const rate = rateBytesPerSecond ? ` ${theme.ui.muted(`@ ${formatBytes(rateBytesPerSecond)}/s`)}` : '';
121
- return `${bar} ${theme.info(`${percentage}%`)} ${theme.ui.muted(`(${transferred} / ${total})`)}${rate}`;
122
- }
123
- /**
124
- * Format bytes as human-readable
125
- */
126
- function formatBytes(bytes) {
127
- if (bytes < 1024)
128
- return `${bytes}B`;
129
- if (bytes < 1024 * 1024)
130
- return `${(bytes / 1024).toFixed(1)}KB`;
131
- if (bytes < 1024 * 1024 * 1024)
132
- return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
133
- return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)}GB`;
134
- }
135
- /**
136
- * Time remaining estimate
137
- */
138
- export function formatTimeRemaining(seconds) {
139
- if (seconds < 60) {
140
- return `${Math.round(seconds)}s remaining`;
141
- }
142
- else if (seconds < 3600) {
143
- const minutes = Math.floor(seconds / 60);
144
- const secs = Math.round(seconds % 60);
145
- return `${minutes}m ${secs}s remaining`;
146
- }
147
- else {
148
- const hours = Math.floor(seconds / 3600);
149
- const minutes = Math.floor((seconds % 3600) / 60);
150
- return `${hours}h ${minutes}m remaining`;
151
- }
152
- }
153
- //# sourceMappingURL=progressBar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"progressBar.js","sourceRoot":"","sources":["../../src/ui/progressBar.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AASnC;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,KAAa,EACb,UAA8B,EAAE;IAEhC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IAClC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IAErC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAE7B,IAAI,GAAW,CAAC;IAChB,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,QAAQ;YACX,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5E,MAAM;QACR,KAAK,MAAM;YACT,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5E,MAAM;QACR,SAAS,QAAQ;YACf,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/E,OAAO,GAAG,GAAG,GAAG,aAAa,EAAE,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,KAAa;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC;IAE1B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,UAAU,IAAI,EAAE;QACjC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QACpB,CAAC,CAAC,UAAU,IAAI,EAAE;YAChB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;YACjB,CAAC,CAAC,UAAU,IAAI,EAAE;gBAChB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBACpB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEzB,OAAO,IAAI,UAAU,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1E,MAAM,UAAU,aAAa,CAAC,aAAqB,CAAC,EAAE,KAAc;IAClE,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACjD,CAAC;AAeD,MAAM,UAAU,qBAAqB,CAAC,KAAqB;IACzD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACtB,IAAI,IAAY,CAAC;QACjB,IAAI,UAAoC,CAAC;QAEzC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,WAAW;gBACd,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC1B,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC;gBAC3B,MAAM;YACR,KAAK,aAAa;gBAChB,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;gBACxB,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxB,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;gBACzB,MAAM;YACR,SAAS,YAAY;gBACnB,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3B,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;QAChC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,OAAO,KAAK,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAkB,EAClB,KAAc;IAEd,IAAI,KAA+B,CAAC;IACpC,IAAI,MAAc,CAAC;IAEnB,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;QACrB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACpB,MAAM,GAAG,GAAG,CAAC;IACf,CAAC;SAAM,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;QAC5B,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;QACtB,MAAM,GAAG,GAAG,CAAC;IACf,CAAC;SAAM,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;QAC5B,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QACnB,MAAM,GAAG,GAAG,CAAC;IACf,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;QACtB,MAAM,GAAG,GAAG,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,MAAM,IAAI,UAAU,GAAG,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,gBAAwB,EACxB,UAAkB,EAClB,kBAA2B;IAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IAElG,MAAM,WAAW,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtG,OAAO,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,WAAW,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;AAC1G,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,GAAG,CAAC;IACrC,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACjF,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;QACjB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;IAC7C,CAAC;SAAM,IAAI,OAAO,GAAG,IAAI,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACtC,OAAO,GAAG,OAAO,KAAK,IAAI,aAAa,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAClD,OAAO,GAAG,KAAK,KAAK,OAAO,aAAa,CAAC;IAC3C,CAAC;AACH,CAAC"}
@@ -1,69 +0,0 @@
1
- /**
2
- * Progress Indicator - Claude Code style
3
- * Shows progress bars and elapsed time for long operations
4
- */
5
- export interface ProgressState {
6
- current: number;
7
- total: number;
8
- startTime: number;
9
- message?: string;
10
- }
11
- export declare class ProgressIndicator {
12
- private state;
13
- /**
14
- * Start tracking progress
15
- */
16
- start(total: number, message?: string): void;
17
- /**
18
- * Update progress
19
- */
20
- update(current: number, message?: string): void;
21
- /**
22
- * Increment progress by 1
23
- */
24
- increment(message?: string): void;
25
- /**
26
- * Complete and clear progress
27
- */
28
- complete(): void;
29
- /**
30
- * Get elapsed time in milliseconds
31
- */
32
- getElapsed(): number;
33
- /**
34
- * Get progress percentage (0-100)
35
- */
36
- getPercentage(): number;
37
- /**
38
- * Format progress bar (Claude Code style)
39
- * Example: [████████████░░░░░░░░] 60% complete
40
- */
41
- formatProgressBar(width?: number): string;
42
- /**
43
- * Format elapsed time
44
- */
45
- formatElapsed(): string;
46
- /**
47
- * Format full progress display with message
48
- */
49
- format(): string;
50
- /**
51
- * Check if progress is active
52
- */
53
- isActive(): boolean;
54
- /**
55
- * Get current state
56
- */
57
- getState(): ProgressState | null;
58
- }
59
- /**
60
- * Create a simple spinner animation
61
- */
62
- export declare function createSpinnerFrames(): string[];
63
- /**
64
- * Format operation timing (Claude Code style)
65
- * Example: "45s elapsed"
66
- */
67
- export declare function formatOperationTiming(startTime: number): string;
68
- export declare const progressIndicator: ProgressIndicator;
69
- //# sourceMappingURL=progressIndicator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"progressIndicator.d.ts","sourceRoot":"","sources":["../../src/ui/progressIndicator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAA8B;IAE3C;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAS5C;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAS/C;;OAEG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAMjC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,UAAU,IAAI,MAAM;IAKpB;;OAEG;IACH,aAAa,IAAI,MAAM;IAKvB;;;OAGG;IACH,iBAAiB,CAAC,KAAK,GAAE,MAAW,GAAG,MAAM;IAc7C;;OAEG;IACH,aAAa,IAAI,MAAM;IAavB;;OAEG;IACH,MAAM,IAAI,MAAM;IAqBhB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,QAAQ,IAAI,aAAa,GAAG,IAAI;CAGjC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAe/D;AAGD,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}