erosolar-cli 1.7.213 → 1.7.214
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/bin/erosolar.js +3 -0
- package/dist/bin/erosolar.js.map +1 -1
- package/dist/mcp/sseClient.d.ts.map +1 -1
- package/dist/mcp/sseClient.js +54 -27
- package/dist/mcp/sseClient.js.map +1 -1
- package/dist/shell/claudeCodeStreamHandler.d.ts.map +1 -1
- package/dist/shell/claudeCodeStreamHandler.js +11 -1
- package/dist/shell/claudeCodeStreamHandler.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts +10 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +69 -15
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/streamingOutputManager.d.ts +1 -0
- package/dist/shell/streamingOutputManager.d.ts.map +1 -1
- package/dist/shell/streamingOutputManager.js +15 -4
- package/dist/shell/streamingOutputManager.js.map +1 -1
- package/dist/shell/terminalInput.d.ts +18 -1
- package/dist/shell/terminalInput.d.ts.map +1 -1
- package/dist/shell/terminalInput.js +68 -3
- package/dist/shell/terminalInput.js.map +1 -1
- package/dist/shell/terminalInputAdapter.d.ts +14 -0
- package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
- package/dist/shell/terminalInputAdapter.js +20 -0
- package/dist/shell/terminalInputAdapter.js.map +1 -1
- package/dist/ui/display.d.ts +14 -2
- package/dist/ui/display.d.ts.map +1 -1
- package/dist/ui/display.js +56 -14
- package/dist/ui/display.js.map +1 -1
- package/dist/ui/globalWriteLock.d.ts +12 -0
- package/dist/ui/globalWriteLock.d.ts.map +1 -0
- package/dist/ui/globalWriteLock.js +35 -0
- package/dist/ui/globalWriteLock.js.map +1 -0
- package/package.json +1 -1
- package/dist/ui/FixedInputArea.d.ts +0 -108
- package/dist/ui/FixedInputArea.d.ts.map +0 -1
- package/dist/ui/FixedInputArea.js +0 -312
- package/dist/ui/FixedInputArea.js.map +0 -1
- package/dist/ui/advancedTheme.d.ts +0 -246
- package/dist/ui/advancedTheme.d.ts.map +0 -1
- package/dist/ui/advancedTheme.js +0 -478
- package/dist/ui/advancedTheme.js.map +0 -1
- package/dist/ui/collapsibleContent.d.ts +0 -57
- package/dist/ui/collapsibleContent.d.ts.map +0 -1
- package/dist/ui/collapsibleContent.js +0 -106
- package/dist/ui/collapsibleContent.js.map +0 -1
- package/dist/ui/diffViewer.d.ts +0 -42
- package/dist/ui/diffViewer.d.ts.map +0 -1
- package/dist/ui/diffViewer.js +0 -343
- package/dist/ui/diffViewer.js.map +0 -1
- package/dist/ui/gitDisplay.d.ts +0 -45
- package/dist/ui/gitDisplay.d.ts.map +0 -1
- package/dist/ui/gitDisplay.js +0 -215
- package/dist/ui/gitDisplay.js.map +0 -1
- package/dist/ui/gitFormatter.d.ts +0 -29
- package/dist/ui/gitFormatter.d.ts.map +0 -1
- package/dist/ui/gitFormatter.js +0 -203
- package/dist/ui/gitFormatter.js.map +0 -1
- package/dist/ui/keyboardShortcuts.d.ts +0 -49
- package/dist/ui/keyboardShortcuts.d.ts.map +0 -1
- package/dist/ui/keyboardShortcuts.js +0 -128
- package/dist/ui/keyboardShortcuts.js.map +0 -1
- package/dist/ui/logFormatter.d.ts +0 -70
- package/dist/ui/logFormatter.d.ts.map +0 -1
- package/dist/ui/logFormatter.js +0 -323
- package/dist/ui/logFormatter.js.map +0 -1
- package/dist/ui/outputSummarizer.d.ts +0 -52
- package/dist/ui/outputSummarizer.d.ts.map +0 -1
- package/dist/ui/outputSummarizer.js +0 -242
- package/dist/ui/outputSummarizer.js.map +0 -1
- package/dist/ui/progressBar.d.ts +0 -51
- package/dist/ui/progressBar.d.ts.map +0 -1
- package/dist/ui/progressBar.js +0 -153
- package/dist/ui/progressBar.js.map +0 -1
- package/dist/ui/progressIndicator.d.ts +0 -69
- package/dist/ui/progressIndicator.d.ts.map +0 -1
- package/dist/ui/progressIndicator.js +0 -145
- package/dist/ui/progressIndicator.js.map +0 -1
- package/dist/ui/streamingIndicators.d.ts +0 -42
- package/dist/ui/streamingIndicators.d.ts.map +0 -1
- package/dist/ui/streamingIndicators.js +0 -155
- package/dist/ui/streamingIndicators.js.map +0 -1
- package/dist/ui/tableFormatter.d.ts +0 -31
- package/dist/ui/tableFormatter.d.ts.map +0 -1
- package/dist/ui/tableFormatter.js +0 -186
- package/dist/ui/tableFormatter.js.map +0 -1
- package/dist/ui/thinkingTracker.d.ts +0 -51
- package/dist/ui/thinkingTracker.d.ts.map +0 -1
- package/dist/ui/thinkingTracker.js +0 -115
- package/dist/ui/thinkingTracker.js.map +0 -1
- package/dist/ui/toolDisplayAdapter.d.ts +0 -66
- package/dist/ui/toolDisplayAdapter.d.ts.map +0 -1
- package/dist/ui/toolDisplayAdapter.js +0 -356
- package/dist/ui/toolDisplayAdapter.js.map +0 -1
- package/dist/ui/treeVisualizer.d.ts +0 -56
- package/dist/ui/treeVisualizer.d.ts.map +0 -1
- package/dist/ui/treeVisualizer.js +0 -247
- package/dist/ui/treeVisualizer.js.map +0 -1
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Thinking Tracker - Claude Code style
|
|
3
|
-
* Tracks thinking time and displays formatted blocks
|
|
4
|
-
*/
|
|
5
|
-
import { theme } from './theme.js';
|
|
6
|
-
export class ThinkingTracker {
|
|
7
|
-
blocks = new Map();
|
|
8
|
-
activeBlockId = null;
|
|
9
|
-
nextId = 1;
|
|
10
|
-
/**
|
|
11
|
-
* Start a new thinking block
|
|
12
|
-
*/
|
|
13
|
-
startThinking() {
|
|
14
|
-
const id = `think-${this.nextId++}`;
|
|
15
|
-
this.blocks.set(id, {
|
|
16
|
-
id,
|
|
17
|
-
startTime: Date.now(),
|
|
18
|
-
expanded: false,
|
|
19
|
-
});
|
|
20
|
-
this.activeBlockId = id;
|
|
21
|
-
return id;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* End the current thinking block
|
|
25
|
-
*/
|
|
26
|
-
endThinking(content) {
|
|
27
|
-
if (!this.activeBlockId)
|
|
28
|
-
return null;
|
|
29
|
-
const block = this.blocks.get(this.activeBlockId);
|
|
30
|
-
if (!block)
|
|
31
|
-
return null;
|
|
32
|
-
block.endTime = Date.now();
|
|
33
|
-
block.content = content;
|
|
34
|
-
this.activeBlockId = null;
|
|
35
|
-
return block;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Get thinking duration in milliseconds
|
|
39
|
-
*/
|
|
40
|
-
getThinkingDuration(blockId) {
|
|
41
|
-
const block = this.blocks.get(blockId);
|
|
42
|
-
if (!block)
|
|
43
|
-
return null;
|
|
44
|
-
const endTime = block.endTime || Date.now();
|
|
45
|
-
return endTime - block.startTime;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Format thinking block for display (Claude Code style)
|
|
49
|
-
* Example: "∴ Thought for 3s (ctrl+o to show thinking)"
|
|
50
|
-
*/
|
|
51
|
-
formatThinkingBlock(blockId) {
|
|
52
|
-
const block = this.blocks.get(blockId);
|
|
53
|
-
if (!block)
|
|
54
|
-
return '';
|
|
55
|
-
const duration = this.getThinkingDuration(blockId);
|
|
56
|
-
if (duration === null)
|
|
57
|
-
return '';
|
|
58
|
-
const formattedDuration = this.formatDuration(duration);
|
|
59
|
-
const symbol = theme.secondary('∴');
|
|
60
|
-
const thoughtText = theme.ui.muted(`Thought for ${formattedDuration}`);
|
|
61
|
-
const expandHint = block.content
|
|
62
|
-
? theme.ui.muted(' (ctrl+o to show thinking)')
|
|
63
|
-
: '';
|
|
64
|
-
return `${symbol} ${thoughtText}${expandHint}`;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Format duration in human-readable form
|
|
68
|
-
*/
|
|
69
|
-
formatDuration(ms) {
|
|
70
|
-
if (ms < 1000) {
|
|
71
|
-
return `${ms}ms`;
|
|
72
|
-
}
|
|
73
|
-
const seconds = Math.floor(ms / 1000);
|
|
74
|
-
const remainingMs = ms % 1000;
|
|
75
|
-
if (seconds < 60) {
|
|
76
|
-
if (remainingMs > 100) {
|
|
77
|
-
return `${seconds}.${Math.floor(remainingMs / 100)}s`;
|
|
78
|
-
}
|
|
79
|
-
return `${seconds}s`;
|
|
80
|
-
}
|
|
81
|
-
const minutes = Math.floor(seconds / 60);
|
|
82
|
-
const remainingSeconds = seconds % 60;
|
|
83
|
-
return `${minutes}m ${remainingSeconds}s`;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Toggle thinking block expansion
|
|
87
|
-
*/
|
|
88
|
-
toggleExpansion(blockId) {
|
|
89
|
-
const block = this.blocks.get(blockId);
|
|
90
|
-
if (!block)
|
|
91
|
-
return false;
|
|
92
|
-
block.expanded = !block.expanded;
|
|
93
|
-
return block.expanded;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Get expanded content if available
|
|
97
|
-
*/
|
|
98
|
-
getExpandedContent(blockId) {
|
|
99
|
-
const block = this.blocks.get(blockId);
|
|
100
|
-
if (!block || !block.expanded || !block.content)
|
|
101
|
-
return null;
|
|
102
|
-
return block.content;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Clear all thinking blocks
|
|
106
|
-
*/
|
|
107
|
-
clear() {
|
|
108
|
-
this.blocks.clear();
|
|
109
|
-
this.activeBlockId = null;
|
|
110
|
-
this.nextId = 1;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
// Singleton instance
|
|
114
|
-
export const thinkingTracker = new ThinkingTracker();
|
|
115
|
-
//# sourceMappingURL=thinkingTracker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"thinkingTracker.js","sourceRoot":"","sources":["../../src/ui/thinkingTracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tool Display Adapter - Integrates Claude Code style display with ShellUIAdapter
|
|
3
|
-
*
|
|
4
|
-
* Provides high-level interface for displaying tool executions with
|
|
5
|
-
* Claude Code's clean formatting.
|
|
6
|
-
*/
|
|
7
|
-
import type { ToolCallRequest } from '../core/types.js';
|
|
8
|
-
import { Display } from './display.js';
|
|
9
|
-
import { type DiffLine } from './toolDisplay.js';
|
|
10
|
-
export declare class ToolDisplayAdapter {
|
|
11
|
-
private display;
|
|
12
|
-
private activeTools;
|
|
13
|
-
constructor(display: Display);
|
|
14
|
-
/**
|
|
15
|
-
* Show tool call starting
|
|
16
|
-
*/
|
|
17
|
-
showToolStart(call: ToolCallRequest): void;
|
|
18
|
-
/**
|
|
19
|
-
* Show tool result
|
|
20
|
-
*/
|
|
21
|
-
showToolResult(callId: string, output: string, status?: 'success' | 'error'): void;
|
|
22
|
-
/**
|
|
23
|
-
* Determine if we should show output preview for this tool
|
|
24
|
-
*/
|
|
25
|
-
private shouldShowPreview;
|
|
26
|
-
/**
|
|
27
|
-
* Format output preview with proper indentation
|
|
28
|
-
* Handles JSON, structured data, and plain text intelligently
|
|
29
|
-
*/
|
|
30
|
-
private formatOutputPreview;
|
|
31
|
-
/**
|
|
32
|
-
* Try to parse and format output as JSON
|
|
33
|
-
*/
|
|
34
|
-
private tryFormatJSON;
|
|
35
|
-
/**
|
|
36
|
-
* Show tool error
|
|
37
|
-
*/
|
|
38
|
-
showToolError(callId: string, error: string): void;
|
|
39
|
-
/**
|
|
40
|
-
* Show diff output (for Edit/Write tools)
|
|
41
|
-
*/
|
|
42
|
-
showDiff(file: string, additions: number, removals: number, diff: DiffLine[]): void;
|
|
43
|
-
/**
|
|
44
|
-
* Show thinking indicator
|
|
45
|
-
*/
|
|
46
|
-
showThinking(durationMs?: number): void;
|
|
47
|
-
/**
|
|
48
|
-
* Create a concise summary from tool output
|
|
49
|
-
* Parses output intelligently to extract meaningful information
|
|
50
|
-
*/
|
|
51
|
-
private createResultSummary;
|
|
52
|
-
/**
|
|
53
|
-
* Parse diff output into structured format
|
|
54
|
-
*/
|
|
55
|
-
static parseDiffOutput(diffText: string): {
|
|
56
|
-
additions: number;
|
|
57
|
-
removals: number;
|
|
58
|
-
lines: DiffLine[];
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Enhanced display for tool executions
|
|
63
|
-
* Wraps Display with Claude Code style formatting
|
|
64
|
-
*/
|
|
65
|
-
export declare function createToolDisplayAdapter(display: Display): ToolDisplayAdapter;
|
|
66
|
-
//# sourceMappingURL=toolDisplayAdapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toolDisplayAdapter.d.ts","sourceRoot":"","sources":["../../src/ui/toolDisplayAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EASL,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAC;AAG1B,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAAmE;gBAE1E,OAAO,EAAE,OAAO;IAI5B;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAiB1C;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,SAAS,GAAG,OAAmB,GAAG,IAAI;IAyC7F;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA+B3B;;OAEG;IACH,OAAO,CAAC,aAAa;IAsCrB;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI;IAUnF;;OAEG;IACH,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAKvC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAuI3B;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG;QACxC,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;KACnB;CA8CF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,CAE7E"}
|
|
@@ -1,356 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tool Display Adapter - Integrates Claude Code style display with ShellUIAdapter
|
|
3
|
-
*
|
|
4
|
-
* Provides high-level interface for displaying tool executions with
|
|
5
|
-
* Claude Code's clean formatting.
|
|
6
|
-
*/
|
|
7
|
-
import { formatToolCall, formatToolResult, formatDiff, formatDiffSummary, formatThinking, formatDuration, } from './toolDisplay.js';
|
|
8
|
-
import { theme } from './theme.js';
|
|
9
|
-
export class ToolDisplayAdapter {
|
|
10
|
-
display;
|
|
11
|
-
activeTools = new Map();
|
|
12
|
-
constructor(display) {
|
|
13
|
-
this.display = display;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Show tool call starting
|
|
17
|
-
*/
|
|
18
|
-
showToolStart(call) {
|
|
19
|
-
this.activeTools.set(call.id, {
|
|
20
|
-
call,
|
|
21
|
-
startTime: Date.now(),
|
|
22
|
-
});
|
|
23
|
-
const display = {
|
|
24
|
-
name: call.name,
|
|
25
|
-
args: call.arguments ?? {},
|
|
26
|
-
timestamp: Date.now(),
|
|
27
|
-
};
|
|
28
|
-
const formatted = formatToolCall(display, { includePrefix: false });
|
|
29
|
-
// Claude Code style: show tool call with ⏺ prefix (handled by showAction)
|
|
30
|
-
this.display.showAction(formatted);
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Show tool result
|
|
34
|
-
*/
|
|
35
|
-
showToolResult(callId, output, status = 'success') {
|
|
36
|
-
const active = this.activeTools.get(callId);
|
|
37
|
-
const duration = active ? Date.now() - active.startTime : undefined;
|
|
38
|
-
// Analyze output to create summary
|
|
39
|
-
const summary = this.createResultSummary(active?.call.name ?? 'tool', output, status);
|
|
40
|
-
const lines = output.split('\n');
|
|
41
|
-
const nonEmptyLines = lines.filter(l => l.trim());
|
|
42
|
-
const result = {
|
|
43
|
-
summary,
|
|
44
|
-
fullOutput: output,
|
|
45
|
-
linesShown: Math.min(nonEmptyLines.length, 3),
|
|
46
|
-
totalLines: nonEmptyLines.length,
|
|
47
|
-
status,
|
|
48
|
-
duration,
|
|
49
|
-
};
|
|
50
|
-
const formatted = formatToolResult(result, { includePrefix: false });
|
|
51
|
-
// Claude Code style: show result with ⎿ prefix (using showSubAction)
|
|
52
|
-
// Add duration if available
|
|
53
|
-
if (duration !== undefined && duration > 100) {
|
|
54
|
-
const durationStr = formatDuration(duration);
|
|
55
|
-
this.display.showSubAction(`${formatted} ${theme.ui.muted(`(${durationStr})`)}`, status === 'success' ? 'success' : 'error');
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
this.display.showSubAction(formatted, status === 'success' ? 'success' : 'error');
|
|
59
|
-
}
|
|
60
|
-
// Show preview of output if it's substantial
|
|
61
|
-
if (nonEmptyLines.length > 0 && this.shouldShowPreview(active?.call.name)) {
|
|
62
|
-
const preview = this.formatOutputPreview(output, active?.call.name, 4);
|
|
63
|
-
if (preview) {
|
|
64
|
-
// Show preview as continuation (more indented)
|
|
65
|
-
this.display.showSystemMessage(preview);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
this.activeTools.delete(callId);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Determine if we should show output preview for this tool
|
|
72
|
-
*/
|
|
73
|
-
shouldShowPreview(toolName) {
|
|
74
|
-
if (!toolName)
|
|
75
|
-
return false;
|
|
76
|
-
// Tools that should show previews
|
|
77
|
-
const showPreviewFor = new Set([
|
|
78
|
-
'Bash', 'bash', 'execute_bash',
|
|
79
|
-
'Grep', 'grep_search',
|
|
80
|
-
'Glob', 'list_files',
|
|
81
|
-
]);
|
|
82
|
-
return showPreviewFor.has(toolName);
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Format output preview with proper indentation
|
|
86
|
-
* Handles JSON, structured data, and plain text intelligently
|
|
87
|
-
*/
|
|
88
|
-
formatOutputPreview(output, _toolName, maxLines) {
|
|
89
|
-
const lines = output.split('\n').filter(l => l.trim());
|
|
90
|
-
if (lines.length === 0)
|
|
91
|
-
return null;
|
|
92
|
-
// Try to detect and format JSON
|
|
93
|
-
const jsonFormatted = this.tryFormatJSON(output);
|
|
94
|
-
if (jsonFormatted) {
|
|
95
|
-
return jsonFormatted;
|
|
96
|
-
}
|
|
97
|
-
// Show fewer lines for long content
|
|
98
|
-
const previewLines = lines.slice(0, Math.min(maxLines, lines.length));
|
|
99
|
-
const remaining = lines.length - previewLines.length;
|
|
100
|
-
// Format with indentation (continuing from ⎿ symbol)
|
|
101
|
-
const formatted = previewLines.map(line => {
|
|
102
|
-
// Truncate very long lines
|
|
103
|
-
if (line.length > 100) {
|
|
104
|
-
return ` ${line.slice(0, 97)}...`;
|
|
105
|
-
}
|
|
106
|
-
return ` ${line}`;
|
|
107
|
-
});
|
|
108
|
-
// Add ellipsis if there are more lines
|
|
109
|
-
if (remaining > 0) {
|
|
110
|
-
formatted.push(` ${theme.ui.muted(`… +${remaining} line${remaining === 1 ? '' : 's'} ${theme.ui.muted('(ctrl+o to expand)')}`)}`.trim());
|
|
111
|
-
}
|
|
112
|
-
return formatted.join('\n');
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Try to parse and format output as JSON
|
|
116
|
-
*/
|
|
117
|
-
tryFormatJSON(output) {
|
|
118
|
-
const trimmed = output.trim();
|
|
119
|
-
if (!trimmed.startsWith('{') && !trimmed.startsWith('[')) {
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
try {
|
|
123
|
-
const parsed = JSON.parse(trimmed);
|
|
124
|
-
const formatted = JSON.stringify(parsed, null, 2);
|
|
125
|
-
// Add basic syntax highlighting
|
|
126
|
-
const highlighted = formatted
|
|
127
|
-
.split('\n')
|
|
128
|
-
.slice(0, 10) // Limit to 10 lines for preview
|
|
129
|
-
.map(line => {
|
|
130
|
-
// Color keys
|
|
131
|
-
line = line.replace(/"([^"]+)":/g, (_, key) => `${theme.info(`"${key}"`)}: `);
|
|
132
|
-
// Color string values
|
|
133
|
-
line = line.replace(/: "([^"]*)"/g, (_, value) => `: ${theme.success(`"${value}"`)}`);
|
|
134
|
-
// Color numbers
|
|
135
|
-
line = line.replace(/: (\d+\.?\d*)/g, (_, num) => `: ${theme.warning(num)}`);
|
|
136
|
-
// Color booleans/null
|
|
137
|
-
line = line.replace(/: (true|false|null)/g, (_, bool) => `: ${theme.secondary(bool)}`);
|
|
138
|
-
return ` ${line}`;
|
|
139
|
-
})
|
|
140
|
-
.join('\n');
|
|
141
|
-
const totalLines = formatted.split('\n').length;
|
|
142
|
-
if (totalLines > 10) {
|
|
143
|
-
return `${highlighted}\n ${theme.ui.muted(`… +${totalLines - 10} lines (ctrl+o to expand)`)}`;
|
|
144
|
-
}
|
|
145
|
-
return highlighted;
|
|
146
|
-
}
|
|
147
|
-
catch {
|
|
148
|
-
return null;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Show tool error
|
|
153
|
-
*/
|
|
154
|
-
showToolError(callId, error) {
|
|
155
|
-
this.showToolResult(callId, error, 'error');
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Show diff output (for Edit/Write tools)
|
|
159
|
-
*/
|
|
160
|
-
showDiff(file, additions, removals, diff) {
|
|
161
|
-
// Show summary first (Claude Code style)
|
|
162
|
-
const summary = formatDiffSummary(file, additions, removals);
|
|
163
|
-
this.display.showSubAction(summary);
|
|
164
|
-
// Show formatted diff
|
|
165
|
-
const formatted = formatDiff(diff);
|
|
166
|
-
this.display.showSystemMessage(formatted);
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Show thinking indicator
|
|
170
|
-
*/
|
|
171
|
-
showThinking(durationMs) {
|
|
172
|
-
const formatted = formatThinking(durationMs, false);
|
|
173
|
-
this.display.showAction(formatted);
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Create a concise summary from tool output
|
|
177
|
-
* Parses output intelligently to extract meaningful information
|
|
178
|
-
*/
|
|
179
|
-
createResultSummary(toolName, output, status) {
|
|
180
|
-
if (status === 'error') {
|
|
181
|
-
return 'Error';
|
|
182
|
-
}
|
|
183
|
-
if (!toolName) {
|
|
184
|
-
return 'Completed';
|
|
185
|
-
}
|
|
186
|
-
const lines = output.split('\n');
|
|
187
|
-
const nonEmptyLines = lines.filter(l => l.trim());
|
|
188
|
-
// Tool-specific summaries
|
|
189
|
-
switch (toolName) {
|
|
190
|
-
case 'Read':
|
|
191
|
-
case 'read_file': {
|
|
192
|
-
const lineCount = nonEmptyLines.length;
|
|
193
|
-
return `Read ${lineCount} line${lineCount === 1 ? '' : 's'}`;
|
|
194
|
-
}
|
|
195
|
-
case 'Edit':
|
|
196
|
-
case 'edit_file': {
|
|
197
|
-
// Try to extract addition/removal counts from output
|
|
198
|
-
const addMatch = output.match(/(\d+) addition/);
|
|
199
|
-
const remMatch = output.match(/(\d+) removal/);
|
|
200
|
-
if (addMatch || remMatch) {
|
|
201
|
-
const parts = ['Updated'];
|
|
202
|
-
if (addMatch)
|
|
203
|
-
parts.push(`${addMatch[1]} addition${addMatch[1] === '1' ? '' : 's'}`);
|
|
204
|
-
if (remMatch) {
|
|
205
|
-
if (addMatch)
|
|
206
|
-
parts.push('and');
|
|
207
|
-
parts.push(`${remMatch[1]} removal${remMatch[1] === '1' ? '' : 's'}`);
|
|
208
|
-
}
|
|
209
|
-
return parts.join(' ');
|
|
210
|
-
}
|
|
211
|
-
return 'Updated file';
|
|
212
|
-
}
|
|
213
|
-
case 'Glob':
|
|
214
|
-
case 'list_files': {
|
|
215
|
-
const fileCount = nonEmptyLines.length;
|
|
216
|
-
if (fileCount === 0) {
|
|
217
|
-
return 'No files found';
|
|
218
|
-
}
|
|
219
|
-
return `Found ${fileCount} file${fileCount === 1 ? '' : 's'}`;
|
|
220
|
-
}
|
|
221
|
-
case 'Grep':
|
|
222
|
-
case 'grep_search': {
|
|
223
|
-
// Check output mode from result
|
|
224
|
-
if (output.includes(':')) {
|
|
225
|
-
// Content mode - count lines
|
|
226
|
-
const matchCount = nonEmptyLines.length;
|
|
227
|
-
return `Found ${matchCount} line${matchCount === 1 ? '' : 's'}`;
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
// Files mode - count files
|
|
231
|
-
const fileCount = nonEmptyLines.length;
|
|
232
|
-
return `Found ${fileCount} file${fileCount === 1 ? '' : 's'}`;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
case 'Bash':
|
|
236
|
-
case 'bash':
|
|
237
|
-
case 'execute_bash': {
|
|
238
|
-
// Try to parse command output for meaningful summary
|
|
239
|
-
if (nonEmptyLines.length === 0) {
|
|
240
|
-
return 'Completed';
|
|
241
|
-
}
|
|
242
|
-
// Check for common command patterns
|
|
243
|
-
const firstLine = nonEmptyLines[0];
|
|
244
|
-
if (!firstLine) {
|
|
245
|
-
return 'Completed';
|
|
246
|
-
}
|
|
247
|
-
// Git commands
|
|
248
|
-
if (firstLine.includes('On branch')) {
|
|
249
|
-
return 'Git status';
|
|
250
|
-
}
|
|
251
|
-
if (firstLine.includes('commit') || firstLine.includes('Author:')) {
|
|
252
|
-
return 'Git log';
|
|
253
|
-
}
|
|
254
|
-
// Build/test commands
|
|
255
|
-
if (output.includes('error TS') || output.includes('error:')) {
|
|
256
|
-
const errorCount = (output.match(/error/gi) || []).length;
|
|
257
|
-
return `${errorCount} error${errorCount === 1 ? '' : 's'}`;
|
|
258
|
-
}
|
|
259
|
-
if (output.includes('passing') || output.includes('✓')) {
|
|
260
|
-
return 'Tests passed';
|
|
261
|
-
}
|
|
262
|
-
// Default to first line or "Completed"
|
|
263
|
-
if (firstLine.length <= 40) {
|
|
264
|
-
return firstLine;
|
|
265
|
-
}
|
|
266
|
-
return 'Completed';
|
|
267
|
-
}
|
|
268
|
-
case 'WebFetch':
|
|
269
|
-
case 'web_fetch':
|
|
270
|
-
return 'Content fetched';
|
|
271
|
-
case 'WebSearch':
|
|
272
|
-
case 'web_search': {
|
|
273
|
-
// Count search results
|
|
274
|
-
const resultMatch = output.match(/(\d+) results?/i);
|
|
275
|
-
if (resultMatch) {
|
|
276
|
-
return `Found ${resultMatch[1]} results`;
|
|
277
|
-
}
|
|
278
|
-
return 'Results retrieved';
|
|
279
|
-
}
|
|
280
|
-
case 'Task':
|
|
281
|
-
case 'SubAgent': {
|
|
282
|
-
// For task/subagent, try to extract completion message
|
|
283
|
-
const lastLine = nonEmptyLines[nonEmptyLines.length - 1];
|
|
284
|
-
if (lastLine && lastLine.length <= 50) {
|
|
285
|
-
return lastLine;
|
|
286
|
-
}
|
|
287
|
-
return 'Task completed';
|
|
288
|
-
}
|
|
289
|
-
default:
|
|
290
|
-
// Generic fallback - try to use first meaningful line
|
|
291
|
-
if (nonEmptyLines.length > 0) {
|
|
292
|
-
const firstLine = nonEmptyLines[0];
|
|
293
|
-
if (firstLine && firstLine.length <= 40) {
|
|
294
|
-
return firstLine;
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
return 'Completed';
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
/**
|
|
301
|
-
* Parse diff output into structured format
|
|
302
|
-
*/
|
|
303
|
-
static parseDiffOutput(diffText) {
|
|
304
|
-
const lines = [];
|
|
305
|
-
let additions = 0;
|
|
306
|
-
let removals = 0;
|
|
307
|
-
const diffLines = diffText.split('\n');
|
|
308
|
-
let currentLineNum = 0;
|
|
309
|
-
for (const line of diffLines) {
|
|
310
|
-
// Check for line number prefix (e.g., " 42→" or " 42 ")
|
|
311
|
-
const lineNumMatch = line.match(/^\s*(\d+)[→\s]/);
|
|
312
|
-
if (lineNumMatch && lineNumMatch[1]) {
|
|
313
|
-
currentLineNum = parseInt(lineNumMatch[1], 10);
|
|
314
|
-
}
|
|
315
|
-
// Detect diff type
|
|
316
|
-
if (line.trim().startsWith('+') && !line.startsWith('+++')) {
|
|
317
|
-
additions++;
|
|
318
|
-
lines.push({
|
|
319
|
-
lineNumber: currentLineNum,
|
|
320
|
-
type: 'add',
|
|
321
|
-
content: line.replace(/^\s*\d+[→\s]\s*\+\s*/, ''),
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
|
-
else if (line.trim().startsWith('-') && !line.startsWith('---')) {
|
|
325
|
-
removals++;
|
|
326
|
-
lines.push({
|
|
327
|
-
lineNumber: currentLineNum,
|
|
328
|
-
type: 'remove',
|
|
329
|
-
content: line.replace(/^\s*\d+[→\s]\s*-\s*/, ''),
|
|
330
|
-
});
|
|
331
|
-
}
|
|
332
|
-
else if (line.trim().startsWith('@@')) {
|
|
333
|
-
lines.push({
|
|
334
|
-
type: 'info',
|
|
335
|
-
content: line,
|
|
336
|
-
});
|
|
337
|
-
}
|
|
338
|
-
else if (lineNumMatch) {
|
|
339
|
-
lines.push({
|
|
340
|
-
lineNumber: currentLineNum,
|
|
341
|
-
type: 'context',
|
|
342
|
-
content: line.replace(/^\s*\d+[→\s]\s*/, ''),
|
|
343
|
-
});
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
return { additions, removals, lines };
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
/**
|
|
350
|
-
* Enhanced display for tool executions
|
|
351
|
-
* Wraps Display with Claude Code style formatting
|
|
352
|
-
*/
|
|
353
|
-
export function createToolDisplayAdapter(display) {
|
|
354
|
-
return new ToolDisplayAdapter(display);
|
|
355
|
-
}
|
|
356
|
-
//# sourceMappingURL=toolDisplayAdapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toolDisplayAdapter.js","sourceRoot":"","sources":["../../src/ui/toolDisplayAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tree Visualizer - Claude Code style
|
|
3
|
-
* ASCII tree visualization for hierarchical data
|
|
4
|
-
*/
|
|
5
|
-
export interface TreeNode {
|
|
6
|
-
label: string;
|
|
7
|
-
children?: TreeNode[];
|
|
8
|
-
metadata?: string;
|
|
9
|
-
icon?: string;
|
|
10
|
-
highlighted?: boolean;
|
|
11
|
-
}
|
|
12
|
-
export interface TreeOptions {
|
|
13
|
-
showLines?: boolean;
|
|
14
|
-
colorizeDepth?: boolean;
|
|
15
|
-
maxDepth?: number;
|
|
16
|
-
compact?: boolean;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Format hierarchical data as ASCII tree
|
|
20
|
-
* Example:
|
|
21
|
-
* src/
|
|
22
|
-
* ├── components/
|
|
23
|
-
* │ ├── Header.tsx
|
|
24
|
-
* │ └── Footer.tsx
|
|
25
|
-
* └── utils/
|
|
26
|
-
* └── helpers.ts
|
|
27
|
-
*/
|
|
28
|
-
export declare function formatTree(node: TreeNode, options?: TreeOptions, prefix?: string, isLast?: boolean, depth?: number): string;
|
|
29
|
-
/**
|
|
30
|
-
* Format file system tree
|
|
31
|
-
*/
|
|
32
|
-
export declare function formatFileTree(paths: string[], options?: TreeOptions): string;
|
|
33
|
-
/**
|
|
34
|
-
* Format dependency tree
|
|
35
|
-
*/
|
|
36
|
-
export declare function formatDependencyTree(packageName: string, dependencies: Record<string, string[]>, options?: TreeOptions): string;
|
|
37
|
-
/**
|
|
38
|
-
* Format simple bulleted list as tree
|
|
39
|
-
*/
|
|
40
|
-
export declare function formatBulletTree(items: Array<{
|
|
41
|
-
label: string;
|
|
42
|
-
items?: Array<any>;
|
|
43
|
-
}>, indent?: number): string;
|
|
44
|
-
/**
|
|
45
|
-
* Format git branch tree
|
|
46
|
-
*/
|
|
47
|
-
export declare function formatBranchTree(branches: Array<{
|
|
48
|
-
name: string;
|
|
49
|
-
parent?: string;
|
|
50
|
-
current?: boolean;
|
|
51
|
-
}>): string;
|
|
52
|
-
/**
|
|
53
|
-
* Format directory summary with counts
|
|
54
|
-
*/
|
|
55
|
-
export declare function formatDirectorySummary(paths: string[]): string;
|
|
56
|
-
//# sourceMappingURL=treeVisualizer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"treeVisualizer.d.ts","sourceRoot":"","sources":["../../src/ui/treeVisualizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,QAAQ,EACd,OAAO,GAAE,WAAgB,EACzB,MAAM,SAAK,EACX,MAAM,UAAO,EACb,KAAK,SAAI,GACR,MAAM,CAkDR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,GAAE,WAAgB,GACxB,MAAM,CAGR;AAiFD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACtC,OAAO,GAAE,WAAgB,GACxB,MAAM,CA8BR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;CAAE,CAAC,EACnD,MAAM,SAAI,GACT,MAAM,CAaR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG,MAAM,CAgC9G;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAgC9D"}
|