erosolar-cli 1.7.363 → 1.7.364
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.
- package/dist/shell/interactiveShell.d.ts +2 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +32 -13
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/terminalInput.d.ts +32 -19
- package/dist/shell/terminalInput.d.ts.map +1 -1
- package/dist/shell/terminalInput.js +187 -227
- package/dist/shell/terminalInput.js.map +1 -1
- package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
- package/dist/shell/terminalInputAdapter.js +5 -2
- package/dist/shell/terminalInputAdapter.js.map +1 -1
- package/dist/subagents/taskRunner.d.ts.map +1 -1
- package/dist/subagents/taskRunner.js +7 -25
- package/dist/subagents/taskRunner.js.map +1 -1
- package/dist/tools/learnTools.js +127 -4
- package/dist/tools/learnTools.js.map +1 -1
- package/dist/ui/ShellUIAdapter.d.ts +27 -0
- package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
- package/dist/ui/ShellUIAdapter.js +175 -9
- package/dist/ui/ShellUIAdapter.js.map +1 -1
- package/dist/ui/compactRenderer.d.ts +139 -0
- package/dist/ui/compactRenderer.d.ts.map +1 -0
- package/dist/ui/compactRenderer.js +398 -0
- package/dist/ui/compactRenderer.js.map +1 -0
- package/dist/ui/inPlaceUpdater.d.ts +181 -0
- package/dist/ui/inPlaceUpdater.d.ts.map +1 -0
- package/dist/ui/inPlaceUpdater.js +515 -0
- package/dist/ui/inPlaceUpdater.js.map +1 -0
- package/dist/ui/theme.d.ts +108 -3
- package/dist/ui/theme.d.ts.map +1 -1
- package/dist/ui/theme.js +124 -3
- package/dist/ui/theme.js.map +1 -1
- package/dist/ui/toolDisplay.d.ts +44 -7
- package/dist/ui/toolDisplay.d.ts.map +1 -1
- package/dist/ui/toolDisplay.js +163 -32
- package/dist/ui/toolDisplay.js.map +1 -1
- package/dist/ui/unified/index.d.ts +11 -0
- package/dist/ui/unified/index.d.ts.map +1 -1
- package/dist/ui/unified/index.js +16 -0
- package/dist/ui/unified/index.js.map +1 -1
- package/dist/ui/unified/layout.d.ts.map +1 -1
- package/dist/ui/unified/layout.js +32 -47
- package/dist/ui/unified/layout.js.map +1 -1
- package/package.json +1 -1
package/dist/ui/theme.js
CHANGED
|
@@ -64,6 +64,62 @@ export const theme = {
|
|
|
64
64
|
border: chalk.hex('#0E7490'), // Darker cyan for borders
|
|
65
65
|
label: chalk.hex('#22D3EE').bold, // Bright cyan for "Thinking" label
|
|
66
66
|
},
|
|
67
|
+
// Badge styles for compact status indicators
|
|
68
|
+
badge: {
|
|
69
|
+
success: chalk.bgHex('#10B981').hex('#000000'), // Green bg, dark text
|
|
70
|
+
error: chalk.bgHex('#EF4444').hex('#FFFFFF'), // Red bg, white text
|
|
71
|
+
warning: chalk.bgHex('#F59E0B').hex('#000000'), // Amber bg, dark text
|
|
72
|
+
info: chalk.bgHex('#3B82F6').hex('#FFFFFF'), // Blue bg, white text
|
|
73
|
+
muted: chalk.bgHex('#4B5563').hex('#F3F4F6'), // Gray bg, light text
|
|
74
|
+
primary: chalk.bgHex('#6366F1').hex('#FFFFFF'), // Indigo bg, white text
|
|
75
|
+
accent: chalk.bgHex('#EC4899').hex('#FFFFFF'), // Pink bg, white text
|
|
76
|
+
cached: chalk.bgHex('#8B5CF6').hex('#FFFFFF'), // Purple bg, white text
|
|
77
|
+
},
|
|
78
|
+
// Inline badge styles (lighter, no background)
|
|
79
|
+
inlineBadge: {
|
|
80
|
+
success: chalk.hex('#34D399'), // Light green
|
|
81
|
+
error: chalk.hex('#F87171'), // Light red
|
|
82
|
+
warning: chalk.hex('#FBBF24'), // Light amber
|
|
83
|
+
info: chalk.hex('#60A5FA'), // Light blue
|
|
84
|
+
muted: chalk.hex('#9CA3AF'), // Gray
|
|
85
|
+
primary: chalk.hex('#818CF8'), // Light indigo
|
|
86
|
+
accent: chalk.hex('#F472B6'), // Light pink
|
|
87
|
+
},
|
|
88
|
+
// Progress indicators
|
|
89
|
+
progress: {
|
|
90
|
+
bar: chalk.hex('#6366F1'), // Progress bar fill
|
|
91
|
+
empty: chalk.hex('#374151'), // Progress bar empty
|
|
92
|
+
text: chalk.hex('#D1D5DB'), // Progress text
|
|
93
|
+
percentage: chalk.hex('#F59E0B'), // Percentage number
|
|
94
|
+
},
|
|
95
|
+
// Status line styles
|
|
96
|
+
status: {
|
|
97
|
+
active: chalk.hex('#10B981'), // Active/running status
|
|
98
|
+
pending: chalk.hex('#6B7280'), // Pending/waiting status
|
|
99
|
+
completed: chalk.hex('#9CA3AF'), // Completed status
|
|
100
|
+
separator: chalk.hex('#4B5563'), // Status separator
|
|
101
|
+
},
|
|
102
|
+
// File operation styles
|
|
103
|
+
file: {
|
|
104
|
+
path: chalk.hex('#38BDF8'), // File paths
|
|
105
|
+
additions: chalk.hex('#10B981'), // +X additions
|
|
106
|
+
removals: chalk.hex('#EF4444'), // -X removals
|
|
107
|
+
unchanged: chalk.hex('#6B7280'), // Unchanged indicator
|
|
108
|
+
},
|
|
109
|
+
// Search result styles
|
|
110
|
+
search: {
|
|
111
|
+
match: chalk.hex('#FCD34D').bold, // Matching text highlight
|
|
112
|
+
context: chalk.hex('#9CA3AF'), // Context lines
|
|
113
|
+
lineNum: chalk.hex('#6B7280'), // Line numbers
|
|
114
|
+
filename: chalk.hex('#38BDF8'), // File names in results
|
|
115
|
+
},
|
|
116
|
+
// Agent/task styles
|
|
117
|
+
agent: {
|
|
118
|
+
name: chalk.hex('#EC4899'), // Agent name
|
|
119
|
+
task: chalk.hex('#8B5CF6'), // Task description
|
|
120
|
+
result: chalk.hex('#10B981'), // Task result
|
|
121
|
+
duration: chalk.hex('#F59E0B'), // Task duration
|
|
122
|
+
},
|
|
67
123
|
user: chalk.hex('#3B82F6'),
|
|
68
124
|
assistant: chalk.hex('#8B5CF6'),
|
|
69
125
|
system: chalk.hex('#6B7280'),
|
|
@@ -78,20 +134,85 @@ export const theme = {
|
|
|
78
134
|
* - > (user prompt): User input prefix (used in formatUserPrompt)
|
|
79
135
|
*/
|
|
80
136
|
export const icons = {
|
|
137
|
+
// Status indicators
|
|
81
138
|
success: '✓',
|
|
82
139
|
error: '✗',
|
|
83
140
|
warning: '⚠',
|
|
84
141
|
info: 'ℹ',
|
|
142
|
+
pending: '○',
|
|
143
|
+
running: '◐',
|
|
144
|
+
cached: '⚡',
|
|
145
|
+
// Navigation & flow
|
|
85
146
|
arrow: '→',
|
|
147
|
+
arrowRight: '▸',
|
|
148
|
+
arrowDown: '▾',
|
|
86
149
|
bullet: '•',
|
|
150
|
+
dot: '·',
|
|
151
|
+
// Tool indicators
|
|
87
152
|
thinking: '◐',
|
|
88
153
|
tool: '⚙',
|
|
89
|
-
user: '❯',
|
|
90
|
-
assistant: '◆',
|
|
91
|
-
loading: '⣾',
|
|
92
154
|
action: '⏺', // Claude Code: tool actions and thoughts
|
|
93
155
|
subaction: '⎿', // Claude Code: results and details
|
|
156
|
+
// User/assistant
|
|
157
|
+
user: '❯',
|
|
158
|
+
assistant: '◆',
|
|
94
159
|
sparkle: '✨', // Erosolar branding
|
|
160
|
+
// Progress & loading
|
|
161
|
+
loading: '⣾',
|
|
162
|
+
spinner: ['◐', '◓', '◑', '◒'],
|
|
163
|
+
progress: ['░', '▒', '▓', '█'],
|
|
164
|
+
// File operations
|
|
165
|
+
file: '📄',
|
|
166
|
+
folder: '📁',
|
|
167
|
+
edit: '✏️',
|
|
168
|
+
read: '📖',
|
|
169
|
+
write: '💾',
|
|
170
|
+
delete: '🗑️',
|
|
171
|
+
// Search & find
|
|
172
|
+
search: '🔍',
|
|
173
|
+
match: '◉',
|
|
174
|
+
noMatch: '○',
|
|
175
|
+
// Grouping & hierarchy
|
|
176
|
+
branch: '│',
|
|
177
|
+
corner: '└',
|
|
178
|
+
tee: '├',
|
|
179
|
+
horizontal: '─',
|
|
180
|
+
// Context & metrics
|
|
181
|
+
context: '⊛',
|
|
182
|
+
time: '⏱',
|
|
183
|
+
memory: '◈',
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Spinner animation frames (braille dots style)
|
|
187
|
+
*/
|
|
188
|
+
export const spinnerFrames = {
|
|
189
|
+
dots: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'],
|
|
190
|
+
arc: ['◜', '◠', '◝', '◞', '◡', '◟'],
|
|
191
|
+
circle: ['◐', '◓', '◑', '◒'],
|
|
192
|
+
bounce: ['⠁', '⠂', '⠄', '⡀', '⢀', '⠠', '⠐', '⠈'],
|
|
193
|
+
braille: ['⣾', '⣽', '⣻', '⢿', '⡿', '⣟', '⣯', '⣷'],
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Progress bar characters
|
|
197
|
+
*/
|
|
198
|
+
export const progressChars = {
|
|
199
|
+
filled: '█',
|
|
200
|
+
empty: '░',
|
|
201
|
+
partial: ['▏', '▎', '▍', '▌', '▋', '▊', '▉'],
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Box drawing characters for panels
|
|
205
|
+
*/
|
|
206
|
+
export const boxChars = {
|
|
207
|
+
topLeft: '╭',
|
|
208
|
+
topRight: '╮',
|
|
209
|
+
bottomLeft: '╰',
|
|
210
|
+
bottomRight: '╯',
|
|
211
|
+
horizontal: '─',
|
|
212
|
+
vertical: '│',
|
|
213
|
+
teeRight: '├',
|
|
214
|
+
teeLeft: '┤',
|
|
215
|
+
cross: '┼',
|
|
95
216
|
};
|
|
96
217
|
export function formatBanner(profileLabel, model) {
|
|
97
218
|
const name = profileLabel || 'Agent';
|
package/dist/ui/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/ui/theme.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/toolDisplay.d.ts
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* - Result summaries with status indicators
|
|
7
7
|
* - Expandable content with previews
|
|
8
8
|
* - Diff formatting with colors
|
|
9
|
+
* - Advanced progress indicators
|
|
10
|
+
* - Compact same-line displays
|
|
9
11
|
*/
|
|
10
12
|
export interface ToolCallDisplay {
|
|
11
13
|
name: string;
|
|
@@ -136,14 +138,7 @@ export interface ToolResultSummaryInput {
|
|
|
136
138
|
output: string;
|
|
137
139
|
success: boolean;
|
|
138
140
|
durationMs?: number;
|
|
139
|
-
/** Force compact single-line output */
|
|
140
|
-
compact?: boolean;
|
|
141
141
|
}
|
|
142
|
-
/**
|
|
143
|
-
* Compact display mode for tool results
|
|
144
|
-
* When true, all results are formatted as single lines
|
|
145
|
-
*/
|
|
146
|
-
export type DisplayMode = 'compact' | 'normal' | 'expanded';
|
|
147
142
|
/**
|
|
148
143
|
* Format a tool result summary for display in the terminal.
|
|
149
144
|
* This is the central function for displaying ALL tool results.
|
|
@@ -155,4 +150,46 @@ export type DisplayMode = 'compact' | 'normal' | 'expanded';
|
|
|
155
150
|
* @returns Formatted string to display, or null if no display needed
|
|
156
151
|
*/
|
|
157
152
|
export declare function formatToolResultSummary(input: ToolResultSummaryInput): string | null;
|
|
153
|
+
/**
|
|
154
|
+
* Format a compact progress bar
|
|
155
|
+
*/
|
|
156
|
+
export declare function formatCompactProgressBar(current: number, total: number, options?: {
|
|
157
|
+
width?: number;
|
|
158
|
+
style?: 'bar' | 'braille' | 'dots';
|
|
159
|
+
}): string;
|
|
160
|
+
/**
|
|
161
|
+
* Format a micro progress indicator (fits in status line)
|
|
162
|
+
*/
|
|
163
|
+
export declare function formatMicroProgress(current: number, total: number): string;
|
|
164
|
+
/**
|
|
165
|
+
* Format a spinner with elapsed time
|
|
166
|
+
*/
|
|
167
|
+
export declare function formatSpinnerWithTime(frame: string, label: string, elapsedMs: number): string;
|
|
168
|
+
/**
|
|
169
|
+
* Format multiple tool operations on a single line
|
|
170
|
+
*/
|
|
171
|
+
export declare function formatCompactToolLine(operations: Array<{
|
|
172
|
+
name: string;
|
|
173
|
+
status: 'success' | 'error' | 'running';
|
|
174
|
+
summary?: string;
|
|
175
|
+
}>, options?: {
|
|
176
|
+
separator?: string;
|
|
177
|
+
maxWidth?: number;
|
|
178
|
+
}): string;
|
|
179
|
+
/**
|
|
180
|
+
* Format a file operation summary with additions/removals
|
|
181
|
+
*/
|
|
182
|
+
export declare function formatFileOpSummary(path: string, type: 'read' | 'edit' | 'write', stats?: {
|
|
183
|
+
lines?: number;
|
|
184
|
+
additions?: number;
|
|
185
|
+
removals?: number;
|
|
186
|
+
}): string;
|
|
187
|
+
/**
|
|
188
|
+
* Format a search result summary
|
|
189
|
+
*/
|
|
190
|
+
export declare function formatSearchOpSummary(pattern: string, matchCount: number, fileCount?: number, durationMs?: number): string;
|
|
191
|
+
/**
|
|
192
|
+
* Format a context usage badge
|
|
193
|
+
*/
|
|
194
|
+
export declare function formatContextBadge(usedPercentage: number): string;
|
|
158
195
|
//# sourceMappingURL=toolDisplay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDisplay.d.ts","sourceRoot":"","sources":["../../src/ui/toolDisplay.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"toolDisplay.d.ts","sourceRoot":"","sources":["../../src/ui/toolDisplay.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/toolDisplay.js
CHANGED
|
@@ -6,9 +6,11 @@
|
|
|
6
6
|
* - Result summaries with status indicators
|
|
7
7
|
* - Expandable content with previews
|
|
8
8
|
* - Diff formatting with colors
|
|
9
|
+
* - Advanced progress indicators
|
|
10
|
+
* - Compact same-line displays
|
|
9
11
|
*/
|
|
10
12
|
import { formatPlan, normalizePlanItems, resolvePlanWidth, wrapPlanText } from '../utils/planFormatter.js';
|
|
11
|
-
import { theme } from './theme.js';
|
|
13
|
+
import { theme, icons, progressChars } from './theme.js';
|
|
12
14
|
/**
|
|
13
15
|
* Format tool call display (Claude Code style)
|
|
14
16
|
*
|
|
@@ -433,7 +435,7 @@ export function formatKeyValue(key, value) {
|
|
|
433
435
|
* @returns Formatted string to display, or null if no display needed
|
|
434
436
|
*/
|
|
435
437
|
export function formatToolResultSummary(input) {
|
|
436
|
-
const { toolName, args, output, success, durationMs
|
|
438
|
+
const { toolName, args, output, success, durationMs } = input;
|
|
437
439
|
// Determine tool category and format accordingly
|
|
438
440
|
switch (toolName) {
|
|
439
441
|
// === FILE OPERATIONS ===
|
|
@@ -447,7 +449,7 @@ export function formatToolResultSummary(input) {
|
|
|
447
449
|
case 'execute_bash':
|
|
448
450
|
case 'execute_bash_stream':
|
|
449
451
|
case 'execute_command':
|
|
450
|
-
return formatBashResult(args, output, success, durationMs
|
|
452
|
+
return formatBashResult(args, output, success, durationMs);
|
|
451
453
|
// === BACKGROUND BASH ===
|
|
452
454
|
case 'BashOutput':
|
|
453
455
|
return formatBashOutputResult(args, output, success);
|
|
@@ -463,11 +465,11 @@ export function formatToolResultSummary(input) {
|
|
|
463
465
|
case 'grep_search':
|
|
464
466
|
case 'search_text':
|
|
465
467
|
case 'search_files':
|
|
466
|
-
return formatGrepResult(args, output, success
|
|
468
|
+
return formatGrepResult(args, output, success);
|
|
467
469
|
case 'Glob':
|
|
468
470
|
case 'glob':
|
|
469
471
|
case 'list_files':
|
|
470
|
-
return formatGlobResult(args, output, success
|
|
472
|
+
return formatGlobResult(args, output, success);
|
|
471
473
|
case 'find_definition':
|
|
472
474
|
return formatFindDefinitionResult(args, output, success);
|
|
473
475
|
// === WEB OPERATIONS ===
|
|
@@ -582,23 +584,14 @@ export function formatToolResultSummary(input) {
|
|
|
582
584
|
* Format Bash command result
|
|
583
585
|
* Shows: command executed, exit status, and output preview
|
|
584
586
|
*/
|
|
585
|
-
function formatBashResult(args, output, success, durationMs
|
|
587
|
+
function formatBashResult(args, output, success, durationMs) {
|
|
586
588
|
const command = args['command'] || '';
|
|
587
589
|
const description = args['description'];
|
|
588
|
-
const statusIcon = success ? theme.success('✓') : theme.error('✗');
|
|
589
|
-
const durationStr = durationMs ? ` ${theme.ui.muted(`(${formatDuration(durationMs)})`)}` : '';
|
|
590
|
-
// Compact mode: single line with essential info
|
|
591
|
-
if (compact) {
|
|
592
|
-
const cmdShort = truncateCommand(command, 40);
|
|
593
|
-
const outputLines = output.trim().split('\n').length;
|
|
594
|
-
const outputInfo = output.trim() ? theme.ui.muted(`→ ${outputLines}L`) : '';
|
|
595
|
-
if (description) {
|
|
596
|
-
return `${statusIcon} ${description}${durationStr} ${outputInfo}`;
|
|
597
|
-
}
|
|
598
|
-
return `${statusIcon} ${theme.ui.muted('$')} ${cmdShort}${durationStr} ${outputInfo}`;
|
|
599
|
-
}
|
|
600
590
|
const lines = [];
|
|
591
|
+
// Header with command
|
|
592
|
+
const statusIcon = success ? theme.success('✓') : theme.error('✗');
|
|
601
593
|
const cmdDisplay = truncateCommand(command, 50);
|
|
594
|
+
const durationStr = durationMs ? ` ${theme.ui.muted(`(${formatDuration(durationMs)})`)}` : '';
|
|
602
595
|
if (description) {
|
|
603
596
|
lines.push(`${statusIcon} ${description}${durationStr}`);
|
|
604
597
|
lines.push(` ${theme.ui.muted('$')} ${theme.dim(cmdDisplay)}`);
|
|
@@ -640,20 +633,17 @@ function formatReadResult(args, output, success) {
|
|
|
640
633
|
* Format Grep search result
|
|
641
634
|
* Shows: pattern, matches found, and file list preview
|
|
642
635
|
*/
|
|
643
|
-
function formatGrepResult(args, output, success
|
|
636
|
+
function formatGrepResult(args, output, success) {
|
|
644
637
|
const pattern = args['pattern'] || '';
|
|
645
638
|
const patternDisplay = pattern.length > 30 ? `${pattern.slice(0, 27)}...` : pattern;
|
|
639
|
+
const lines = [];
|
|
646
640
|
if (!success || !output.trim()) {
|
|
647
|
-
|
|
641
|
+
lines.push(`${theme.warning('○')} No matches for "${patternDisplay}"`);
|
|
642
|
+
return lines.join('\n');
|
|
648
643
|
}
|
|
649
644
|
// Count matches/files
|
|
650
645
|
const outputLines = output.trim().split('\n').filter(l => l.trim());
|
|
651
646
|
const matchCount = outputLines.length;
|
|
652
|
-
// Compact mode: single line
|
|
653
|
-
if (compact) {
|
|
654
|
-
return `${theme.success('✓')} grep "${patternDisplay}" ${theme.ui.muted(`→ ${matchCount}`)}`;
|
|
655
|
-
}
|
|
656
|
-
const lines = [];
|
|
657
647
|
lines.push(`${theme.success('✓')} Found ${theme.info(String(matchCount))} match${matchCount === 1 ? '' : 'es'} for "${patternDisplay}"`);
|
|
658
648
|
// Show first few matches
|
|
659
649
|
const maxPreview = 3;
|
|
@@ -671,18 +661,15 @@ function formatGrepResult(args, output, success, compact) {
|
|
|
671
661
|
* Format Glob file search result
|
|
672
662
|
* Shows: pattern and files found
|
|
673
663
|
*/
|
|
674
|
-
function formatGlobResult(args, output, success
|
|
664
|
+
function formatGlobResult(args, output, success) {
|
|
675
665
|
const pattern = args['pattern'] || '*';
|
|
666
|
+
const lines = [];
|
|
676
667
|
if (!success || !output.trim()) {
|
|
677
|
-
|
|
668
|
+
lines.push(`${theme.warning('○')} No files matching "${pattern}"`);
|
|
669
|
+
return lines.join('\n');
|
|
678
670
|
}
|
|
679
671
|
const files = output.trim().split('\n').filter(f => f.trim());
|
|
680
672
|
const fileCount = files.length;
|
|
681
|
-
// Compact mode: single line
|
|
682
|
-
if (compact) {
|
|
683
|
-
return `${theme.success('✓')} glob "${pattern}" ${theme.ui.muted(`→ ${fileCount}`)}`;
|
|
684
|
-
}
|
|
685
|
-
const lines = [];
|
|
686
673
|
lines.push(`${theme.success('✓')} Found ${theme.info(String(fileCount))} file${fileCount === 1 ? '' : 's'} matching "${pattern}"`);
|
|
687
674
|
// Show first few files
|
|
688
675
|
const maxPreview = 4;
|
|
@@ -1367,4 +1354,148 @@ function formatLearnResult(toolName, args, output, success) {
|
|
|
1367
1354
|
return `${theme.success('✓')} Learning completed`;
|
|
1368
1355
|
}
|
|
1369
1356
|
}
|
|
1357
|
+
// ============================================================================
|
|
1358
|
+
// ADVANCED PROGRESS INDICATORS
|
|
1359
|
+
// ============================================================================
|
|
1360
|
+
/**
|
|
1361
|
+
* Format a compact progress bar
|
|
1362
|
+
*/
|
|
1363
|
+
export function formatCompactProgressBar(current, total, options = {}) {
|
|
1364
|
+
const { width = 15, style = 'bar' } = options;
|
|
1365
|
+
const percentage = Math.min(100, Math.max(0, Math.round((current / total) * 100)));
|
|
1366
|
+
const filled = Math.round((current / total) * width);
|
|
1367
|
+
const empty = width - filled;
|
|
1368
|
+
let bar;
|
|
1369
|
+
switch (style) {
|
|
1370
|
+
case 'braille': {
|
|
1371
|
+
// Smooth braille progress (8 states per character)
|
|
1372
|
+
const fullBlocks = Math.floor((current / total) * width);
|
|
1373
|
+
const remainder = ((current / total) * width) - fullBlocks;
|
|
1374
|
+
const partials = [' ', '⡀', '⡄', '⡆', '⡇', '⣇', '⣧', '⣷', '⣿'];
|
|
1375
|
+
const partialIndex = Math.floor(remainder * 8);
|
|
1376
|
+
bar = '⣿'.repeat(fullBlocks);
|
|
1377
|
+
if (fullBlocks < width) {
|
|
1378
|
+
bar += partials[partialIndex] ?? ' ';
|
|
1379
|
+
bar += ' '.repeat(width - fullBlocks - 1);
|
|
1380
|
+
}
|
|
1381
|
+
bar = theme.progress?.bar?.(bar) ?? theme.info(bar);
|
|
1382
|
+
break;
|
|
1383
|
+
}
|
|
1384
|
+
case 'dots':
|
|
1385
|
+
bar = theme.success('●').repeat(filled) + theme.ui.muted('○').repeat(empty);
|
|
1386
|
+
break;
|
|
1387
|
+
case 'bar':
|
|
1388
|
+
default:
|
|
1389
|
+
bar = (theme.progress?.bar ?? theme.info)(progressChars.filled.repeat(filled)) +
|
|
1390
|
+
(theme.progress?.empty ?? theme.ui.muted)(progressChars.empty.repeat(empty));
|
|
1391
|
+
}
|
|
1392
|
+
return `[${bar}] ${(theme.progress?.percentage ?? theme.warning)(`${percentage}%`)}`;
|
|
1393
|
+
}
|
|
1394
|
+
/**
|
|
1395
|
+
* Format a micro progress indicator (fits in status line)
|
|
1396
|
+
*/
|
|
1397
|
+
export function formatMicroProgress(current, total) {
|
|
1398
|
+
const percentage = Math.min(100, Math.max(0, Math.round((current / total) * 100)));
|
|
1399
|
+
// Use single-char block progress
|
|
1400
|
+
const blocks = ['░', '▒', '▓', '█'];
|
|
1401
|
+
const blockIndex = Math.min(3, Math.floor(percentage / 25));
|
|
1402
|
+
const block = blocks[blockIndex] ?? '░';
|
|
1403
|
+
return `${theme.info(block)}${percentage}%`;
|
|
1404
|
+
}
|
|
1405
|
+
/**
|
|
1406
|
+
* Format a spinner with elapsed time
|
|
1407
|
+
*/
|
|
1408
|
+
export function formatSpinnerWithTime(frame, label, elapsedMs) {
|
|
1409
|
+
const elapsed = formatDuration(elapsedMs);
|
|
1410
|
+
return `${theme.info(frame)} ${label} ${theme.ui.muted(`(${elapsed})`)}`;
|
|
1411
|
+
}
|
|
1412
|
+
/**
|
|
1413
|
+
* Format multiple tool operations on a single line
|
|
1414
|
+
*/
|
|
1415
|
+
export function formatCompactToolLine(operations, options = {}) {
|
|
1416
|
+
const { separator = ' · ', maxWidth = 80 } = options;
|
|
1417
|
+
const badges = [];
|
|
1418
|
+
let currentLength = 0;
|
|
1419
|
+
for (const op of operations) {
|
|
1420
|
+
const icon = op.status === 'success' ? icons.success :
|
|
1421
|
+
op.status === 'error' ? icons.error : icons.running;
|
|
1422
|
+
const color = op.status === 'success' ? theme.success :
|
|
1423
|
+
op.status === 'error' ? theme.error : theme.info;
|
|
1424
|
+
let badge = `${color(icon)} ${theme.tool(op.name)}`;
|
|
1425
|
+
if (op.summary) {
|
|
1426
|
+
badge += ` ${theme.ui.muted(op.summary)}`;
|
|
1427
|
+
}
|
|
1428
|
+
const badgeLength = badge.replace(/\u001B\[[0-9;]*m/g, '').length;
|
|
1429
|
+
const sepLength = badges.length > 0 ? separator.replace(/\u001B\[[0-9;]*m/g, '').length : 0;
|
|
1430
|
+
if (currentLength + sepLength + badgeLength > maxWidth - 5) {
|
|
1431
|
+
const remaining = operations.length - badges.length;
|
|
1432
|
+
if (remaining > 0) {
|
|
1433
|
+
badges.push(theme.ui.muted(`+${remaining} more`));
|
|
1434
|
+
}
|
|
1435
|
+
break;
|
|
1436
|
+
}
|
|
1437
|
+
badges.push(badge);
|
|
1438
|
+
currentLength += sepLength + badgeLength;
|
|
1439
|
+
}
|
|
1440
|
+
return badges.join(theme.ui.muted(separator));
|
|
1441
|
+
}
|
|
1442
|
+
/**
|
|
1443
|
+
* Format a file operation summary with additions/removals
|
|
1444
|
+
*/
|
|
1445
|
+
export function formatFileOpSummary(path, type, stats) {
|
|
1446
|
+
const shortPath = truncatePathForDisplay(path, 40);
|
|
1447
|
+
const icon = type === 'read' ? icons.success :
|
|
1448
|
+
type === 'edit' ? icons.success : icons.success;
|
|
1449
|
+
const color = theme.success;
|
|
1450
|
+
const parts = [
|
|
1451
|
+
`${color(icon)} ${theme.file?.path?.(shortPath) ?? theme.info(shortPath)}`,
|
|
1452
|
+
];
|
|
1453
|
+
if (stats) {
|
|
1454
|
+
const details = [];
|
|
1455
|
+
if (stats.lines !== undefined) {
|
|
1456
|
+
details.push(`${stats.lines} lines`);
|
|
1457
|
+
}
|
|
1458
|
+
if (stats.additions !== undefined && stats.additions > 0) {
|
|
1459
|
+
details.push((theme.file?.additions ?? theme.success)(`+${stats.additions}`));
|
|
1460
|
+
}
|
|
1461
|
+
if (stats.removals !== undefined && stats.removals > 0) {
|
|
1462
|
+
details.push((theme.file?.removals ?? theme.error)(`-${stats.removals}`));
|
|
1463
|
+
}
|
|
1464
|
+
if (details.length > 0) {
|
|
1465
|
+
parts.push(theme.ui.muted(`(${details.join(', ')})`));
|
|
1466
|
+
}
|
|
1467
|
+
}
|
|
1468
|
+
return parts.join(' ');
|
|
1469
|
+
}
|
|
1470
|
+
/**
|
|
1471
|
+
* Format a search result summary
|
|
1472
|
+
*/
|
|
1473
|
+
export function formatSearchOpSummary(pattern, matchCount, fileCount, durationMs) {
|
|
1474
|
+
const truncPattern = pattern.length > 25 ? `${pattern.slice(0, 22)}...` : pattern;
|
|
1475
|
+
if (matchCount === 0) {
|
|
1476
|
+
return `${theme.warning(icons.pending)} No matches for "${truncPattern}"`;
|
|
1477
|
+
}
|
|
1478
|
+
const parts = [
|
|
1479
|
+
`${theme.success(icons.success)} Found`,
|
|
1480
|
+
theme.info(`${matchCount}`),
|
|
1481
|
+
matchCount === 1 ? 'match' : 'matches',
|
|
1482
|
+
];
|
|
1483
|
+
if (fileCount && fileCount > 0) {
|
|
1484
|
+
parts.push('in', theme.info(`${fileCount}`), fileCount === 1 ? 'file' : 'files');
|
|
1485
|
+
}
|
|
1486
|
+
parts.push(theme.ui.muted(`for "${truncPattern}"`));
|
|
1487
|
+
if (durationMs) {
|
|
1488
|
+
parts.push(theme.ui.muted(`(${formatDuration(durationMs)})`));
|
|
1489
|
+
}
|
|
1490
|
+
return parts.join(' ');
|
|
1491
|
+
}
|
|
1492
|
+
/**
|
|
1493
|
+
* Format a context usage badge
|
|
1494
|
+
*/
|
|
1495
|
+
export function formatContextBadge(usedPercentage) {
|
|
1496
|
+
const remaining = 100 - usedPercentage;
|
|
1497
|
+
const color = usedPercentage > 80 ? theme.error :
|
|
1498
|
+
usedPercentage > 60 ? theme.warning : theme.success;
|
|
1499
|
+
return `${color(icons.context)}${remaining}%`;
|
|
1500
|
+
}
|
|
1370
1501
|
//# sourceMappingURL=toolDisplay.js.map
|