erosolar-cli 1.7.411 → 1.7.412
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/core/toolPreconditions.d.ts +1 -0
- package/dist/core/toolPreconditions.d.ts.map +1 -1
- package/dist/core/toolPreconditions.js +13 -4
- package/dist/core/toolPreconditions.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts +2 -19
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +28 -155
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/terminalInput.d.ts.map +1 -1
- package/dist/shell/terminalInput.js +2 -2
- package/dist/shell/terminalInput.js.map +1 -1
- package/dist/subagents/parallelAgentManager.d.ts.map +1 -1
- package/dist/subagents/parallelAgentManager.js +1 -2
- package/dist/subagents/parallelAgentManager.js.map +1 -1
- package/dist/tools/editTools.js +2 -2
- package/dist/tools/editTools.js.map +1 -1
- package/dist/ui/ShellUIAdapter.d.ts +3 -5
- package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
- package/dist/ui/ShellUIAdapter.js +15 -28
- package/dist/ui/ShellUIAdapter.js.map +1 -1
- package/dist/ui/display.d.ts.map +1 -1
- package/dist/ui/display.js +2 -3
- package/dist/ui/display.js.map +1 -1
- package/dist/ui/shortcutsHelp.d.ts +2 -12
- package/dist/ui/shortcutsHelp.d.ts.map +1 -1
- package/dist/ui/shortcutsHelp.js +6 -57
- package/dist/ui/shortcutsHelp.js.map +1 -1
- package/dist/ui/streamingFormatter.d.ts +6 -5
- package/dist/ui/streamingFormatter.d.ts.map +1 -1
- package/dist/ui/streamingFormatter.js +31 -22
- package/dist/ui/streamingFormatter.js.map +1 -1
- package/dist/ui/toolDisplay.d.ts +3 -3
- package/dist/ui/toolDisplay.d.ts.map +1 -1
- package/dist/ui/toolDisplay.js +5 -12
- package/dist/ui/toolDisplay.js.map +1 -1
- package/dist/ui/unified/layout.d.ts +0 -37
- package/dist/ui/unified/layout.d.ts.map +1 -1
- package/dist/ui/unified/layout.js +1 -169
- package/dist/ui/unified/layout.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shortcutsHelp.d.ts","sourceRoot":"","sources":["../../src/ui/shortcutsHelp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"shortcutsHelp.d.ts","sourceRoot":"","sources":["../../src/ui/shortcutsHelp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AA2DD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CA8B5C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAS7C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAiB7E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAY5E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAMrE"}
|
package/dist/ui/shortcutsHelp.js
CHANGED
|
@@ -8,10 +8,9 @@ const EROSOLAR_SHORTCUTS = [
|
|
|
8
8
|
title: 'Mode Toggles',
|
|
9
9
|
shortcuts: [
|
|
10
10
|
{ keys: 'Shift+Tab', description: 'Cycle edit mode (auto/ask/plan)' },
|
|
11
|
-
{ keys: 'Tab', description: '
|
|
11
|
+
{ keys: 'Tab', description: 'Toggle thinking (balanced/longer)' },
|
|
12
12
|
{ keys: 'Ctrl+Shift+V', description: 'Toggle verification' },
|
|
13
13
|
{ keys: 'Ctrl+Shift+C', description: 'Toggle auto-continue' },
|
|
14
|
-
{ keys: 'Ctrl+Shift+T', description: 'Cycle thinking mode' },
|
|
15
14
|
{ keys: 'Ctrl+Shift+E', description: 'Toggle edit permission mode' },
|
|
16
15
|
{ keys: 'Ctrl+Shift+X', description: 'Clear/compact context' },
|
|
17
16
|
],
|
|
@@ -102,63 +101,13 @@ export function formatQuickShortcuts() {
|
|
|
102
101
|
'? for help',
|
|
103
102
|
'/ for commands',
|
|
104
103
|
'ctrl+c to clear/pause',
|
|
104
|
+
'tab toggles thinking',
|
|
105
105
|
];
|
|
106
106
|
return hints.map(h => theme.ui.muted(h)).join(' · ');
|
|
107
107
|
}
|
|
108
|
-
/**
|
|
109
|
-
* Tips that rotate during streaming/thinking (Claude Code style)
|
|
110
|
-
* Format: "Tip: ..." shown below results
|
|
111
|
-
*/
|
|
112
|
-
const EROSOLAR_TIPS = [
|
|
113
|
-
'Hit shift+tab to cycle between default mode, auto-accept edit mode, and plan mode',
|
|
114
|
-
'Use ctrl+shift+V to toggle verification mode for safer code changes',
|
|
115
|
-
'Press PgUp/PgDn to scroll through output history',
|
|
116
|
-
'Use /model to switch between different AI models',
|
|
117
|
-
'Press ctrl+shift+C to toggle auto-continue for multi-step tasks',
|
|
118
|
-
'Use /tools to enable or disable specific capabilities',
|
|
119
|
-
'Press ctrl+shift+T to toggle between balanced and extended thinking',
|
|
120
|
-
'Use /help for a full list of commands and shortcuts',
|
|
121
|
-
'Press ctrl+c once to clear input, twice to pause AI',
|
|
122
|
-
'Use ⇧Enter to add newlines in multi-line input',
|
|
123
|
-
'Context usage shown as ctx:X% - watch for warnings above 80%',
|
|
124
|
-
'Run /compact to summarize and reduce context when running low',
|
|
125
|
-
'Use /session to save and restore conversation snapshots',
|
|
126
|
-
'Press ctrl+shift+X to trigger context compaction when needed',
|
|
127
|
-
'The ⎿ symbol shows nested results - expand with ctrl+o',
|
|
128
|
-
// New Claude Code style tips
|
|
129
|
-
'Press Esc+Esc to open the rewind menu and restore previous checkpoints',
|
|
130
|
-
'Use /rewind to go back to a previous state (code, conversation, or both)',
|
|
131
|
-
'Create EROSOLAR.md in your project for persistent context and preferences',
|
|
132
|
-
'Use @path/to/file in prompts to reference files directly',
|
|
133
|
-
'Use # prefix to quickly add notes to your project memory',
|
|
134
|
-
'Try /output-style to change how the AI responds (explanatory, learning, concise)',
|
|
135
|
-
'Run /cost to see detailed token usage and API cost breakdown',
|
|
136
|
-
'Use /vim to enable vim-style editing in the input',
|
|
137
|
-
'Press Tab to toggle between balanced and extended thinking',
|
|
138
|
-
'Use /memory to edit your EROSOLAR.md file directly',
|
|
139
|
-
'Checkpoints are automatically created before file changes for easy recovery',
|
|
140
|
-
];
|
|
141
|
-
let tipIndex = 0;
|
|
142
|
-
/**
|
|
143
|
-
* Get the next tip in rotation (Claude Code style)
|
|
144
|
-
* Returns: "Tip: Hit shift+tab to cycle between..."
|
|
145
|
-
*/
|
|
146
|
-
export function getNextTip() {
|
|
147
|
-
const tip = EROSOLAR_TIPS[tipIndex % EROSOLAR_TIPS.length];
|
|
148
|
-
tipIndex = (tipIndex + 1) % EROSOLAR_TIPS.length;
|
|
149
|
-
return `Tip: ${tip}`;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Format a tip for display (Claude Code style)
|
|
153
|
-
* Shows indented below results: " ⎿ Tip: ..."
|
|
154
|
-
*/
|
|
155
|
-
export function formatTip(tip) {
|
|
156
|
-
const tipText = tip || getNextTip();
|
|
157
|
-
return ` ${theme.ui.muted('⎿')} ${theme.ui.muted(tipText)}`;
|
|
158
|
-
}
|
|
159
108
|
/**
|
|
160
109
|
* Get the current edit mode description (Claude Code style)
|
|
161
|
-
* Format: "⏵⏵ accept edits on
|
|
110
|
+
* Format: "⏵⏵ accept edits on"
|
|
162
111
|
*/
|
|
163
112
|
export function formatEditModeIndicator(mode) {
|
|
164
113
|
const symbols = {
|
|
@@ -173,7 +122,7 @@ export function formatEditModeIndicator(mode) {
|
|
|
173
122
|
};
|
|
174
123
|
const symbol = symbols[mode] || '⏵⏵';
|
|
175
124
|
const label = labels[mode] || 'accept edits on';
|
|
176
|
-
return `${theme.info(symbol)} ${label}
|
|
125
|
+
return `${theme.info(symbol)} ${label}`;
|
|
177
126
|
}
|
|
178
127
|
/**
|
|
179
128
|
* Format a task in progress indicator (Claude Code style)
|
|
@@ -192,12 +141,12 @@ export function formatTaskInProgress(task, nextStep) {
|
|
|
192
141
|
}
|
|
193
142
|
/**
|
|
194
143
|
* Format a completed thought indicator (Claude Code style)
|
|
195
|
-
* Format: "∴ Thought for Xs
|
|
144
|
+
* Format: "∴ Thought for Xs"
|
|
196
145
|
*/
|
|
197
146
|
export function formatThoughtComplete(durationSeconds) {
|
|
198
147
|
const elapsed = durationSeconds < 60
|
|
199
148
|
? `${durationSeconds}s`
|
|
200
149
|
: `${Math.floor(durationSeconds / 60)}m ${durationSeconds % 60}s`;
|
|
201
|
-
return `${theme.info('∴')} Thought for ${elapsed}
|
|
150
|
+
return `${theme.info('∴')} Thought for ${elapsed}`;
|
|
202
151
|
}
|
|
203
152
|
//# sourceMappingURL=shortcutsHelp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shortcutsHelp.js","sourceRoot":"","sources":["../../src/ui/shortcutsHelp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAUjD,MAAM,kBAAkB,GAAoB;IAC1C;QACE,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE;YACT,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,iCAAiC,EAAE;YACrE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"shortcutsHelp.js","sourceRoot":"","sources":["../../src/ui/shortcutsHelp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* StreamingResponseFormatter
|
|
3
|
-
* Styles streaming chunks with a
|
|
4
|
-
* stay readable
|
|
3
|
+
* Styles streaming chunks with a simple vertical timeline (⏺ + indented text)
|
|
4
|
+
* so live responses stay readable without the heavy box-drawing borders.
|
|
5
5
|
*/
|
|
6
6
|
export declare class StreamingResponseFormatter {
|
|
7
|
-
private readonly
|
|
8
|
-
private readonly
|
|
9
|
-
private readonly footerLine;
|
|
7
|
+
private readonly bulletPrefix;
|
|
8
|
+
private readonly indentPrefix;
|
|
10
9
|
private lineOpen;
|
|
10
|
+
private startNewEvent;
|
|
11
|
+
private lastCharWasNewline;
|
|
11
12
|
constructor(columns?: number);
|
|
12
13
|
header(): string;
|
|
13
14
|
formatChunk(chunk: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamingFormatter.d.ts","sourceRoot":"","sources":["../../src/ui/streamingFormatter.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"streamingFormatter.d.ts","sourceRoot":"","sources":["../../src/ui/streamingFormatter.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,kBAAkB,CAAQ;gBAEtB,OAAO,CAAC,EAAE,MAAM;IAQ5B,MAAM,IAAI,MAAM;IAQhB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IA+BlC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;CAiB9B"}
|
|
@@ -1,29 +1,28 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { theme } from './theme.js';
|
|
2
2
|
/**
|
|
3
3
|
* StreamingResponseFormatter
|
|
4
|
-
* Styles streaming chunks with a
|
|
5
|
-
* stay readable
|
|
4
|
+
* Styles streaming chunks with a simple vertical timeline (⏺ + indented text)
|
|
5
|
+
* so live responses stay readable without the heavy box-drawing borders.
|
|
6
6
|
*/
|
|
7
7
|
export class StreamingResponseFormatter {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
footerLine;
|
|
8
|
+
bulletPrefix;
|
|
9
|
+
indentPrefix;
|
|
11
10
|
lineOpen = false;
|
|
11
|
+
startNewEvent = true;
|
|
12
|
+
lastCharWasNewline = true;
|
|
12
13
|
constructor(columns) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const right = padding - left;
|
|
19
|
-
const headerRaw = `╭${'─'.repeat(left)} ${title} ${'─'.repeat(Math.max(0, right))}╮`;
|
|
20
|
-
const footerRaw = `╰${'─'.repeat(innerWidth)}╯`;
|
|
21
|
-
this.headerLine = theme.gradient.cool(headerRaw);
|
|
22
|
-
this.footerLine = theme.gradient.cool(footerRaw);
|
|
23
|
-
this.prefix = `${theme.ui.muted('│')} `;
|
|
14
|
+
// Columns are kept for compatibility with previous versions; currently unused
|
|
15
|
+
clamp(columns ?? 80, 48, 110);
|
|
16
|
+
this.bulletPrefix = `${theme.info('⏺')} `;
|
|
17
|
+
// Indent aligns with the bullet width to create a simple vertical flow
|
|
18
|
+
this.indentPrefix = ' ';
|
|
24
19
|
}
|
|
25
20
|
header() {
|
|
26
|
-
|
|
21
|
+
this.lineOpen = false;
|
|
22
|
+
this.startNewEvent = true;
|
|
23
|
+
this.lastCharWasNewline = true;
|
|
24
|
+
// Add a single blank line before the streaming content for spacing
|
|
25
|
+
return '\n';
|
|
27
26
|
}
|
|
28
27
|
formatChunk(chunk) {
|
|
29
28
|
if (!chunk) {
|
|
@@ -33,12 +32,20 @@ export class StreamingResponseFormatter {
|
|
|
33
32
|
let result = '';
|
|
34
33
|
for (const char of normalized) {
|
|
35
34
|
if (!this.lineOpen) {
|
|
36
|
-
|
|
35
|
+
const prefix = this.startNewEvent ? this.bulletPrefix : this.indentPrefix;
|
|
36
|
+
result += prefix;
|
|
37
37
|
this.lineOpen = true;
|
|
38
|
+
this.startNewEvent = false;
|
|
38
39
|
}
|
|
39
40
|
result += char;
|
|
40
41
|
if (char === '\n') {
|
|
42
|
+
// If we see consecutive newlines, treat the next line as a new event
|
|
43
|
+
this.startNewEvent = this.lastCharWasNewline;
|
|
41
44
|
this.lineOpen = false;
|
|
45
|
+
this.lastCharWasNewline = true;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this.lastCharWasNewline = false;
|
|
42
49
|
}
|
|
43
50
|
}
|
|
44
51
|
return result;
|
|
@@ -46,13 +53,15 @@ export class StreamingResponseFormatter {
|
|
|
46
53
|
finish(note) {
|
|
47
54
|
const lines = [];
|
|
48
55
|
if (this.lineOpen) {
|
|
49
|
-
lines.push('');
|
|
56
|
+
lines.push(''); // close the current line cleanly
|
|
50
57
|
this.lineOpen = false;
|
|
51
58
|
}
|
|
52
59
|
if (note) {
|
|
53
|
-
|
|
60
|
+
const prefix = this.startNewEvent ? this.bulletPrefix : this.indentPrefix;
|
|
61
|
+
lines.push(`${prefix}${theme.warning(note)}`);
|
|
54
62
|
}
|
|
55
|
-
|
|
63
|
+
// Always end with a trailing newline for consistent spacing
|
|
64
|
+
lines.push('');
|
|
56
65
|
return `${lines.join('\n')}\n`;
|
|
57
66
|
}
|
|
58
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamingFormatter.js","sourceRoot":"","sources":["../../src/ui/streamingFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"streamingFormatter.js","sourceRoot":"","sources":["../../src/ui/streamingFormatter.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/toolDisplay.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ export declare function formatToolCall(call: ToolCallDisplay, options?: {
|
|
|
42
42
|
*
|
|
43
43
|
* Example output:
|
|
44
44
|
* ⎿ Read 340 lines
|
|
45
|
-
* ⎿ Found 15 lines
|
|
45
|
+
* ⎿ Found 15 lines
|
|
46
46
|
* ⎿ Completed
|
|
47
47
|
*/
|
|
48
48
|
export declare function formatToolResult(result: ToolResultDisplay, options?: {
|
|
@@ -53,7 +53,7 @@ export declare function formatToolResult(result: ToolResultDisplay, options?: {
|
|
|
53
53
|
*
|
|
54
54
|
* Example:
|
|
55
55
|
* import { foo } from 'bar';
|
|
56
|
-
* … +312 lines
|
|
56
|
+
* … +312 lines
|
|
57
57
|
*/
|
|
58
58
|
export declare function formatExpandablePreview(content: string, maxLines?: number): {
|
|
59
59
|
preview: string;
|
|
@@ -96,7 +96,7 @@ export declare function formatTokenUsage(percentage: number, tokens?: number): s
|
|
|
96
96
|
export declare function formatDuration(ms: number): string;
|
|
97
97
|
/**
|
|
98
98
|
* Create a "thinking" indicator
|
|
99
|
-
* Example: "∴ Thinking…" or "∴ Thought for 2s
|
|
99
|
+
* Example: "∴ Thinking…" or "∴ Thought for 2s"
|
|
100
100
|
*/
|
|
101
101
|
export declare function formatThinking(durationMs?: number, hasContent?: boolean): string;
|
|
102
102
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDisplay.d.ts","sourceRoot":"","sources":["../../src/ui/toolDisplay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,eAAe,EACrB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GACxC,MAAM,CASR;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GACxC,MAAM,
|
|
1
|
+
{"version":3,"file":"toolDisplay.d.ts","sourceRoot":"","sources":["../../src/ui/toolDisplay.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/toolDisplay.js
CHANGED
|
@@ -31,7 +31,7 @@ export function formatToolCall(call, options = {}) {
|
|
|
31
31
|
*
|
|
32
32
|
* Example output:
|
|
33
33
|
* ⎿ Read 340 lines
|
|
34
|
-
* ⎿ Found 15 lines
|
|
34
|
+
* ⎿ Found 15 lines
|
|
35
35
|
* ⎿ Completed
|
|
36
36
|
*/
|
|
37
37
|
export function formatToolResult(result, options = {}) {
|
|
@@ -42,11 +42,6 @@ export function formatToolResult(result, options = {}) {
|
|
|
42
42
|
: `${theme.success('⎿')} `
|
|
43
43
|
: '';
|
|
44
44
|
let output = `${prefix}${result.summary}`;
|
|
45
|
-
// Add expandable indicator if there's hidden content
|
|
46
|
-
if (result.totalLines && result.linesShown && result.totalLines > result.linesShown) {
|
|
47
|
-
const expandHint = theme.ui.muted('(ctrl+o to expand)');
|
|
48
|
-
output += ` ${expandHint}`;
|
|
49
|
-
}
|
|
50
45
|
return output;
|
|
51
46
|
}
|
|
52
47
|
/**
|
|
@@ -185,7 +180,7 @@ function truncatePathForDisplay(path, maxLength) {
|
|
|
185
180
|
*
|
|
186
181
|
* Example:
|
|
187
182
|
* import { foo } from 'bar';
|
|
188
|
-
* … +312 lines
|
|
183
|
+
* … +312 lines
|
|
189
184
|
*/
|
|
190
185
|
export function formatExpandablePreview(content, maxLines = 5) {
|
|
191
186
|
const lines = content.split('\n');
|
|
@@ -201,8 +196,7 @@ export function formatExpandablePreview(content, maxLines = 5) {
|
|
|
201
196
|
const previewLines = lines.slice(0, maxLines);
|
|
202
197
|
const remainingLines = totalLines - maxLines;
|
|
203
198
|
const ellipsis = theme.ui.muted(`… +${remainingLines} lines`);
|
|
204
|
-
|
|
205
|
-
previewLines.push(`${ellipsis} ${hint}`);
|
|
199
|
+
previewLines.push(`${ellipsis}`);
|
|
206
200
|
return {
|
|
207
201
|
preview: previewLines.join('\n'),
|
|
208
202
|
isExpanded: false,
|
|
@@ -330,7 +324,7 @@ export function formatDuration(ms) {
|
|
|
330
324
|
}
|
|
331
325
|
/**
|
|
332
326
|
* Create a "thinking" indicator
|
|
333
|
-
* Example: "∴ Thinking…" or "∴ Thought for 2s
|
|
327
|
+
* Example: "∴ Thinking…" or "∴ Thought for 2s"
|
|
334
328
|
*/
|
|
335
329
|
export function formatThinking(durationMs, hasContent = false) {
|
|
336
330
|
const symbol = theme.info('∴');
|
|
@@ -338,8 +332,7 @@ export function formatThinking(durationMs, hasContent = false) {
|
|
|
338
332
|
return `${symbol} Thinking…`;
|
|
339
333
|
}
|
|
340
334
|
const duration = formatDuration(durationMs);
|
|
341
|
-
|
|
342
|
-
return `${symbol} Thought for ${duration}${hint ? ` ${hint}` : ''}`;
|
|
335
|
+
return `${symbol} Thought for ${duration}`;
|
|
343
336
|
}
|
|
344
337
|
/**
|
|
345
338
|
* Format status line at bottom
|