erosolar-cli 1.7.212 → 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.
Files changed (100) 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 +69 -15
  12. package/dist/shell/interactiveShell.js.map +1 -1
  13. package/dist/shell/streamingOutputManager.d.ts +1 -0
  14. package/dist/shell/streamingOutputManager.d.ts.map +1 -1
  15. package/dist/shell/streamingOutputManager.js +15 -4
  16. package/dist/shell/streamingOutputManager.js.map +1 -1
  17. package/dist/shell/terminalInput.d.ts +18 -1
  18. package/dist/shell/terminalInput.d.ts.map +1 -1
  19. package/dist/shell/terminalInput.js +68 -3
  20. package/dist/shell/terminalInput.js.map +1 -1
  21. package/dist/shell/terminalInputAdapter.d.ts +14 -0
  22. package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
  23. package/dist/shell/terminalInputAdapter.js +20 -0
  24. package/dist/shell/terminalInputAdapter.js.map +1 -1
  25. package/dist/tools/devTools.d.ts.map +1 -1
  26. package/dist/tools/devTools.js +0 -180
  27. package/dist/tools/devTools.js.map +1 -1
  28. package/dist/ui/display.d.ts +14 -2
  29. package/dist/ui/display.d.ts.map +1 -1
  30. package/dist/ui/display.js +56 -14
  31. package/dist/ui/display.js.map +1 -1
  32. package/dist/ui/globalWriteLock.d.ts +12 -0
  33. package/dist/ui/globalWriteLock.d.ts.map +1 -0
  34. package/dist/ui/globalWriteLock.js +35 -0
  35. package/dist/ui/globalWriteLock.js.map +1 -0
  36. package/package.json +1 -1
  37. package/dist/ui/FixedInputArea.d.ts +0 -108
  38. package/dist/ui/FixedInputArea.d.ts.map +0 -1
  39. package/dist/ui/FixedInputArea.js +0 -312
  40. package/dist/ui/FixedInputArea.js.map +0 -1
  41. package/dist/ui/advancedTheme.d.ts +0 -246
  42. package/dist/ui/advancedTheme.d.ts.map +0 -1
  43. package/dist/ui/advancedTheme.js +0 -478
  44. package/dist/ui/advancedTheme.js.map +0 -1
  45. package/dist/ui/collapsibleContent.d.ts +0 -57
  46. package/dist/ui/collapsibleContent.d.ts.map +0 -1
  47. package/dist/ui/collapsibleContent.js +0 -106
  48. package/dist/ui/collapsibleContent.js.map +0 -1
  49. package/dist/ui/diffViewer.d.ts +0 -42
  50. package/dist/ui/diffViewer.d.ts.map +0 -1
  51. package/dist/ui/diffViewer.js +0 -343
  52. package/dist/ui/diffViewer.js.map +0 -1
  53. package/dist/ui/gitDisplay.d.ts +0 -45
  54. package/dist/ui/gitDisplay.d.ts.map +0 -1
  55. package/dist/ui/gitDisplay.js +0 -215
  56. package/dist/ui/gitDisplay.js.map +0 -1
  57. package/dist/ui/gitFormatter.d.ts +0 -29
  58. package/dist/ui/gitFormatter.d.ts.map +0 -1
  59. package/dist/ui/gitFormatter.js +0 -203
  60. package/dist/ui/gitFormatter.js.map +0 -1
  61. package/dist/ui/keyboardShortcuts.d.ts +0 -49
  62. package/dist/ui/keyboardShortcuts.d.ts.map +0 -1
  63. package/dist/ui/keyboardShortcuts.js +0 -128
  64. package/dist/ui/keyboardShortcuts.js.map +0 -1
  65. package/dist/ui/logFormatter.d.ts +0 -70
  66. package/dist/ui/logFormatter.d.ts.map +0 -1
  67. package/dist/ui/logFormatter.js +0 -323
  68. package/dist/ui/logFormatter.js.map +0 -1
  69. package/dist/ui/outputSummarizer.d.ts +0 -52
  70. package/dist/ui/outputSummarizer.d.ts.map +0 -1
  71. package/dist/ui/outputSummarizer.js +0 -242
  72. package/dist/ui/outputSummarizer.js.map +0 -1
  73. package/dist/ui/progressBar.d.ts +0 -51
  74. package/dist/ui/progressBar.d.ts.map +0 -1
  75. package/dist/ui/progressBar.js +0 -153
  76. package/dist/ui/progressBar.js.map +0 -1
  77. package/dist/ui/progressIndicator.d.ts +0 -69
  78. package/dist/ui/progressIndicator.d.ts.map +0 -1
  79. package/dist/ui/progressIndicator.js +0 -145
  80. package/dist/ui/progressIndicator.js.map +0 -1
  81. package/dist/ui/streamingIndicators.d.ts +0 -42
  82. package/dist/ui/streamingIndicators.d.ts.map +0 -1
  83. package/dist/ui/streamingIndicators.js +0 -155
  84. package/dist/ui/streamingIndicators.js.map +0 -1
  85. package/dist/ui/tableFormatter.d.ts +0 -31
  86. package/dist/ui/tableFormatter.d.ts.map +0 -1
  87. package/dist/ui/tableFormatter.js +0 -186
  88. package/dist/ui/tableFormatter.js.map +0 -1
  89. package/dist/ui/thinkingTracker.d.ts +0 -51
  90. package/dist/ui/thinkingTracker.d.ts.map +0 -1
  91. package/dist/ui/thinkingTracker.js +0 -115
  92. package/dist/ui/thinkingTracker.js.map +0 -1
  93. package/dist/ui/toolDisplayAdapter.d.ts +0 -66
  94. package/dist/ui/toolDisplayAdapter.d.ts.map +0 -1
  95. package/dist/ui/toolDisplayAdapter.js +0 -356
  96. package/dist/ui/toolDisplayAdapter.js.map +0 -1
  97. package/dist/ui/treeVisualizer.d.ts +0 -56
  98. package/dist/ui/treeVisualizer.d.ts.map +0 -1
  99. package/dist/ui/treeVisualizer.js +0 -247
  100. package/dist/ui/treeVisualizer.js.map +0 -1
@@ -1,215 +0,0 @@
1
- /**
2
- * Git Display - Claude Code style
3
- * Enhanced git output formatting
4
- */
5
- import { theme } from './theme.js';
6
- export class GitDisplay {
7
- /**
8
- * Parse git status output
9
- */
10
- parseGitStatus(output) {
11
- const lines = output.split('\n');
12
- const status = {
13
- branch: 'unknown',
14
- modified: [],
15
- staged: [],
16
- untracked: [],
17
- deleted: [],
18
- renamed: [],
19
- };
20
- for (const line of lines) {
21
- // Branch info
22
- const branchMatch = line.match(/On branch (.+)/);
23
- if (branchMatch) {
24
- status.branch = branchMatch[1] || 'unknown';
25
- continue;
26
- }
27
- // Ahead/behind
28
- const aheadMatch = line.match(/Your branch is ahead.*by (\d+)/);
29
- if (aheadMatch) {
30
- status.ahead = parseInt(aheadMatch[1] || '0', 10);
31
- continue;
32
- }
33
- const behindMatch = line.match(/Your branch is behind.*by (\d+)/);
34
- if (behindMatch) {
35
- status.behind = parseInt(behindMatch[1] || '0', 10);
36
- continue;
37
- }
38
- // File statuses
39
- if (line.match(/^\s*M\s+/)) {
40
- const file = line.replace(/^\s*M\s+/, '').trim();
41
- status.modified.push(file);
42
- }
43
- else if (line.match(/^\s*A\s+/)) {
44
- const file = line.replace(/^\s*A\s+/, '').trim();
45
- status.staged.push(file);
46
- }
47
- else if (line.match(/^\?\?\s+/)) {
48
- const file = line.replace(/^\?\?\s+/, '').trim();
49
- status.untracked.push(file);
50
- }
51
- else if (line.match(/^\s*D\s+/)) {
52
- const file = line.replace(/^\s*D\s+/, '').trim();
53
- status.deleted.push(file);
54
- }
55
- else if (line.match(/^\s*R\s+/)) {
56
- const parts = line.replace(/^\s*R\s+/, '').split('->');
57
- if (parts.length === 2) {
58
- status.renamed.push({
59
- from: (parts[0] || '').trim(),
60
- to: (parts[1] || '').trim(),
61
- });
62
- }
63
- }
64
- }
65
- return status;
66
- }
67
- /**
68
- * Format git status in Claude Code style
69
- */
70
- formatGitStatus(status) {
71
- const lines = [];
72
- // Branch and sync status
73
- const branchLine = [theme.info(`On branch ${status.branch}`)];
74
- if (status.ahead) {
75
- branchLine.push(theme.success(`↑${status.ahead}`));
76
- }
77
- if (status.behind) {
78
- branchLine.push(theme.warning(`↓${status.behind}`));
79
- }
80
- lines.push(` ${branchLine.join(' ')}`);
81
- // File counts summary
82
- const counts = [];
83
- if (status.modified.length > 0) {
84
- counts.push(theme.warning(`Modified: ${status.modified.length}`));
85
- }
86
- if (status.staged.length > 0) {
87
- counts.push(theme.success(`Staged: ${status.staged.length}`));
88
- }
89
- if (status.untracked.length > 0) {
90
- counts.push(theme.secondary(`Untracked: ${status.untracked.length}`));
91
- }
92
- if (status.deleted.length > 0) {
93
- counts.push(theme.error(`Deleted: ${status.deleted.length}`));
94
- }
95
- if (counts.length > 0) {
96
- lines.push(` ${counts.join(' • ')}`);
97
- }
98
- else {
99
- lines.push(` ${theme.success('Working tree clean')}`);
100
- }
101
- return lines.join('\n');
102
- }
103
- /**
104
- * Format git diff stats (Claude Code style)
105
- */
106
- formatDiffStats(output) {
107
- const lines = output.split('\n');
108
- const stats = [];
109
- for (const line of lines) {
110
- const match = line.match(/\s*(\d+)\s+(\d+)\s+(.+)/);
111
- if (match) {
112
- stats.push({
113
- file: match[3] || '',
114
- additions: parseInt(match[1] || '0', 10),
115
- deletions: parseInt(match[2] || '0', 10),
116
- });
117
- }
118
- }
119
- if (stats.length === 0) {
120
- return theme.ui.muted(' No changes');
121
- }
122
- const totalAdditions = stats.reduce((sum, s) => sum + s.additions, 0);
123
- const totalDeletions = stats.reduce((sum, s) => sum + s.deletions, 0);
124
- const result = [];
125
- result.push(` ${theme.success(`+${totalAdditions}`)} ${theme.error(`-${totalDeletions}`)} across ${stats.length} file${stats.length > 1 ? 's' : ''}`);
126
- // Show top files
127
- const topFiles = stats.slice(0, 5);
128
- for (const file of topFiles) {
129
- const bar = this.createDiffBar(file.additions, file.deletions, 10);
130
- const fileName = theme.ui.muted(file.file);
131
- const changes = `${theme.success(`+${file.additions}`)} ${theme.error(`-${file.deletions}`)}`;
132
- result.push(` ${bar} ${fileName} ${changes}`);
133
- }
134
- if (stats.length > 5) {
135
- const remaining = stats.length - 5;
136
- result.push(` ${theme.ui.muted(`… and ${remaining} more file${remaining > 1 ? 's' : ''}`)}`);
137
- }
138
- return result.join('\n');
139
- }
140
- /**
141
- * Create visual diff bar
142
- */
143
- createDiffBar(additions, deletions, width) {
144
- const total = additions + deletions;
145
- if (total === 0)
146
- return theme.ui.muted('─'.repeat(width));
147
- const addedWidth = Math.round((additions / total) * width);
148
- const deletedWidth = width - addedWidth;
149
- return theme.success('▓'.repeat(addedWidth)) + theme.error('▓'.repeat(deletedWidth));
150
- }
151
- /**
152
- * Format git log output (Claude Code style)
153
- */
154
- formatGitLog(output, maxCommits = 5) {
155
- const lines = output.split('\n');
156
- const commits = [];
157
- let currentCommit = null;
158
- for (const line of lines) {
159
- const commitMatch = line.match(/^commit\s+([a-f0-9]+)/);
160
- if (commitMatch) {
161
- if (currentCommit) {
162
- commits.push(currentCommit);
163
- }
164
- currentCommit = {
165
- hash: (commitMatch[1] || '').slice(0, 7),
166
- message: '',
167
- };
168
- continue;
169
- }
170
- if (currentCommit) {
171
- const authorMatch = line.match(/^Author:\s+(.+)/);
172
- if (authorMatch) {
173
- currentCommit.author = authorMatch[1];
174
- continue;
175
- }
176
- const dateMatch = line.match(/^Date:\s+(.+)/);
177
- if (dateMatch) {
178
- currentCommit.date = dateMatch[1];
179
- continue;
180
- }
181
- if (line.trim() && !line.match(/^(commit|Author|Date):/)) {
182
- currentCommit.message = line.trim();
183
- }
184
- }
185
- }
186
- if (currentCommit) {
187
- commits.push(currentCommit);
188
- }
189
- const result = [];
190
- const displayCommits = commits.slice(0, maxCommits);
191
- for (const commit of displayCommits) {
192
- const hash = theme.warning(commit.hash);
193
- const message = theme.ui.text(commit.message || '(no message)');
194
- result.push(` ${hash} ${message}`);
195
- }
196
- if (commits.length > maxCommits) {
197
- const remaining = commits.length - maxCommits;
198
- result.push(` ${theme.ui.muted(`… and ${remaining} more commit${remaining > 1 ? 's' : ''}`)}`);
199
- }
200
- return result.join('\n');
201
- }
202
- /**
203
- * Detect if output is git-related
204
- */
205
- isGitOutput(output) {
206
- return output.includes('On branch') ||
207
- output.includes('git ') ||
208
- output.includes('commit ') ||
209
- output.includes('Author:') ||
210
- output.match(/^\s*[MAD?]\s+/m) !== null;
211
- }
212
- }
213
- // Singleton instance
214
- export const gitDisplay = new GitDisplay();
215
- //# sourceMappingURL=gitDisplay.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gitDisplay.js","sourceRoot":"","sources":["../../src/ui/gitDisplay.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- /**
2
- * Git Output Formatter - Claude Code style
3
- * Enhanced formatting for git command outputs
4
- */
5
- /**
6
- * Format git status output with colors
7
- */
8
- export declare function formatGitStatus(statusOutput: string): string;
9
- /**
10
- * Format git diff output with syntax highlighting
11
- */
12
- export declare function formatGitDiff(diffOutput: string): string;
13
- /**
14
- * Format git log output
15
- */
16
- export declare function formatGitLog(logOutput: string, compact?: boolean): string;
17
- /**
18
- * Format branch list
19
- */
20
- export declare function formatGitBranches(branchOutput: string): string;
21
- /**
22
- * Format git stash list
23
- */
24
- export declare function formatGitStash(stashOutput: string): string;
25
- /**
26
- * Create a compact git status summary
27
- */
28
- export declare function formatGitStatusSummary(statusOutput: string): string;
29
- //# sourceMappingURL=gitFormatter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gitFormatter.d.ts","sourceRoot":"","sources":["../../src/ui/gitFormatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CA0C5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAgCxD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,MAAM,CA8CvE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAmB9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAiB1D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAyBnE"}
@@ -1,203 +0,0 @@
1
- /**
2
- * Git Output Formatter - Claude Code style
3
- * Enhanced formatting for git command outputs
4
- */
5
- import { theme } from './theme.js';
6
- /**
7
- * Format git status output with colors
8
- */
9
- export function formatGitStatus(statusOutput) {
10
- const lines = statusOutput.split('\n');
11
- const formatted = [];
12
- for (const line of lines) {
13
- const trimmed = line.trim();
14
- // Branch information
15
- if (trimmed.startsWith('On branch')) {
16
- formatted.push(theme.info(line));
17
- }
18
- // Modified files
19
- else if (trimmed.startsWith('modified:')) {
20
- formatted.push(` ${theme.warning('M')} ${line.replace(/^\s*modified:\s*/, '')}`);
21
- }
22
- // New files
23
- else if (trimmed.startsWith('new file:')) {
24
- formatted.push(` ${theme.success('A')} ${line.replace(/^\s*new file:\s*/, '')}`);
25
- }
26
- // Deleted files
27
- else if (trimmed.startsWith('deleted:')) {
28
- formatted.push(` ${theme.error('D')} ${line.replace(/^\s*deleted:\s*/, '')}`);
29
- }
30
- // Renamed files
31
- else if (trimmed.startsWith('renamed:')) {
32
- formatted.push(` ${theme.info('R')} ${line.replace(/^\s*renamed:\s*/, '')}`);
33
- }
34
- // Untracked files
35
- else if (trimmed && !trimmed.includes(':') && lines[lines.indexOf(line) - 1]?.includes('Untracked files')) {
36
- formatted.push(` ${theme.ui.muted('?')} ${trimmed}`);
37
- }
38
- // Section headers
39
- else if (trimmed.endsWith(':')) {
40
- formatted.push(theme.bold(line));
41
- }
42
- // Empty lines and other
43
- else {
44
- formatted.push(theme.ui.muted(line));
45
- }
46
- }
47
- return formatted.join('\n');
48
- }
49
- /**
50
- * Format git diff output with syntax highlighting
51
- */
52
- export function formatGitDiff(diffOutput) {
53
- const lines = diffOutput.split('\n');
54
- const formatted = [];
55
- for (const line of lines) {
56
- // File headers
57
- if (line.startsWith('diff --git')) {
58
- formatted.push(theme.info(line));
59
- }
60
- // Index and mode lines
61
- else if (line.startsWith('index ') || line.startsWith('---') || line.startsWith('+++')) {
62
- formatted.push(theme.ui.muted(line));
63
- }
64
- // Hunk headers
65
- else if (line.startsWith('@@')) {
66
- formatted.push(theme.accent(line));
67
- }
68
- // Added lines
69
- else if (line.startsWith('+')) {
70
- formatted.push(theme.success(line));
71
- }
72
- // Removed lines
73
- else if (line.startsWith('-')) {
74
- formatted.push(theme.error(line));
75
- }
76
- // Context lines
77
- else {
78
- formatted.push(line);
79
- }
80
- }
81
- return formatted.join('\n');
82
- }
83
- /**
84
- * Format git log output
85
- */
86
- export function formatGitLog(logOutput, compact = false) {
87
- const lines = logOutput.split('\n');
88
- const formatted = [];
89
- let inCommit = false;
90
- for (const line of lines) {
91
- const trimmed = line.trim();
92
- // Commit hash
93
- if (trimmed.startsWith('commit ')) {
94
- const hash = trimmed.replace('commit ', '');
95
- formatted.push(theme.warning(`● ${hash.slice(0, 8)}`));
96
- inCommit = true;
97
- }
98
- // Author
99
- else if (trimmed.startsWith('Author:')) {
100
- const author = trimmed.replace('Author:', '').trim();
101
- if (!compact) {
102
- formatted.push(theme.ui.muted(` Author: ${author}`));
103
- }
104
- }
105
- // Date
106
- else if (trimmed.startsWith('Date:')) {
107
- const date = trimmed.replace('Date:', '').trim();
108
- if (!compact) {
109
- formatted.push(theme.ui.muted(` Date: ${date}`));
110
- }
111
- }
112
- // Commit message
113
- else if (inCommit && trimmed) {
114
- formatted.push(theme.bold(` ${trimmed}`));
115
- inCommit = false;
116
- }
117
- // Empty lines
118
- else if (!trimmed) {
119
- if (!compact) {
120
- formatted.push('');
121
- }
122
- }
123
- // Other lines
124
- else {
125
- formatted.push(theme.ui.muted(` ${line}`));
126
- }
127
- }
128
- return formatted.join('\n');
129
- }
130
- /**
131
- * Format branch list
132
- */
133
- export function formatGitBranches(branchOutput) {
134
- const lines = branchOutput.split('\n').filter(l => l.trim());
135
- const formatted = [];
136
- for (const line of lines) {
137
- const trimmed = line.trim();
138
- // Current branch
139
- if (trimmed.startsWith('*')) {
140
- const branch = trimmed.substring(2);
141
- formatted.push(` ${theme.success('●')} ${theme.bold(branch)} ${theme.ui.muted('(current)')}`);
142
- }
143
- // Other branches
144
- else {
145
- formatted.push(` ${theme.ui.muted('○')} ${trimmed}`);
146
- }
147
- }
148
- return formatted.join('\n');
149
- }
150
- /**
151
- * Format git stash list
152
- */
153
- export function formatGitStash(stashOutput) {
154
- const lines = stashOutput.split('\n').filter(l => l.trim());
155
- const formatted = [];
156
- lines.forEach((line) => {
157
- const match = line.match(/^(stash@\{(\d+)\}):(.+)$/);
158
- if (match) {
159
- const [, , num, message] = match;
160
- if (num && message) {
161
- formatted.push(` ${theme.info(num.padStart(2))} ${theme.ui.muted('│')} ${message.trim()}`);
162
- }
163
- }
164
- else {
165
- formatted.push(theme.ui.muted(` ${line}`));
166
- }
167
- });
168
- return formatted.join('\n');
169
- }
170
- /**
171
- * Create a compact git status summary
172
- */
173
- export function formatGitStatusSummary(statusOutput) {
174
- const lines = statusOutput.split('\n');
175
- let modified = 0;
176
- let added = 0;
177
- let deleted = 0;
178
- let untracked = 0;
179
- for (const line of lines) {
180
- if (line.includes('modified:'))
181
- modified++;
182
- if (line.includes('new file:'))
183
- added++;
184
- if (line.includes('deleted:'))
185
- deleted++;
186
- if (line.trim() && !line.includes(':') && lines[lines.indexOf(line) - 1]?.includes('Untracked'))
187
- untracked++;
188
- }
189
- const parts = [];
190
- if (modified > 0)
191
- parts.push(theme.warning(`${modified} modified`));
192
- if (added > 0)
193
- parts.push(theme.success(`${added} new`));
194
- if (deleted > 0)
195
- parts.push(theme.error(`${deleted} deleted`));
196
- if (untracked > 0)
197
- parts.push(theme.ui.muted(`${untracked} untracked`));
198
- if (parts.length === 0) {
199
- return theme.success('✓ Working directory clean');
200
- }
201
- return parts.join(theme.ui.muted(' · '));
202
- }
203
- //# sourceMappingURL=gitFormatter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gitFormatter.js","sourceRoot":"","sources":["../../src/ui/gitFormatter.ts"],"names":[],"mappings":"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"}
@@ -1,49 +0,0 @@
1
- /**
2
- * Keyboard Shortcuts Handler - Claude Code style
3
- * Handles interactive shortcuts: esc, ctrl+o, ctrl+t, ?
4
- */
5
- import readline from 'node:readline';
6
- export type ShortcutHandler = () => void | Promise<void>;
7
- export interface ShortcutHandlers {
8
- onEscape?: ShortcutHandler;
9
- onExpandToggle?: ShortcutHandler;
10
- onShowTodos?: ShortcutHandler;
11
- onHelp?: ShortcutHandler;
12
- onInterrupt?: ShortcutHandler;
13
- }
14
- export declare class KeyboardShortcutManager {
15
- private handlers;
16
- private enabled;
17
- /**
18
- * Register keyboard handlers with readline interface
19
- */
20
- register(rl: readline.Interface, handlers: ShortcutHandlers): void;
21
- /**
22
- * Unregister keyboard handlers
23
- */
24
- unregister(): void;
25
- /**
26
- * Handle keypress events
27
- */
28
- private handleKeypress;
29
- /**
30
- * Show available shortcuts (Claude Code style)
31
- */
32
- static formatShortcutsHelp(): string;
33
- /**
34
- * Format shortcut hint for display (Claude Code style)
35
- * Example: "(esc to interrupt · ctrl+o to expand · 5s)"
36
- */
37
- static formatShortcutHint(options: {
38
- showEsc?: boolean;
39
- showExpand?: boolean;
40
- showTodos?: boolean;
41
- elapsedSeconds?: number;
42
- }): string;
43
- /**
44
- * Check if shortcuts are enabled
45
- */
46
- isEnabled(): boolean;
47
- }
48
- export declare const keyboardShortcuts: KeyboardShortcutManager;
49
- //# sourceMappingURL=keyboardShortcuts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyboardShortcuts.d.ts","sourceRoot":"","sources":["../../src/ui/keyboardShortcuts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,eAAe,CAAC;AAGrC,MAAM,MAAM,eAAe,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,OAAO,CAAS;IAExB;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAmBlE;;OAEG;IACH,UAAU,IAAI,IAAI;IAclB;;OAEG;YACW,cAAc;IAkC5B;;OAEG;IACH,MAAM,CAAC,mBAAmB,IAAI,MAAM;IAsBpC;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACjC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,MAAM;IAwBV;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB;AAGD,eAAO,MAAM,iBAAiB,yBAAgC,CAAC"}
@@ -1,128 +0,0 @@
1
- /**
2
- * Keyboard Shortcuts Handler - Claude Code style
3
- * Handles interactive shortcuts: esc, ctrl+o, ctrl+t, ?
4
- */
5
- import readline from 'node:readline';
6
- import { theme } from './theme.js';
7
- export class KeyboardShortcutManager {
8
- handlers = {};
9
- enabled = false;
10
- /**
11
- * Register keyboard handlers with readline interface
12
- */
13
- register(rl, handlers) {
14
- this.handlers = handlers;
15
- this.enabled = true;
16
- // Enable raw mode for character-by-character input
17
- if (process.stdin.isTTY) {
18
- try {
19
- process.stdin.setRawMode(true);
20
- }
21
- catch {
22
- // EIO errors can occur - safe to continue without raw mode
23
- }
24
- }
25
- // Listen for keypress events
26
- readline.emitKeypressEvents(process.stdin, rl);
27
- process.stdin.on('keypress', this.handleKeypress.bind(this));
28
- }
29
- /**
30
- * Unregister keyboard handlers
31
- */
32
- unregister() {
33
- this.enabled = false;
34
- if (process.stdin.isTTY) {
35
- try {
36
- process.stdin.setRawMode(false);
37
- }
38
- catch {
39
- // EIO errors can occur - safe to ignore
40
- }
41
- }
42
- process.stdin.removeAllListeners('keypress');
43
- }
44
- /**
45
- * Handle keypress events
46
- */
47
- async handleKeypress(str, key) {
48
- if (!this.enabled || !key)
49
- return;
50
- // Escape key
51
- if (key.name === 'escape' && this.handlers.onEscape) {
52
- await this.handlers.onEscape();
53
- return;
54
- }
55
- // Ctrl+O - Expand/collapse
56
- if (key.ctrl && key.name === 'o' && this.handlers.onExpandToggle) {
57
- await this.handlers.onExpandToggle();
58
- return;
59
- }
60
- // Ctrl+T - Show todos
61
- if (key.ctrl && key.name === 't' && this.handlers.onShowTodos) {
62
- await this.handlers.onShowTodos();
63
- return;
64
- }
65
- // Ctrl+C - Interrupt
66
- if (key.ctrl && key.name === 'c' && this.handlers.onInterrupt) {
67
- await this.handlers.onInterrupt();
68
- return;
69
- }
70
- // ? - Help
71
- if (str === '?' && this.handlers.onHelp) {
72
- await this.handlers.onHelp();
73
- return;
74
- }
75
- }
76
- /**
77
- * Show available shortcuts (Claude Code style)
78
- */
79
- static formatShortcutsHelp() {
80
- const shortcuts = [
81
- { key: 'esc', description: 'Interrupt current operation' },
82
- { key: 'ctrl+o', description: 'Expand/collapse output sections' },
83
- { key: 'ctrl+t', description: 'Show todo list' },
84
- { key: '?', description: 'Show this help' },
85
- { key: 'ctrl+c', description: 'Clear input -> pause AI -> Exit' },
86
- ];
87
- const lines = [];
88
- lines.push(theme.primary('Keyboard Shortcuts:'));
89
- lines.push('');
90
- for (const { key, description } of shortcuts) {
91
- const keyText = theme.info(key.padEnd(10));
92
- const descText = theme.ui.muted(description);
93
- lines.push(` ${keyText} ${descText}`);
94
- }
95
- return lines.join('\n');
96
- }
97
- /**
98
- * Format shortcut hint for display (Claude Code style)
99
- * Example: "(esc to interrupt · ctrl+o to expand · 5s)"
100
- */
101
- static formatShortcutHint(options) {
102
- const hints = [];
103
- if (options.showEsc) {
104
- hints.push('esc to interrupt');
105
- }
106
- if (options.showExpand) {
107
- hints.push('ctrl+o to expand');
108
- }
109
- if (options.showTodos) {
110
- hints.push('ctrl+t to show todos');
111
- }
112
- if (options.elapsedSeconds !== undefined) {
113
- hints.push(`${options.elapsedSeconds}s`);
114
- }
115
- if (hints.length === 0)
116
- return '';
117
- return theme.ui.muted(`(${hints.join(' · ')})`);
118
- }
119
- /**
120
- * Check if shortcuts are enabled
121
- */
122
- isEnabled() {
123
- return this.enabled;
124
- }
125
- }
126
- // Singleton instance
127
- export const keyboardShortcuts = new KeyboardShortcutManager();
128
- //# sourceMappingURL=keyboardShortcuts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyboardShortcuts.js","sourceRoot":"","sources":["../../src/ui/keyboardShortcuts.ts"],"names":[],"mappings":"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"}