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,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"}