erosolar-cli 1.7.368 → 1.7.369
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/capabilities/learnCapability.d.ts +8 -1
- package/dist/capabilities/learnCapability.d.ts.map +1 -1
- package/dist/capabilities/learnCapability.js +8 -2
- package/dist/capabilities/learnCapability.js.map +1 -1
- package/dist/shell/terminalInput.d.ts +13 -3
- package/dist/shell/terminalInput.d.ts.map +1 -1
- package/dist/shell/terminalInput.js +78 -49
- package/dist/shell/terminalInput.js.map +1 -1
- package/dist/tools/localExplore.d.ts +63 -7
- package/dist/tools/localExplore.d.ts.map +1 -1
- package/dist/tools/localExplore.js +176 -22
- package/dist/tools/localExplore.js.map +1 -1
- package/dist/ui/ShellUIAdapter.d.ts +1 -0
- package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
- package/dist/ui/ShellUIAdapter.js +43 -3
- package/dist/ui/ShellUIAdapter.js.map +1 -1
- package/dist/ui/toolDisplay.d.ts.map +1 -1
- package/dist/ui/toolDisplay.js +33 -1
- package/dist/ui/toolDisplay.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import type { CapabilityContribution, CapabilityContext, CapabilityModule } from '../runtime/agentHost.js';
|
|
2
|
+
import { type AIEnhancer } from '../tools/localExplore.js';
|
|
2
3
|
export interface LearnCapabilityOptions {
|
|
3
4
|
workingDir?: string;
|
|
4
5
|
id?: string;
|
|
5
6
|
description?: string;
|
|
6
|
-
/** Include local explore tools (Claude Code-style exploration
|
|
7
|
+
/** Include local explore tools (Claude Code-style exploration) */
|
|
7
8
|
includeExplore?: boolean;
|
|
9
|
+
/** Optional AI enhancer function for improved exploration results */
|
|
10
|
+
aiEnhancer?: AIEnhancer;
|
|
11
|
+
/** Enable AI query parsing (default: true if aiEnhancer provided) */
|
|
12
|
+
aiQueryParsing?: boolean;
|
|
13
|
+
/** Enable AI result summarization (default: true if aiEnhancer provided) */
|
|
14
|
+
aiSummarization?: boolean;
|
|
8
15
|
}
|
|
9
16
|
export declare class LearnCapabilityModule implements CapabilityModule {
|
|
10
17
|
readonly id = "capability.learn";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learnCapability.d.ts","sourceRoot":"","sources":["../../src/capabilities/learnCapability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"learnCapability.d.ts","sourceRoot":"","sources":["../../src/capabilities/learnCapability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3G,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEpF,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qEAAqE;IACrE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,qEAAqE;IACrE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,qBAAsB,YAAW,gBAAgB;IAC5D,QAAQ,CAAC,EAAE,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAErC,OAAO,GAAE,sBAA2B;IAI1C,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CA6B1E"}
|
|
@@ -11,11 +11,16 @@ export class LearnCapabilityModule {
|
|
|
11
11
|
const includeExplore = this.options.includeExplore !== false; // Default to true
|
|
12
12
|
// Combine learn tools with local explore tools
|
|
13
13
|
const learnTools = createLearnTools(workingDir);
|
|
14
|
-
const exploreTools = includeExplore ? createLocalExploreTools(workingDir
|
|
14
|
+
const exploreTools = includeExplore ? createLocalExploreTools(workingDir, {
|
|
15
|
+
workingDir,
|
|
16
|
+
aiEnhancer: this.options.aiEnhancer,
|
|
17
|
+
aiQueryParsing: this.options.aiQueryParsing,
|
|
18
|
+
aiSummarization: this.options.aiSummarization,
|
|
19
|
+
}) : [];
|
|
15
20
|
const allTools = [...learnTools, ...exploreTools];
|
|
16
21
|
return {
|
|
17
22
|
id: this.options.id ?? 'learn.tools.exploration',
|
|
18
|
-
description: this.options.description ?? 'Codebase exploration and learning tools for understanding project structure, patterns, and conventions. Includes Claude Code-style explore functionality
|
|
23
|
+
description: this.options.description ?? 'Codebase exploration and learning tools for understanding project structure, patterns, and conventions. Includes Claude Code-style explore functionality.',
|
|
19
24
|
toolSuite: {
|
|
20
25
|
id: 'learn',
|
|
21
26
|
description: 'Codebase learning and exploration',
|
|
@@ -24,6 +29,7 @@ export class LearnCapabilityModule {
|
|
|
24
29
|
metadata: {
|
|
25
30
|
workingDir,
|
|
26
31
|
hasExplore: includeExplore,
|
|
32
|
+
hasAIEnhancer: !!this.options.aiEnhancer,
|
|
27
33
|
},
|
|
28
34
|
};
|
|
29
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learnCapability.js","sourceRoot":"","sources":["../../src/capabilities/learnCapability.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"learnCapability.js","sourceRoot":"","sources":["../../src/capabilities/learnCapability.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAmB,MAAM,0BAA0B,CAAC;AAgBpF,MAAM,OAAO,qBAAqB;IACvB,EAAE,GAAG,kBAAkB,CAAC;IAChB,OAAO,CAAyB;IAEjD,YAAY,UAAkC,EAAE;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA0B;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;QACjE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,kBAAkB;QAEhF,+CAA+C;QAC/C,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,uBAAuB,CAAC,UAAU,EAAE;YACxE,UAAU;YACV,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YACnC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;YAC3C,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe;SAC9C,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACR,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC,CAAC;QAElD,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,yBAAyB;YAChD,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,2JAA2J;YACpM,SAAS,EAAE;gBACT,EAAE,EAAE,OAAO;gBACX,WAAW,EAAE,mCAAmC;gBAChD,KAAK,EAAE,QAAQ;aAChB;YACD,QAAQ,EAAE;gBACR,UAAU;gBACV,UAAU,EAAE,cAAc;gBAC1B,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;aACzC;SACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -250,10 +250,14 @@ export declare class TerminalInput extends EventEmitter {
|
|
|
250
250
|
*/
|
|
251
251
|
private buildMetaLines;
|
|
252
252
|
/**
|
|
253
|
-
* Build mode controls
|
|
253
|
+
* Build mode controls lines with all keyboard shortcuts.
|
|
254
254
|
* Shows status, all toggles, and contextual information.
|
|
255
255
|
* Enhanced with comprehensive feature status display.
|
|
256
256
|
*
|
|
257
|
+
* Returns multiple lines to ensure all context is visible during streaming:
|
|
258
|
+
* - Line 1 (during streaming): Status/spinner + interrupt shortcut
|
|
259
|
+
* - Line 2: Mode toggles (edit, verify, auto-continue, thinking)
|
|
260
|
+
*
|
|
257
261
|
* Format: [Key] Label:status · [Key] Label:status · context% · model
|
|
258
262
|
*/
|
|
259
263
|
private buildModeControls;
|
|
@@ -273,7 +277,7 @@ export declare class TerminalInput extends EventEmitter {
|
|
|
273
277
|
*/
|
|
274
278
|
getDebugUiSnapshot(width?: number): {
|
|
275
279
|
meta: string[];
|
|
276
|
-
controls: string;
|
|
280
|
+
controls: string[];
|
|
277
281
|
};
|
|
278
282
|
/**
|
|
279
283
|
* Force a re-render
|
|
@@ -315,7 +319,13 @@ export declare class TerminalInput extends EventEmitter {
|
|
|
315
319
|
*/
|
|
316
320
|
disableScrollRegion(): void;
|
|
317
321
|
/**
|
|
318
|
-
* Calculate chat box height.
|
|
322
|
+
* Calculate chat box height dynamically.
|
|
323
|
+
* Accounts for:
|
|
324
|
+
* - Meta lines (model, elapsed, tokens)
|
|
325
|
+
* - Divider
|
|
326
|
+
* - Input line(s)
|
|
327
|
+
* - Control lines (1 or 2 during streaming)
|
|
328
|
+
* - Buffer
|
|
319
329
|
*/
|
|
320
330
|
private getChatBoxHeight;
|
|
321
331
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminalInput.d.ts","sourceRoot":"","sources":["../../src/shell/terminalInput.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"terminalInput.d.ts","sourceRoot":"","sources":["../../src/shell/terminalInput.ts"],"names":[],"mappings":"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"}
|
|
@@ -637,10 +637,15 @@ export class TerminalInput extends EventEmitter {
|
|
|
637
637
|
this.write(' '.repeat(padding));
|
|
638
638
|
this.write(ESC.RESET);
|
|
639
639
|
}
|
|
640
|
-
// Mode controls
|
|
641
|
-
|
|
642
|
-
this.
|
|
643
|
-
|
|
640
|
+
// Mode controls lines with all keyboard shortcuts
|
|
641
|
+
// Can be multiple lines during streaming (status + toggles)
|
|
642
|
+
const controlLines = this.buildModeControls(cols);
|
|
643
|
+
let controlRow = currentRow + visibleLines.length;
|
|
644
|
+
for (const controlLine of controlLines) {
|
|
645
|
+
this.write(ESC.TO(controlRow, 1));
|
|
646
|
+
this.write(controlLine);
|
|
647
|
+
controlRow += 1;
|
|
648
|
+
}
|
|
644
649
|
// Restore scroll region and cursor
|
|
645
650
|
if (this.scrollRegionActive) {
|
|
646
651
|
// Restore scroll region
|
|
@@ -717,88 +722,98 @@ export class TerminalInput extends EventEmitter {
|
|
|
717
722
|
return [`${leftText}${' '.repeat(spacing)}${rightText}`];
|
|
718
723
|
}
|
|
719
724
|
/**
|
|
720
|
-
* Build mode controls
|
|
725
|
+
* Build mode controls lines with all keyboard shortcuts.
|
|
721
726
|
* Shows status, all toggles, and contextual information.
|
|
722
727
|
* Enhanced with comprehensive feature status display.
|
|
723
728
|
*
|
|
729
|
+
* Returns multiple lines to ensure all context is visible during streaming:
|
|
730
|
+
* - Line 1 (during streaming): Status/spinner + interrupt shortcut
|
|
731
|
+
* - Line 2: Mode toggles (edit, verify, auto-continue, thinking)
|
|
732
|
+
*
|
|
724
733
|
* Format: [Key] Label:status · [Key] Label:status · context% · model
|
|
725
734
|
*/
|
|
726
735
|
buildModeControls(cols) {
|
|
727
736
|
const width = Math.max(8, cols - 2);
|
|
728
|
-
const
|
|
729
|
-
|
|
737
|
+
const streamingActive = this.mode === 'streaming' || this.scrollRegionActive;
|
|
738
|
+
// === LINE 1: STATUS LINE (streaming status + interrupt) ===
|
|
739
|
+
const statusParts = [];
|
|
730
740
|
// Streaming indicator with animated spinner
|
|
731
741
|
if (this.streamingLabel) {
|
|
732
|
-
|
|
742
|
+
statusParts.push({ text: `◐ ${this.streamingLabel}`, tone: 'info' });
|
|
733
743
|
}
|
|
734
744
|
// Override status (warnings, errors)
|
|
735
745
|
if (this.overrideStatusMessage) {
|
|
736
|
-
|
|
746
|
+
statusParts.push({ text: `⚠ ${this.overrideStatusMessage}`, tone: 'warn' });
|
|
737
747
|
}
|
|
738
748
|
// Main status message
|
|
739
749
|
if (this.statusMessage) {
|
|
740
|
-
|
|
750
|
+
statusParts.push({ text: this.statusMessage, tone: this.streamingLabel ? 'muted' : 'info' });
|
|
741
751
|
}
|
|
742
|
-
// === KEYBOARD SHORTCUTS (Compact format: Key·Status) ===
|
|
743
752
|
// Interrupt shortcut (during streaming)
|
|
744
|
-
if (
|
|
745
|
-
|
|
753
|
+
if (streamingActive) {
|
|
754
|
+
statusParts.push({ text: `Escape:stop`, tone: 'warn' });
|
|
746
755
|
}
|
|
747
|
-
//
|
|
748
|
-
|
|
756
|
+
// Queued commands
|
|
757
|
+
if (this.queue.length > 0) {
|
|
758
|
+
const queueIcon = streamingActive ? '⏳' : '▸';
|
|
759
|
+
statusParts.push({ text: `${queueIcon}${this.queue.length} queued`, tone: 'info' });
|
|
760
|
+
}
|
|
761
|
+
// === LINE 2: MODE TOGGLES (always visible, same as before streaming) ===
|
|
762
|
+
const toggleParts = [];
|
|
763
|
+
// Edit mode toggle (Shift+Tab) - Full English key names for clarity
|
|
764
|
+
const editStatus = this.editMode === 'display-edits' ? '✓auto' : '?ask';
|
|
749
765
|
const editTone = this.editMode === 'display-edits' ? 'success' : 'muted';
|
|
750
|
-
|
|
751
|
-
// Verification toggle (Alt+V) -
|
|
752
|
-
const verifyStatus = this.verificationEnabled ? '✓' : '○';
|
|
753
|
-
|
|
754
|
-
text:
|
|
766
|
+
toggleParts.push({ text: `Shift+Tab:${editStatus}`, tone: editTone });
|
|
767
|
+
// Verification toggle (Alt+V) - Full English key names
|
|
768
|
+
const verifyStatus = this.verificationEnabled ? '✓on' : '○off';
|
|
769
|
+
toggleParts.push({
|
|
770
|
+
text: `Alt+V:${verifyStatus}`,
|
|
755
771
|
tone: this.verificationEnabled ? 'success' : 'muted'
|
|
756
772
|
});
|
|
757
|
-
// Auto-continue toggle (Alt+C) -
|
|
758
|
-
const autoStatus = this.autoContinueEnabled ? '↻' : '○';
|
|
759
|
-
|
|
760
|
-
text:
|
|
773
|
+
// Auto-continue toggle (Alt+C) - Full English key names
|
|
774
|
+
const autoStatus = this.autoContinueEnabled ? '↻on' : '○off';
|
|
775
|
+
toggleParts.push({
|
|
776
|
+
text: `Alt+C:${autoStatus}`,
|
|
761
777
|
tone: this.autoContinueEnabled ? 'info' : 'muted'
|
|
762
778
|
});
|
|
763
779
|
// Thinking mode toggle (if available)
|
|
764
780
|
if (this.thinkingModeLabel) {
|
|
765
|
-
const shortThinking = this.thinkingModeLabel.length >
|
|
766
|
-
? this.thinkingModeLabel.slice(0,
|
|
781
|
+
const shortThinking = this.thinkingModeLabel.length > 10
|
|
782
|
+
? this.thinkingModeLabel.slice(0, 8) + '..'
|
|
767
783
|
: this.thinkingModeLabel;
|
|
768
|
-
|
|
769
|
-
}
|
|
770
|
-
// === CONTEXTUAL INFO ===
|
|
771
|
-
// Queued commands
|
|
772
|
-
if (this.queue.length > 0) {
|
|
773
|
-
const queueIcon = this.mode === 'streaming' ? '⏳' : '▸';
|
|
774
|
-
leftParts.push({ text: `${queueIcon}${this.queue.length} queued`, tone: 'info' });
|
|
784
|
+
toggleParts.push({ text: `Alt+T:${shortThinking}`, tone: 'info' });
|
|
775
785
|
}
|
|
776
786
|
// Multi-line indicator
|
|
777
787
|
if (this.buffer.includes('\n')) {
|
|
778
788
|
const lineCount = this.buffer.split('\n').length;
|
|
779
|
-
|
|
789
|
+
toggleParts.push({ text: `${lineCount}L`, tone: 'muted' });
|
|
780
790
|
}
|
|
781
791
|
// Paste indicator
|
|
782
792
|
if (this.pastePlaceholders.length > 0) {
|
|
783
793
|
const latest = this.pastePlaceholders[this.pastePlaceholders.length - 1];
|
|
784
|
-
|
|
794
|
+
toggleParts.push({
|
|
785
795
|
text: `📋${latest.lineCount}L`,
|
|
786
796
|
tone: 'info',
|
|
787
797
|
});
|
|
788
798
|
}
|
|
789
|
-
//
|
|
790
|
-
|
|
791
|
-
//
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
799
|
+
// Build the output lines
|
|
800
|
+
const lines = [];
|
|
801
|
+
// During streaming: show status line first, then toggles line
|
|
802
|
+
// Not streaming: show combined or just toggles
|
|
803
|
+
if (streamingActive && statusParts.length > 0) {
|
|
804
|
+
lines.push(renderStatusLine(statusParts, width));
|
|
805
|
+
lines.push(renderStatusLine(toggleParts, width));
|
|
795
806
|
}
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
807
|
+
else if (statusParts.length > 0) {
|
|
808
|
+
// Not streaming but have status - combine on one line if possible
|
|
809
|
+
const combined = [...statusParts, ...toggleParts];
|
|
810
|
+
lines.push(renderStatusLine(combined, width));
|
|
811
|
+
}
|
|
812
|
+
else {
|
|
813
|
+
// No streaming, no status - just show toggles
|
|
814
|
+
lines.push(renderStatusLine(toggleParts, width));
|
|
815
|
+
}
|
|
816
|
+
return lines;
|
|
802
817
|
}
|
|
803
818
|
/**
|
|
804
819
|
* Render a mini context usage bar (5 chars)
|
|
@@ -996,10 +1011,24 @@ export class TerminalInput extends EventEmitter {
|
|
|
996
1011
|
// No-op: using pure floating approach
|
|
997
1012
|
}
|
|
998
1013
|
/**
|
|
999
|
-
* Calculate chat box height.
|
|
1014
|
+
* Calculate chat box height dynamically.
|
|
1015
|
+
* Accounts for:
|
|
1016
|
+
* - Meta lines (model, elapsed, tokens)
|
|
1017
|
+
* - Divider
|
|
1018
|
+
* - Input line(s)
|
|
1019
|
+
* - Control lines (1 or 2 during streaming)
|
|
1020
|
+
* - Buffer
|
|
1000
1021
|
*/
|
|
1001
1022
|
getChatBoxHeight() {
|
|
1002
|
-
|
|
1023
|
+
const streamingActive = this.mode === 'streaming' || this.scrollRegionActive;
|
|
1024
|
+
const hasStreamingStatus = this.streamingLabel || this.statusMessage || this.overrideStatusMessage;
|
|
1025
|
+
// Base: meta (1) + divider (1) + input (1) + buffer (1) = 4
|
|
1026
|
+
// Add control lines: 1 normally, 2 during streaming with status
|
|
1027
|
+
const controlLines = (streamingActive && hasStreamingStatus) ? 2 : 1;
|
|
1028
|
+
// Meta line only if we have model/elapsed info
|
|
1029
|
+
const hasMetaInfo = this.modelLabel || this.metaElapsedSeconds !== null || this.metaTokensUsed !== null;
|
|
1030
|
+
const metaLines = hasMetaInfo ? 1 : 0;
|
|
1031
|
+
return metaLines + 1 + 1 + controlLines + 1; // meta + divider + input + controls + buffer
|
|
1003
1032
|
}
|
|
1004
1033
|
/**
|
|
1005
1034
|
* @deprecated Use streamContent() instead
|