erosolar-cli 2.1.168 → 2.1.170
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/README.md +1 -1
- package/agents/erosolar-code.rules.json +2 -2
- package/agents/general.rules.json +21 -3
- package/dist/capabilities/statusCapability.js +2 -2
- package/dist/capabilities/statusCapability.js.map +1 -1
- package/dist/contracts/agent-schemas.json +5 -5
- package/dist/core/agent.d.ts +83 -24
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +499 -248
- package/dist/core/agent.js.map +1 -1
- package/dist/core/preferences.d.ts +1 -0
- package/dist/core/preferences.d.ts.map +1 -1
- package/dist/core/preferences.js +8 -1
- package/dist/core/preferences.js.map +1 -1
- package/dist/core/reliabilityPrompt.d.ts +9 -0
- package/dist/core/reliabilityPrompt.d.ts.map +1 -0
- package/dist/core/reliabilityPrompt.js +31 -0
- package/dist/core/reliabilityPrompt.js.map +1 -0
- package/dist/core/schemaValidator.js +3 -3
- package/dist/core/schemaValidator.js.map +1 -1
- package/dist/core/toolPreconditions.d.ts +0 -11
- package/dist/core/toolPreconditions.d.ts.map +1 -1
- package/dist/core/toolPreconditions.js +33 -164
- package/dist/core/toolPreconditions.js.map +1 -1
- package/dist/core/toolRuntime.d.ts.map +1 -1
- package/dist/core/toolRuntime.js +9 -114
- package/dist/core/toolRuntime.js.map +1 -1
- package/dist/core/updateChecker.d.ts +61 -1
- package/dist/core/updateChecker.d.ts.map +1 -1
- package/dist/core/updateChecker.js +147 -3
- package/dist/core/updateChecker.js.map +1 -1
- package/dist/headless/headlessApp.d.ts.map +1 -1
- package/dist/headless/headlessApp.js +0 -39
- package/dist/headless/headlessApp.js.map +1 -1
- package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
- package/dist/plugins/tools/nodeDefaults.js +0 -2
- package/dist/plugins/tools/nodeDefaults.js.map +1 -1
- package/dist/providers/openaiResponsesProvider.d.ts.map +1 -1
- package/dist/providers/openaiResponsesProvider.js +79 -74
- package/dist/providers/openaiResponsesProvider.js.map +1 -1
- package/dist/runtime/agentController.d.ts.map +1 -1
- package/dist/runtime/agentController.js +6 -3
- package/dist/runtime/agentController.js.map +1 -1
- package/dist/runtime/agentSession.d.ts +0 -2
- package/dist/runtime/agentSession.d.ts.map +1 -1
- package/dist/runtime/agentSession.js +2 -2
- package/dist/runtime/agentSession.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts +11 -12
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +269 -193
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/systemPrompt.d.ts.map +1 -1
- package/dist/shell/systemPrompt.js +4 -15
- package/dist/shell/systemPrompt.js.map +1 -1
- package/dist/subagents/taskRunner.js +2 -1
- package/dist/subagents/taskRunner.js.map +1 -1
- package/dist/tools/bashTools.d.ts.map +1 -1
- package/dist/tools/bashTools.js +101 -8
- package/dist/tools/bashTools.js.map +1 -1
- package/dist/tools/diffUtils.d.ts +8 -2
- package/dist/tools/diffUtils.d.ts.map +1 -1
- package/dist/tools/diffUtils.js +72 -13
- package/dist/tools/diffUtils.js.map +1 -1
- package/dist/tools/grepTools.d.ts.map +1 -1
- package/dist/tools/grepTools.js +10 -2
- package/dist/tools/grepTools.js.map +1 -1
- package/dist/tools/searchTools.d.ts.map +1 -1
- package/dist/tools/searchTools.js +4 -2
- package/dist/tools/searchTools.js.map +1 -1
- package/dist/ui/PromptController.d.ts +2 -3
- package/dist/ui/PromptController.d.ts.map +1 -1
- package/dist/ui/PromptController.js +2 -3
- package/dist/ui/PromptController.js.map +1 -1
- package/dist/ui/ShellUIAdapter.d.ts +71 -18
- package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
- package/dist/ui/ShellUIAdapter.js +237 -139
- package/dist/ui/ShellUIAdapter.js.map +1 -1
- package/dist/ui/UnifiedUIController.d.ts +0 -1
- package/dist/ui/UnifiedUIController.d.ts.map +1 -1
- package/dist/ui/UnifiedUIController.js +0 -1
- package/dist/ui/UnifiedUIController.js.map +1 -1
- package/dist/ui/UnifiedUIRenderer.d.ts +122 -7
- package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
- package/dist/ui/UnifiedUIRenderer.js +823 -130
- package/dist/ui/UnifiedUIRenderer.js.map +1 -1
- package/dist/ui/animatedStatus.d.ts +129 -0
- package/dist/ui/animatedStatus.d.ts.map +1 -0
- package/dist/ui/animatedStatus.js +384 -0
- package/dist/ui/animatedStatus.js.map +1 -0
- package/dist/ui/display.d.ts +13 -48
- package/dist/ui/display.d.ts.map +1 -1
- package/dist/ui/display.js +22 -105
- package/dist/ui/display.js.map +1 -1
- package/dist/ui/shortcutsHelp.d.ts.map +1 -1
- package/dist/ui/shortcutsHelp.js +0 -1
- package/dist/ui/shortcutsHelp.js.map +1 -1
- package/dist/ui/unified/index.d.ts +1 -1
- package/dist/ui/unified/index.d.ts.map +1 -1
- package/dist/ui/unified/index.js +0 -2
- package/dist/ui/unified/index.js.map +1 -1
- package/package.json +1 -2
- package/dist/StringUtils.d.ts +0 -8
- package/dist/StringUtils.d.ts.map +0 -1
- package/dist/StringUtils.js +0 -11
- package/dist/StringUtils.js.map +0 -1
- package/dist/core/aiFlowSupervisor.d.ts +0 -44
- package/dist/core/aiFlowSupervisor.d.ts.map +0 -1
- package/dist/core/aiFlowSupervisor.js +0 -299
- package/dist/core/aiFlowSupervisor.js.map +0 -1
- package/dist/core/cliTestHarness.d.ts +0 -200
- package/dist/core/cliTestHarness.d.ts.map +0 -1
- package/dist/core/cliTestHarness.js +0 -549
- package/dist/core/cliTestHarness.js.map +0 -1
- package/dist/core/testUtils.d.ts +0 -121
- package/dist/core/testUtils.d.ts.map +0 -1
- package/dist/core/testUtils.js +0 -235
- package/dist/core/testUtils.js.map +0 -1
- package/dist/core/toolValidation.d.ts +0 -116
- package/dist/core/toolValidation.d.ts.map +0 -1
- package/dist/core/toolValidation.js +0 -282
- package/dist/core/toolValidation.js.map +0 -1
- package/dist/ui/compactRenderer.d.ts +0 -139
- package/dist/ui/compactRenderer.d.ts.map +0 -1
- package/dist/ui/compactRenderer.js +0 -398
- package/dist/ui/compactRenderer.js.map +0 -1
- package/dist/ui/streamingFormatter.d.ts +0 -30
- package/dist/ui/streamingFormatter.d.ts.map +0 -1
- package/dist/ui/streamingFormatter.js +0 -91
- package/dist/ui/streamingFormatter.js.map +0 -1
- package/dist/utils/errorUtils.d.ts +0 -16
- package/dist/utils/errorUtils.d.ts.map +0 -1
- package/dist/utils/errorUtils.js +0 -66
- package/dist/utils/errorUtils.js.map +0 -1
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CompactRenderer - Advanced tool display with same-line grouping and dynamic updates
|
|
3
|
-
*
|
|
4
|
-
* Features:
|
|
5
|
-
* - Same-line display for related tools (e.g., "✓ Read file.ts · Grep pattern")
|
|
6
|
-
* - In-place updates for running tools
|
|
7
|
-
* - Visual badges and status indicators
|
|
8
|
-
* - Context-aware width adaptation
|
|
9
|
-
* - Grouped operation summaries
|
|
10
|
-
*/
|
|
11
|
-
export interface ToolOperation {
|
|
12
|
-
id: string;
|
|
13
|
-
name: string;
|
|
14
|
-
status: 'pending' | 'running' | 'success' | 'error' | 'cached';
|
|
15
|
-
summary: string;
|
|
16
|
-
detail?: string;
|
|
17
|
-
startedAt: number;
|
|
18
|
-
completedAt?: number;
|
|
19
|
-
args?: Record<string, unknown>;
|
|
20
|
-
}
|
|
21
|
-
export interface OperationGroup {
|
|
22
|
-
id: string;
|
|
23
|
-
operations: ToolOperation[];
|
|
24
|
-
label?: string;
|
|
25
|
-
collapsed?: boolean;
|
|
26
|
-
}
|
|
27
|
-
export type BadgeStyle = 'success' | 'error' | 'warning' | 'info' | 'muted' | 'primary' | 'accent';
|
|
28
|
-
export interface Badge {
|
|
29
|
-
text: string;
|
|
30
|
-
style: BadgeStyle;
|
|
31
|
-
icon?: string;
|
|
32
|
-
}
|
|
33
|
-
export interface CompactLineOptions {
|
|
34
|
-
maxWidth?: number;
|
|
35
|
-
separator?: string;
|
|
36
|
-
showTimings?: boolean;
|
|
37
|
-
showIcons?: boolean;
|
|
38
|
-
}
|
|
39
|
-
export declare class CompactRenderer {
|
|
40
|
-
private currentFrame;
|
|
41
|
-
private frameInterval;
|
|
42
|
-
private operationGroups;
|
|
43
|
-
private recentOperations;
|
|
44
|
-
private readonly maxRecentOps;
|
|
45
|
-
constructor();
|
|
46
|
-
/**
|
|
47
|
-
* Format a single tool operation as a compact badge
|
|
48
|
-
*/
|
|
49
|
-
formatToolBadge(op: ToolOperation, options?: CompactLineOptions): string;
|
|
50
|
-
/**
|
|
51
|
-
* Format multiple tools on a single line with smart truncation
|
|
52
|
-
*/
|
|
53
|
-
formatCompactLine(operations: ToolOperation[], options?: CompactLineOptions): string;
|
|
54
|
-
/**
|
|
55
|
-
* Format a tool result with inline details (same-line when possible)
|
|
56
|
-
*/
|
|
57
|
-
formatInlineResult(name: string, status: ToolOperation['status'], summary: string, detail?: string, options?: CompactLineOptions): string;
|
|
58
|
-
/**
|
|
59
|
-
* Format a progress indicator with optional details
|
|
60
|
-
*/
|
|
61
|
-
formatProgress(name: string, current: number, total: number, message?: string): string;
|
|
62
|
-
/**
|
|
63
|
-
* Format a styled badge
|
|
64
|
-
*/
|
|
65
|
-
formatBadge(badge: Badge): string;
|
|
66
|
-
/**
|
|
67
|
-
* Format multiple badges inline
|
|
68
|
-
*/
|
|
69
|
-
formatBadges(badges: Badge[], separator?: string): string;
|
|
70
|
-
/**
|
|
71
|
-
* Format a file operation summary (Read + Edit + Write on same line)
|
|
72
|
-
*/
|
|
73
|
-
formatFileOperationSummary(filePath: string, operations: Array<{
|
|
74
|
-
type: 'read' | 'edit' | 'write';
|
|
75
|
-
additions?: number;
|
|
76
|
-
removals?: number;
|
|
77
|
-
}>): string;
|
|
78
|
-
/**
|
|
79
|
-
* Format search results summary
|
|
80
|
-
*/
|
|
81
|
-
formatSearchSummary(pattern: string, matchCount: number, fileCount: number, duration?: number): string;
|
|
82
|
-
/**
|
|
83
|
-
* Format a grouped operation summary
|
|
84
|
-
*/
|
|
85
|
-
formatGroupSummary(group: OperationGroup): string;
|
|
86
|
-
/**
|
|
87
|
-
* Start tracking an operation
|
|
88
|
-
*/
|
|
89
|
-
startOperation(op: Omit<ToolOperation, 'startedAt' | 'status'>): ToolOperation;
|
|
90
|
-
/**
|
|
91
|
-
* Complete an operation
|
|
92
|
-
*/
|
|
93
|
-
completeOperation(id: string, status: 'success' | 'error', summary?: string): void;
|
|
94
|
-
/**
|
|
95
|
-
* Get recent operations for compact display
|
|
96
|
-
*/
|
|
97
|
-
getRecentCompactLine(options?: CompactLineOptions): string;
|
|
98
|
-
/**
|
|
99
|
-
* Clear recent operations
|
|
100
|
-
*/
|
|
101
|
-
clearRecentOperations(): void;
|
|
102
|
-
/**
|
|
103
|
-
* Start spinner animation
|
|
104
|
-
*/
|
|
105
|
-
startAnimation(): void;
|
|
106
|
-
/**
|
|
107
|
-
* Stop spinner animation
|
|
108
|
-
*/
|
|
109
|
-
stopAnimation(): void;
|
|
110
|
-
/**
|
|
111
|
-
* Get current spinner frame
|
|
112
|
-
*/
|
|
113
|
-
getSpinnerFrame(): string;
|
|
114
|
-
private calculateTotalTime;
|
|
115
|
-
private formatDuration;
|
|
116
|
-
private truncatePath;
|
|
117
|
-
dispose(): void;
|
|
118
|
-
}
|
|
119
|
-
export declare const compactRenderer: CompactRenderer;
|
|
120
|
-
/**
|
|
121
|
-
* Format a quick tool result inline
|
|
122
|
-
*/
|
|
123
|
-
export declare function formatQuickResult(name: string, success: boolean, message: string, detail?: string): string;
|
|
124
|
-
/**
|
|
125
|
-
* Format a batch of operations on one line
|
|
126
|
-
*/
|
|
127
|
-
export declare function formatBatchSummary(operations: Array<{
|
|
128
|
-
name: string;
|
|
129
|
-
success: boolean;
|
|
130
|
-
message?: string;
|
|
131
|
-
}>): string;
|
|
132
|
-
/**
|
|
133
|
-
* Format a context/status badge line
|
|
134
|
-
*/
|
|
135
|
-
export declare function formatStatusBadges(context?: {
|
|
136
|
-
used: number;
|
|
137
|
-
total: number;
|
|
138
|
-
}, timing?: number, mode?: string): string;
|
|
139
|
-
//# sourceMappingURL=compactRenderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compactRenderer.d.ts","sourceRoot":"","sources":["../../src/ui/compactRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,398 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CompactRenderer - Advanced tool display with same-line grouping and dynamic updates
|
|
3
|
-
*
|
|
4
|
-
* Features:
|
|
5
|
-
* - Same-line display for related tools (e.g., "✓ Read file.ts · Grep pattern")
|
|
6
|
-
* - In-place updates for running tools
|
|
7
|
-
* - Visual badges and status indicators
|
|
8
|
-
* - Context-aware width adaptation
|
|
9
|
-
* - Grouped operation summaries
|
|
10
|
-
*/
|
|
11
|
-
import { theme } from './theme.js';
|
|
12
|
-
import { getTerminalColumns, measure, stripAnsi } from './layout.js';
|
|
13
|
-
// ============================================================================
|
|
14
|
-
// STATUS ICONS AND BADGES
|
|
15
|
-
// ============================================================================
|
|
16
|
-
const STATUS_ICONS = {
|
|
17
|
-
pending: '○',
|
|
18
|
-
running: '◐',
|
|
19
|
-
success: '✓',
|
|
20
|
-
error: '✗',
|
|
21
|
-
cached: '⚡',
|
|
22
|
-
};
|
|
23
|
-
const STATUS_COLORS = {
|
|
24
|
-
pending: theme.ui.muted,
|
|
25
|
-
running: theme.info,
|
|
26
|
-
success: theme.success,
|
|
27
|
-
error: theme.error,
|
|
28
|
-
cached: theme.accent,
|
|
29
|
-
};
|
|
30
|
-
const BADGE_STYLES = {
|
|
31
|
-
success: theme.success,
|
|
32
|
-
error: theme.error,
|
|
33
|
-
warning: theme.warning,
|
|
34
|
-
info: theme.info,
|
|
35
|
-
muted: theme.ui.muted,
|
|
36
|
-
primary: theme.primary,
|
|
37
|
-
accent: theme.accent,
|
|
38
|
-
};
|
|
39
|
-
// Animated spinner frames for running operations
|
|
40
|
-
const SPINNER_FRAMES = ['◐', '◓', '◑', '◒'];
|
|
41
|
-
// ============================================================================
|
|
42
|
-
// COMPACT TOOL RENDERER
|
|
43
|
-
// ============================================================================
|
|
44
|
-
export class CompactRenderer {
|
|
45
|
-
currentFrame = 0;
|
|
46
|
-
frameInterval = null;
|
|
47
|
-
operationGroups = new Map();
|
|
48
|
-
recentOperations = [];
|
|
49
|
-
maxRecentOps = 5;
|
|
50
|
-
constructor() { }
|
|
51
|
-
// --------------------------------------------------------------------------
|
|
52
|
-
// PUBLIC API
|
|
53
|
-
// --------------------------------------------------------------------------
|
|
54
|
-
/**
|
|
55
|
-
* Format a single tool operation as a compact badge
|
|
56
|
-
*/
|
|
57
|
-
formatToolBadge(op, options = {}) {
|
|
58
|
-
const showIcons = options.showIcons ?? true;
|
|
59
|
-
const icon = showIcons ? STATUS_ICONS[op.status] : '';
|
|
60
|
-
const colorize = STATUS_COLORS[op.status];
|
|
61
|
-
const iconPart = icon ? `${colorize(icon)} ` : '';
|
|
62
|
-
const namePart = theme.tool(op.name);
|
|
63
|
-
const summaryPart = op.summary ? ` ${theme.ui.muted(op.summary)}` : '';
|
|
64
|
-
return `${iconPart}${namePart}${summaryPart}`;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Format multiple tools on a single line with smart truncation
|
|
68
|
-
*/
|
|
69
|
-
formatCompactLine(operations, options = {}) {
|
|
70
|
-
const maxWidth = options.maxWidth ?? getTerminalColumns() - 4;
|
|
71
|
-
const separator = options.separator ?? theme.ui.muted(' · ');
|
|
72
|
-
const showTimings = options.showTimings ?? false;
|
|
73
|
-
if (operations.length === 0)
|
|
74
|
-
return '';
|
|
75
|
-
// Build badges for each operation
|
|
76
|
-
const badges = [];
|
|
77
|
-
let currentLength = 0;
|
|
78
|
-
let truncated = false;
|
|
79
|
-
for (const op of operations) {
|
|
80
|
-
const badge = this.formatToolBadge(op, options);
|
|
81
|
-
const badgeLength = measure(badge);
|
|
82
|
-
// Check if adding this badge would exceed max width
|
|
83
|
-
const sepLength = badges.length > 0 ? measure(stripAnsi(separator)) : 0;
|
|
84
|
-
if (currentLength + sepLength + badgeLength > maxWidth - 10) {
|
|
85
|
-
truncated = true;
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
badges.push(badge);
|
|
89
|
-
currentLength += sepLength + badgeLength;
|
|
90
|
-
}
|
|
91
|
-
let line = badges.join(separator);
|
|
92
|
-
// Add truncation indicator
|
|
93
|
-
if (truncated) {
|
|
94
|
-
const remaining = operations.length - badges.length;
|
|
95
|
-
line += ` ${theme.ui.muted(`+${remaining} more`)}`;
|
|
96
|
-
}
|
|
97
|
-
// Add timing info
|
|
98
|
-
if (showTimings && operations.length > 0) {
|
|
99
|
-
const totalTime = this.calculateTotalTime(operations);
|
|
100
|
-
if (totalTime > 0) {
|
|
101
|
-
line += ` ${theme.ui.muted(`(${this.formatDuration(totalTime)})`)}`;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return line;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Format a tool result with inline details (same-line when possible)
|
|
108
|
-
*/
|
|
109
|
-
formatInlineResult(name, status, summary, detail, options = {}) {
|
|
110
|
-
const maxWidth = options.maxWidth ?? getTerminalColumns() - 4;
|
|
111
|
-
const icon = STATUS_ICONS[status];
|
|
112
|
-
const colorize = STATUS_COLORS[status];
|
|
113
|
-
// Build the main line
|
|
114
|
-
const iconPart = `${colorize(icon)} `;
|
|
115
|
-
const namePart = theme.tool(name);
|
|
116
|
-
const summaryPart = summary ? ` ${summary}` : '';
|
|
117
|
-
let mainLine = `${iconPart}${namePart}${summaryPart}`;
|
|
118
|
-
// Check if detail fits on the same line
|
|
119
|
-
if (detail) {
|
|
120
|
-
const detailPart = ` ${theme.ui.muted(detail)}`;
|
|
121
|
-
const combinedLength = measure(mainLine) + measure(detailPart);
|
|
122
|
-
if (combinedLength <= maxWidth) {
|
|
123
|
-
mainLine += detailPart;
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
// Detail goes on next line with indentation
|
|
127
|
-
return `${mainLine}\n ${theme.ui.muted(detail)}`;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
return mainLine;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Format a progress indicator with optional details
|
|
134
|
-
*/
|
|
135
|
-
formatProgress(name, current, total, message) {
|
|
136
|
-
const percentage = Math.round((current / total) * 100);
|
|
137
|
-
const icon = this.getSpinnerFrame();
|
|
138
|
-
const colorize = theme.info;
|
|
139
|
-
// Progress bar (compact)
|
|
140
|
-
const barWidth = 10;
|
|
141
|
-
const filled = Math.round((current / total) * barWidth);
|
|
142
|
-
const empty = barWidth - filled;
|
|
143
|
-
const bar = `${'█'.repeat(filled)}${'░'.repeat(empty)}`;
|
|
144
|
-
const parts = [
|
|
145
|
-
`${colorize(icon)} ${theme.tool(name)}`,
|
|
146
|
-
theme.ui.muted(bar),
|
|
147
|
-
theme.info(`${percentage}%`),
|
|
148
|
-
];
|
|
149
|
-
if (message) {
|
|
150
|
-
parts.push(theme.ui.muted(message));
|
|
151
|
-
}
|
|
152
|
-
return parts.join(' ');
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Format a styled badge
|
|
156
|
-
*/
|
|
157
|
-
formatBadge(badge) {
|
|
158
|
-
const colorize = BADGE_STYLES[badge.style];
|
|
159
|
-
const iconPart = badge.icon ? `${badge.icon} ` : '';
|
|
160
|
-
return colorize(`${iconPart}${badge.text}`);
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Format multiple badges inline
|
|
164
|
-
*/
|
|
165
|
-
formatBadges(badges, separator = ' ') {
|
|
166
|
-
return badges.map(b => this.formatBadge(b)).join(separator);
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Format a file operation summary (Read + Edit + Write on same line)
|
|
170
|
-
*/
|
|
171
|
-
formatFileOperationSummary(filePath, operations) {
|
|
172
|
-
const shortPath = this.truncatePath(filePath, 40);
|
|
173
|
-
const badges = [];
|
|
174
|
-
for (const op of operations) {
|
|
175
|
-
switch (op.type) {
|
|
176
|
-
case 'read':
|
|
177
|
-
badges.push({ text: 'Read', style: 'info', icon: '📖' });
|
|
178
|
-
break;
|
|
179
|
-
case 'edit':
|
|
180
|
-
const editText = op.additions || op.removals
|
|
181
|
-
? `Edit +${op.additions || 0}/-${op.removals || 0}`
|
|
182
|
-
: 'Edit';
|
|
183
|
-
badges.push({ text: editText, style: 'warning', icon: '✏️' });
|
|
184
|
-
break;
|
|
185
|
-
case 'write':
|
|
186
|
-
badges.push({ text: 'Write', style: 'success', icon: '💾' });
|
|
187
|
-
break;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
return `${theme.success('✓')} ${theme.info(shortPath)} ${this.formatBadges(badges, theme.ui.muted(' · '))}`;
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Format search results summary
|
|
194
|
-
*/
|
|
195
|
-
formatSearchSummary(pattern, matchCount, fileCount, duration) {
|
|
196
|
-
const parts = [];
|
|
197
|
-
if (matchCount > 0) {
|
|
198
|
-
parts.push(`${theme.success('✓')} Found`);
|
|
199
|
-
parts.push(theme.info(`${matchCount}`));
|
|
200
|
-
parts.push(matchCount === 1 ? 'match' : 'matches');
|
|
201
|
-
if (fileCount > 0) {
|
|
202
|
-
parts.push(theme.ui.muted('in'));
|
|
203
|
-
parts.push(theme.info(`${fileCount}`));
|
|
204
|
-
parts.push(fileCount === 1 ? 'file' : 'files');
|
|
205
|
-
}
|
|
206
|
-
const truncPattern = pattern.length > 25 ? `${pattern.slice(0, 22)}...` : pattern;
|
|
207
|
-
parts.push(theme.ui.muted(`for "${truncPattern}"`));
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
parts.push(`${theme.warning('○')} No matches for`);
|
|
211
|
-
parts.push(`"${pattern.slice(0, 30)}"`);
|
|
212
|
-
}
|
|
213
|
-
if (duration) {
|
|
214
|
-
parts.push(theme.ui.muted(`(${this.formatDuration(duration)})`));
|
|
215
|
-
}
|
|
216
|
-
return parts.join(' ');
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Format a grouped operation summary
|
|
220
|
-
*/
|
|
221
|
-
formatGroupSummary(group) {
|
|
222
|
-
const successCount = group.operations.filter(op => op.status === 'success').length;
|
|
223
|
-
const errorCount = group.operations.filter(op => op.status === 'error').length;
|
|
224
|
-
const total = group.operations.length;
|
|
225
|
-
const label = group.label || 'Operations';
|
|
226
|
-
const icon = errorCount > 0 ? '✗' : '✓';
|
|
227
|
-
const colorize = errorCount > 0 ? theme.error : theme.success;
|
|
228
|
-
const parts = [
|
|
229
|
-
`${colorize(icon)} ${label}:`,
|
|
230
|
-
theme.success(`${successCount} done`),
|
|
231
|
-
];
|
|
232
|
-
if (errorCount > 0) {
|
|
233
|
-
parts.push(theme.error(`${errorCount} failed`));
|
|
234
|
-
}
|
|
235
|
-
const pendingCount = total - successCount - errorCount;
|
|
236
|
-
if (pendingCount > 0) {
|
|
237
|
-
parts.push(theme.ui.muted(`${pendingCount} pending`));
|
|
238
|
-
}
|
|
239
|
-
return parts.join(' ');
|
|
240
|
-
}
|
|
241
|
-
// --------------------------------------------------------------------------
|
|
242
|
-
// OPERATION TRACKING
|
|
243
|
-
// --------------------------------------------------------------------------
|
|
244
|
-
/**
|
|
245
|
-
* Start tracking an operation
|
|
246
|
-
*/
|
|
247
|
-
startOperation(op) {
|
|
248
|
-
const operation = {
|
|
249
|
-
...op,
|
|
250
|
-
status: 'running',
|
|
251
|
-
startedAt: Date.now(),
|
|
252
|
-
};
|
|
253
|
-
this.recentOperations.push(operation);
|
|
254
|
-
if (this.recentOperations.length > this.maxRecentOps) {
|
|
255
|
-
this.recentOperations.shift();
|
|
256
|
-
}
|
|
257
|
-
return operation;
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Complete an operation
|
|
261
|
-
*/
|
|
262
|
-
completeOperation(id, status, summary) {
|
|
263
|
-
const op = this.recentOperations.find(o => o.id === id);
|
|
264
|
-
if (op) {
|
|
265
|
-
op.status = status;
|
|
266
|
-
op.completedAt = Date.now();
|
|
267
|
-
if (summary)
|
|
268
|
-
op.summary = summary;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
/**
|
|
272
|
-
* Get recent operations for compact display
|
|
273
|
-
*/
|
|
274
|
-
getRecentCompactLine(options) {
|
|
275
|
-
const completed = this.recentOperations.filter(op => op.status === 'success' || op.status === 'error');
|
|
276
|
-
return this.formatCompactLine(completed, options);
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* Clear recent operations
|
|
280
|
-
*/
|
|
281
|
-
clearRecentOperations() {
|
|
282
|
-
this.recentOperations = [];
|
|
283
|
-
}
|
|
284
|
-
// --------------------------------------------------------------------------
|
|
285
|
-
// ANIMATION SUPPORT
|
|
286
|
-
// --------------------------------------------------------------------------
|
|
287
|
-
/**
|
|
288
|
-
* Start spinner animation
|
|
289
|
-
*/
|
|
290
|
-
startAnimation() {
|
|
291
|
-
if (this.frameInterval)
|
|
292
|
-
return;
|
|
293
|
-
this.frameInterval = setInterval(() => {
|
|
294
|
-
this.currentFrame = (this.currentFrame + 1) % SPINNER_FRAMES.length;
|
|
295
|
-
}, 80);
|
|
296
|
-
}
|
|
297
|
-
/**
|
|
298
|
-
* Stop spinner animation
|
|
299
|
-
*/
|
|
300
|
-
stopAnimation() {
|
|
301
|
-
if (this.frameInterval) {
|
|
302
|
-
clearInterval(this.frameInterval);
|
|
303
|
-
this.frameInterval = null;
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
/**
|
|
307
|
-
* Get current spinner frame
|
|
308
|
-
*/
|
|
309
|
-
getSpinnerFrame() {
|
|
310
|
-
return SPINNER_FRAMES[this.currentFrame] ?? '◐';
|
|
311
|
-
}
|
|
312
|
-
// --------------------------------------------------------------------------
|
|
313
|
-
// UTILITY METHODS
|
|
314
|
-
// --------------------------------------------------------------------------
|
|
315
|
-
calculateTotalTime(operations) {
|
|
316
|
-
let total = 0;
|
|
317
|
-
for (const op of operations) {
|
|
318
|
-
if (op.completedAt && op.startedAt) {
|
|
319
|
-
total += op.completedAt - op.startedAt;
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
return total;
|
|
323
|
-
}
|
|
324
|
-
formatDuration(ms) {
|
|
325
|
-
if (ms < 1000)
|
|
326
|
-
return `${Math.round(ms)}ms`;
|
|
327
|
-
const seconds = Math.floor(ms / 1000);
|
|
328
|
-
if (seconds < 60)
|
|
329
|
-
return `${seconds}s`;
|
|
330
|
-
const minutes = Math.floor(seconds / 60);
|
|
331
|
-
const remainingSecs = seconds % 60;
|
|
332
|
-
return remainingSecs > 0 ? `${minutes}m ${remainingSecs}s` : `${minutes}m`;
|
|
333
|
-
}
|
|
334
|
-
truncatePath(path, maxLen) {
|
|
335
|
-
if (path.length <= maxLen)
|
|
336
|
-
return path;
|
|
337
|
-
const parts = path.split('/').filter(Boolean);
|
|
338
|
-
if (parts.length <= 2) {
|
|
339
|
-
return `${path.slice(0, maxLen - 3)}...`;
|
|
340
|
-
}
|
|
341
|
-
const filename = parts[parts.length - 1] || '';
|
|
342
|
-
const firstPart = parts.slice(0, 2).join('/');
|
|
343
|
-
if (firstPart.length + filename.length + 4 <= maxLen) {
|
|
344
|
-
return `${firstPart}/.../${filename}`;
|
|
345
|
-
}
|
|
346
|
-
return filename.length <= maxLen - 3 ? `.../${filename}` : `${filename.slice(0, maxLen - 3)}...`;
|
|
347
|
-
}
|
|
348
|
-
dispose() {
|
|
349
|
-
this.stopAnimation();
|
|
350
|
-
this.operationGroups.clear();
|
|
351
|
-
this.recentOperations = [];
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
// ============================================================================
|
|
355
|
-
// SINGLETON INSTANCE
|
|
356
|
-
// ============================================================================
|
|
357
|
-
export const compactRenderer = new CompactRenderer();
|
|
358
|
-
// ============================================================================
|
|
359
|
-
// HELPER FUNCTIONS
|
|
360
|
-
// ============================================================================
|
|
361
|
-
/**
|
|
362
|
-
* Format a quick tool result inline
|
|
363
|
-
*/
|
|
364
|
-
export function formatQuickResult(name, success, message, detail) {
|
|
365
|
-
return compactRenderer.formatInlineResult(name, success ? 'success' : 'error', message, detail);
|
|
366
|
-
}
|
|
367
|
-
/**
|
|
368
|
-
* Format a batch of operations on one line
|
|
369
|
-
*/
|
|
370
|
-
export function formatBatchSummary(operations) {
|
|
371
|
-
const ops = operations.map((op, i) => ({
|
|
372
|
-
id: `batch-${i}`,
|
|
373
|
-
name: op.name,
|
|
374
|
-
status: op.success ? 'success' : 'error',
|
|
375
|
-
summary: op.message || '',
|
|
376
|
-
startedAt: Date.now(),
|
|
377
|
-
}));
|
|
378
|
-
return compactRenderer.formatCompactLine(ops);
|
|
379
|
-
}
|
|
380
|
-
/**
|
|
381
|
-
* Format a context/status badge line
|
|
382
|
-
*/
|
|
383
|
-
export function formatStatusBadges(context, timing, mode) {
|
|
384
|
-
const badges = [];
|
|
385
|
-
if (context) {
|
|
386
|
-
const pct = Math.round((context.used / context.total) * 100);
|
|
387
|
-
const style = pct > 80 ? 'error' : pct > 60 ? 'warning' : 'success';
|
|
388
|
-
badges.push({ text: `${pct}% ctx`, style, icon: '⊛' });
|
|
389
|
-
}
|
|
390
|
-
if (timing) {
|
|
391
|
-
badges.push({ text: compactRenderer['formatDuration'](timing), style: 'muted', icon: '⏱' });
|
|
392
|
-
}
|
|
393
|
-
if (mode) {
|
|
394
|
-
badges.push({ text: mode, style: 'info', icon: '◐' });
|
|
395
|
-
}
|
|
396
|
-
return compactRenderer.formatBadges(badges, theme.ui.muted(' · '));
|
|
397
|
-
}
|
|
398
|
-
//# sourceMappingURL=compactRenderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compactRenderer.js","sourceRoot":"","sources":["../../src/ui/compactRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* StreamingResponseFormatter
|
|
3
|
-
* Claude Code style: Stream plain text without forcing ⏺ bullets.
|
|
4
|
-
* Keeps formatting lightweight so responses flow naturally.
|
|
5
|
-
*/
|
|
6
|
-
export declare class StreamingResponseFormatter {
|
|
7
|
-
private lineOpen;
|
|
8
|
-
private currentLine;
|
|
9
|
-
private mode;
|
|
10
|
-
constructor(columns?: number);
|
|
11
|
-
header(): string;
|
|
12
|
-
/**
|
|
13
|
-
* Set the streaming mode (content vs reasoning)
|
|
14
|
-
* Reasoning chunks are visually distinguished with muted styling
|
|
15
|
-
*/
|
|
16
|
-
setMode(mode: 'content' | 'reasoning'): void;
|
|
17
|
-
formatChunk(chunk: string): string;
|
|
18
|
-
/**
|
|
19
|
-
* Format reasoning chunk with visual indicator
|
|
20
|
-
* Used for extended thinking mode
|
|
21
|
-
*/
|
|
22
|
-
formatReasoningChunk(chunk: string): string;
|
|
23
|
-
finish(options?: string | {
|
|
24
|
-
note?: string;
|
|
25
|
-
mode?: 'update' | 'complete' | 'stop' | 'quit';
|
|
26
|
-
}): string;
|
|
27
|
-
private resetState;
|
|
28
|
-
private modeIcon;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=streamingFormatter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"streamingFormatter.d.ts","sourceRoot":"","sources":["../../src/ui/streamingFormatter.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,IAAI,CAAsC;gBAEtC,OAAO,CAAC,EAAE,MAAM;IAI5B,MAAM,IAAI,MAAM;IAKhB;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,IAAI;IAI5C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAkBlC;;;OAGG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAa3C,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM;IAsBpG,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,QAAQ;CAajB"}
|