erosolar-cli 1.7.116 → 1.7.118

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.
@@ -1,42 +1,56 @@
1
1
  /**
2
- * EnhancedInteractiveShell - Extends InteractiveShell with PersistentChatBox for better UX
2
+ * Enhanced Interactive Shell with Persistent Chat Box
3
3
  *
4
- * Key improvements:
5
- * - Persistent chat box remains visible during AI streaming
6
- * - Enhanced paste handling with summarization
7
- * - Only submits to AI when user explicitly hits Enter
4
+ * Extends the base InteractiveShell with enhanced persistent chat box features:
5
+ * - Always visible chat input during AI streaming
6
+ * - Graceful paste handling with summaries
7
+ * - Input history navigation
8
+ * - Visual feedback during streaming
8
9
  */
9
- import { InteractiveShell, type ShellConfig } from './interactiveShell.js';
10
+ import { InteractiveShell } from './interactiveShell.js';
11
+ import type { ShellConfig } from './shellApp.js';
10
12
  export declare class EnhancedInteractiveShell extends InteractiveShell {
11
- private persistentChatBox;
13
+ private enhancedChatBox;
12
14
  constructor(config: ShellConfig);
13
15
  /**
14
- * Override the processRequest method to integrate persistent chat box during streaming
16
+ * Enhanced start method that activates the persistent chat box
15
17
  */
16
- protected processRequest(request: any): Promise<void>;
18
+ start(initialPrompt?: string): Promise<void>;
17
19
  /**
18
- * Override to handle enhanced paste detection
20
+ * Set streaming state for the chat box
19
21
  */
20
- protected handleBracketedPaste(content: string): void;
22
+ setStreaming(isStreaming: boolean): void;
21
23
  /**
22
- * Override to handle character input with enhanced paste detection
24
+ * Set processing state for the chat box
23
25
  */
24
- protected handleCharacter(char: string): void;
26
+ setProcessing(isProcessing: boolean): void;
25
27
  /**
26
- * Override to handle Enter key with enhanced submission logic
28
+ * Handle enhanced input from the chat box
27
29
  */
28
- protected handleEnter(): void;
30
+ handleEnhancedInput(input: string): void;
29
31
  /**
30
- * Override to integrate with persistent chat box
32
+ * Submit current input
31
33
  */
32
- protected setProcessingStatus(detail?: string): void;
34
+ submitInput(): void;
33
35
  /**
34
- * Override to update context usage in persistent chat box
36
+ * Cancel current input
35
37
  */
36
- protected refreshContextGauge(): void;
38
+ cancelInput(): void;
37
39
  /**
38
- * Override to ensure persistent chat box is properly disposed
40
+ * Navigate input history up
39
41
  */
40
- dispose(): Promise<void>;
42
+ navigateHistoryUp(): void;
43
+ /**
44
+ * Navigate input history down
45
+ */
46
+ navigateHistoryDown(): void;
47
+ /**
48
+ * Get user prompt format
49
+ */
50
+ private formatUserPrompt;
51
+ /**
52
+ * Override dispose to clean up enhanced chat box
53
+ */
54
+ dispose(): void;
41
55
  }
42
- //# sourceMappingURL=enhancedInteractiveShell.d.ts.map
56
+ //# sourceMappingURL=EnhancedInteractiveShell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enhancedInteractiveShell.d.ts","sourceRoot":"","sources":["../../src/shell/enhancedInteractiveShell.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAI3E,qBAAa,wBAAyB,SAAQ,gBAAgB;IAC5D,OAAO,CAAC,iBAAiB,CAAoB;gBAEjC,MAAM,EAAE,WAAW;IA4B/B;;OAEG;cACa,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA6D3D;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKrD;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI7C;;OAEG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IAQ7B;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQpD;;OAEG;IACH,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAQrC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAItC"}
1
+ {"version":3,"file":"EnhancedInteractiveShell.d.ts","sourceRoot":"","sources":["../../src/shell/EnhancedInteractiveShell.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,qBAAa,wBAAyB,SAAQ,gBAAgB;IAC5D,OAAO,CAAC,eAAe,CAAwB;gBAEnC,MAAM,EAAE,WAAW;IA+B/B;;OAEG;IACG,KAAK,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlD;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAIxC;;OAEG;IACH,aAAa,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI;IAI1C;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAI3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB"}
@@ -1,139 +1,110 @@
1
1
  /**
2
- * EnhancedInteractiveShell - Extends InteractiveShell with PersistentChatBox for better UX
2
+ * Enhanced Interactive Shell with Persistent Chat Box
3
3
  *
4
- * Key improvements:
5
- * - Persistent chat box remains visible during AI streaming
6
- * - Enhanced paste handling with summarization
7
- * - Only submits to AI when user explicitly hits Enter
4
+ * Extends the base InteractiveShell with enhanced persistent chat box features:
5
+ * - Always visible chat input during AI streaming
6
+ * - Graceful paste handling with summaries
7
+ * - Input history navigation
8
+ * - Visual feedback during streaming
8
9
  */
9
- import { stdout as output } from 'node:process';
10
10
  import { InteractiveShell } from './interactiveShell.js';
11
+ import { EnhancedPinnedChatBox } from '../ui/EnhancedPinnedChatBox.js';
11
12
  import { display } from '../ui/display.js';
12
- import { PersistentChatBox } from '../ui/persistentChatBox.js';
13
13
  export class EnhancedInteractiveShell extends InteractiveShell {
14
- persistentChatBox;
14
+ enhancedChatBox;
15
15
  constructor(config) {
16
16
  super(config);
17
- // Initialize persistent chat box for always-visible input during AI processing
18
- this.persistentChatBox = new PersistentChatBox(output, {
19
- onCommandQueued: (cmd) => {
20
- // Bridge to existing follow-up queue system
21
- this.followUpQueue.push({
22
- type: cmd.type === 'slash' ? 'request' : cmd.type,
23
- text: cmd.text,
24
- });
25
- this.refreshQueueIndicators();
26
- },
27
- onInputSubmit: (input) => {
28
- // Process the input through the normal flow
29
- this.processInputBlock(input).catch((err) => {
30
- display.showError(err instanceof Error ? err.message : String(err), err);
31
- });
32
- },
17
+ // Replace the standard pinned chat box with enhanced version
18
+ this.enhancedChatBox = new EnhancedPinnedChatBox(process.stdout, (input) => {
19
+ // Process the input through the normal flow
20
+ this.processInputBlock(input).catch((err) => {
21
+ display.showError(err instanceof Error ? err.message : String(err), err);
22
+ });
23
+ }, () => {
24
+ // Cancel callback
25
+ display.showInfo('Input cancelled');
26
+ }, {
27
+ enabled: true,
28
+ position: 1,
29
+ maxLines: 3,
30
+ showPasteSummaries: true,
31
+ autoScroll: true,
32
+ maxInputLength: 10000,
33
+ maxHistorySize: 100,
33
34
  });
34
- // Register persistent chat box with display's output interceptor system
35
- this.persistentChatBox.registerOutputInterceptor(display);
35
+ // Override the original pinnedChatBox reference
36
+ this.pinnedChatBox = this.enhancedChatBox;
36
37
  }
37
38
  /**
38
- * Override the processRequest method to integrate persistent chat box during streaming
39
+ * Enhanced start method that activates the persistent chat box
39
40
  */
40
- async processRequest(request) {
41
- const requestStartTime = Date.now();
42
- try {
43
- this.isProcessing = true;
44
- this.uiAdapter.beginProcessing();
45
- // Set streaming state on persistent chat box
46
- this.persistentChatBox.setStreaming(true);
47
- this.persistentChatBox.setProcessing(true);
48
- // Enable scroll region so streaming output scrolls while input stays at bottom
49
- this.persistentChatBox.enableScrollRegion();
50
- // Suppress readline echo so typed characters only appear in persistent input box
51
- this.suppressReadlineOutput();
52
- const agent = this.getAgent();
53
- // Enable streaming for real-time text output (Claude Code style)
54
- await agent.send(request, true);
55
- await this.awaitPendingCleanup();
56
- this.captureHistorySnapshot();
57
- this.autosaveIfEnabled();
58
- // Track metrics with Alpha Zero 2
59
- const elapsedMs = Date.now() - requestStartTime;
60
- this.alphaZeroMetrics.recordMessage(elapsedMs);
61
- }
62
- catch (error) {
63
- const handled = this.handleProviderError(error, () => this.processRequest(request));
64
- if (!handled) {
65
- // Pass full error object for enhanced formatting with stack trace
66
- display.showError(error instanceof Error ? error.message : String(error), error);
67
- }
68
- }
69
- finally {
70
- // Restore readline echo before other cleanup
71
- this.restoreReadlineOutput();
72
- // Disable scroll region before any other output to restore normal terminal behavior
73
- this.persistentChatBox.disableScrollRegion();
74
- display.stopThinking(false);
75
- this.isProcessing = false;
76
- this.uiAdapter.endProcessing('Ready for prompts');
77
- this.setIdleStatus();
41
+ async start(initialPrompt) {
42
+ // Always render the enhanced chat box at startup so it's visible from the beginning
43
+ this.enhancedChatBox.activate();
44
+ this.enhancedChatBox.forceRender();
45
+ if (initialPrompt) {
78
46
  display.newLine();
79
- // Clear the processing status and ensure persistent chat box is visible
80
- this.persistentChatBox.setStreaming(false);
81
- this.persistentChatBox.setProcessing(false);
82
- this.persistentChatBox.setStatusMessage(null);
83
- this.persistentChatBox.forceRender();
84
- // CRITICAL: Ensure readline prompt is active for user input
85
- // Call ensureReadlineReady to resume stdin if paused and re-enable keypress
86
- this.ensureReadlineReady();
87
- this.rl.prompt();
47
+ console.log(`${this.formatUserPrompt()}${initialPrompt}`);
48
+ await this.processInputBlock(initialPrompt);
49
+ return;
88
50
  }
51
+ // Start the normal readline prompt
52
+ this.rl.prompt();
89
53
  }
90
54
  /**
91
- * Override to handle enhanced paste detection
55
+ * Set streaming state for the chat box
92
56
  */
93
- handleBracketedPaste(content) {
94
- // Use enhanced paste handling from persistent chat box
95
- this.persistentChatBox.handlePaste(content);
57
+ setStreaming(isStreaming) {
58
+ this.enhancedChatBox.setStreaming(isStreaming);
96
59
  }
97
60
  /**
98
- * Override to handle character input with enhanced paste detection
61
+ * Set processing state for the chat box
99
62
  */
100
- handleCharacter(char) {
101
- this.persistentChatBox.handleCharacter(char);
63
+ setProcessing(isProcessing) {
64
+ this.enhancedChatBox.setProcessing(isProcessing);
102
65
  }
103
66
  /**
104
- * Override to handle Enter key with enhanced submission logic
67
+ * Handle enhanced input from the chat box
105
68
  */
106
- handleEnter() {
107
- const input = this.persistentChatBox.handleEnter();
108
- if (input) {
109
- // Input was submitted and processed
110
- this.rl.prompt();
111
- }
69
+ handleEnhancedInput(input) {
70
+ this.enhancedChatBox.setInput(input);
112
71
  }
113
72
  /**
114
- * Override to integrate with persistent chat box
73
+ * Submit current input
115
74
  */
116
- setProcessingStatus(detail) {
117
- super.setProcessingStatus(detail);
118
- if (detail) {
119
- this.persistentChatBox.setStatusMessage(detail);
120
- }
75
+ submitInput() {
76
+ this.enhancedChatBox.submit();
121
77
  }
122
78
  /**
123
- * Override to update context usage in persistent chat box
79
+ * Cancel current input
124
80
  */
125
- refreshContextGauge() {
126
- super.refreshContextGauge();
127
- if (this.contextUsage !== undefined) {
128
- this.persistentChatBox.setContextUsage(this.contextUsage);
129
- }
81
+ cancelInput() {
82
+ this.enhancedChatBox.cancel();
83
+ }
84
+ /**
85
+ * Navigate input history up
86
+ */
87
+ navigateHistoryUp() {
88
+ this.enhancedChatBox.navigateHistoryUp();
89
+ }
90
+ /**
91
+ * Navigate input history down
92
+ */
93
+ navigateHistoryDown() {
94
+ this.enhancedChatBox.navigateHistoryDown();
95
+ }
96
+ /**
97
+ * Get user prompt format
98
+ */
99
+ formatUserPrompt() {
100
+ return `> `;
130
101
  }
131
102
  /**
132
- * Override to ensure persistent chat box is properly disposed
103
+ * Override dispose to clean up enhanced chat box
133
104
  */
134
- async dispose() {
135
- await super.dispose();
136
- this.persistentChatBox.dispose();
105
+ dispose() {
106
+ this.enhancedChatBox.dispose();
107
+ super.dispose();
137
108
  }
138
109
  }
139
- //# sourceMappingURL=enhancedInteractiveShell.js.map
110
+ //# sourceMappingURL=EnhancedInteractiveShell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enhancedInteractiveShell.js","sourceRoot":"","sources":["../../src/shell/enhancedInteractiveShell.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EnhancedInteractiveShell.js","sourceRoot":"","sources":["../../src/shell/EnhancedInteractiveShell.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
1
  /**
2
- * EnhancedShellApp - Uses EnhancedInteractiveShell for persistent chat box during streaming
2
+ * Enhanced Shell App with Persistent Chat Box
3
+ *
4
+ * Extends the base shell app with enhanced persistent chat box features
3
5
  */
4
6
  import '../config.js';
5
7
  import type { ProfileName } from '../config.js';
6
8
  export interface LaunchEnhancedShellOptions {
7
9
  enableProfileSelection?: boolean;
10
+ enablePersistentChat?: boolean;
8
11
  }
9
12
  /**
10
13
  * Plugin flags for enabling optional features.
@@ -18,5 +21,5 @@ export interface PluginFlags {
18
21
  /**
19
22
  * Launch the enhanced interactive shell with persistent chat box
20
23
  */
21
- export declare function launchEnhancedShell(profile: ProfileName, options?: LaunchEnhancedShellOptions): Promise<void>;
22
- //# sourceMappingURL=enhancedShellApp.d.ts.map
24
+ export declare function launchEnhancedShell(profile: ProfileName, options?: LaunchEnhancedShellOptions, pluginFlags?: PluginFlags, promptArgs?: string[]): Promise<void>;
25
+ //# sourceMappingURL=EnhancedShellApp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enhancedShellApp.d.ts","sourceRoot":"","sources":["../../src/shell/enhancedShellApp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA6BhD,MAAM,WAAW,0BAA0B;IACzC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,IAAI,CAAC,CA0Hf"}
1
+ {"version":3,"file":"EnhancedShellApp.d.ts","sourceRoot":"","sources":["../../src/shell/EnhancedShellApp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA6BhD,MAAM,WAAW,0BAA0B;IACzC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,0BAA+B,EACxC,WAAW,GAAE,WAAgB,EAC7B,UAAU,GAAE,MAAM,EAAO,GACxB,OAAO,CAAC,IAAI,CAAC,CAiIf"}
@@ -1,10 +1,12 @@
1
1
  /**
2
- * EnhancedShellApp - Uses EnhancedInteractiveShell for persistent chat box during streaming
2
+ * Enhanced Shell App with Persistent Chat Box
3
+ *
4
+ * Extends the base shell app with enhanced persistent chat box features
3
5
  */
4
6
  import { exit } from 'node:process';
5
7
  import '../config.js';
6
8
  import { buildWorkspaceContext, resolveWorkspaceCaptureOptions } from '../workspace.js';
7
- import { EnhancedInteractiveShell } from './enhancedInteractiveShell.js';
9
+ import { EnhancedInteractiveShell } from './EnhancedInteractiveShell.js';
8
10
  import { display } from '../ui/display.js';
9
11
  import { loadModelPreference, loadToolSettings, } from '../core/preferences.js';
10
12
  import { createNodeRuntime } from '../runtime/node.js';
@@ -15,29 +17,30 @@ import { LiveStatusTracker } from './liveStatus.js';
15
17
  import { buildInteractiveSystemPrompt } from './systemPrompt.js';
16
18
  import { ShellUIAdapter } from '../ui/ShellUIAdapter.js';
17
19
  import { stdout } from 'node:process';
20
+ import { setPlainOutputMode } from '../ui/outputMode.js';
18
21
  import { getPluginIdsFromFlags, loadPlugin } from '../plugins/index.js';
19
22
  import { quickCheckProviders } from '../core/modelDiscovery.js';
20
23
  import { loadAllSecrets } from '../core/secretStore.js';
21
24
  /**
22
25
  * Launch the enhanced interactive shell with persistent chat box
23
26
  */
24
- export async function launchEnhancedShell(profile, options = {}) {
25
- const { enableProfileSelection = false } = options;
27
+ export async function launchEnhancedShell(profile, options = {}, pluginFlags = {}, promptArgs = []) {
26
28
  try {
27
- // Check for CLI updates in background
28
- maybeOfferCliUpdate();
29
+ // Check for plain output mode
30
+ if (process.env['EROSOLAR_PLAIN_OUTPUT'] === '1') {
31
+ setPlainOutputMode(true);
32
+ }
33
+ // Check for CLI update
34
+ await maybeOfferCliUpdate();
29
35
  // Quick check for available providers
30
- await quickCheckProviders();
31
- // Load secrets early to avoid delays
36
+ const providerStatus = await quickCheckProviders();
37
+ if (providerStatus.length === 0) {
38
+ display.showError('No AI providers configured. Set at least one API key:\n' +
39
+ ' ANTHROPIC_API_KEY, OPENAI_API_KEY, DEEPSEEK_API_KEY, or GEMINI_API_KEY');
40
+ exit(1);
41
+ }
42
+ // Load secrets early
32
43
  await loadAllSecrets();
33
- // Parse CLI arguments for prompt
34
- const argv = process.argv.slice(2);
35
- const promptArgs = argv.filter(arg => !arg.startsWith('--'));
36
- // Handle profile selection if enabled
37
- const allowProfileSelection = enableProfileSelection;
38
- const profileConfig = await selectProfile(profile, {
39
- allowSavedProfile: allowProfileSelection,
40
- });
41
44
  const workingDir = process.cwd();
42
45
  const workspaceOptions = resolveWorkspaceCaptureOptions(process.env);
43
46
  const workspaceContext = buildWorkspaceContext(workingDir, workspaceOptions);
@@ -73,31 +76,38 @@ export async function launchEnhancedShell(profile, options = {}) {
73
76
  ? null
74
77
  : loadModelPreference(profile);
75
78
  let initialModel = persistedSelection ?? {
76
- provider: profileConfig.defaultProvider,
77
- model: profileConfig.defaultModel,
79
+ provider: profileConfig.provider,
80
+ model: profileConfig.model,
81
+ temperature: profileConfig.temperature,
82
+ maxTokens: profileConfig.maxTokens,
78
83
  };
79
- // Build enhanced system prompt with workspace context
84
+ // Apply reasoning effort if configured
85
+ if (profileConfig.reasoningEffort) {
86
+ initialModel.reasoningEffort = profileConfig.reasoningEffort;
87
+ }
88
+ // Build enhanced system prompt
80
89
  const enhancedSystemPrompt = buildInteractiveSystemPrompt({
81
- profile: profileConfig,
90
+ profile,
91
+ profileConfig,
82
92
  workspaceContext,
83
- workingDir,
93
+ initialModel,
84
94
  toolSelection,
85
- agentSelection: providerTools,
86
- });
87
- // Load enabled plugins
88
- const enabledPluginIds = getPluginIdsFromFlags({
89
- alphaZero: false,
90
- coding: false,
91
- security: false,
92
- allPlugins: false,
95
+ providerTools,
93
96
  });
94
- // Load optional plugins if enabled via CLI flags
97
+ // Handle agent selection menu
98
+ const agentSelection = options.enableProfileSelection
99
+ ? await buildAgentSelectionMenu()
100
+ : null;
101
+ // Handle session restore
102
+ const sessionRestore = {
103
+ mode: 'none',
104
+ };
105
+ // Load plugins
106
+ const enabledPluginIds = getPluginIdsFromFlags(pluginFlags);
95
107
  for (const pluginId of enabledPluginIds) {
96
108
  await loadPlugin(pluginId);
97
109
  }
98
- // Report skipped tools due to missing secrets
99
- reportSkippedTools(permissionSummary.warnings);
100
- // Create enhanced interactive shell with persistent chat box
110
+ // Create enhanced shell with persistent chat box
101
111
  const shell = new EnhancedInteractiveShell({
102
112
  profile,
103
113
  profileLabel: profileConfig.label,
@@ -105,11 +115,11 @@ export async function launchEnhancedShell(profile, options = {}) {
105
115
  session,
106
116
  baseSystemPrompt: enhancedSystemPrompt,
107
117
  initialModel,
108
- agentSelection: providerTools,
118
+ agentSelection,
109
119
  statusTracker,
110
120
  uiAdapter,
111
121
  workspaceOptions,
112
- sessionRestore: { mode: 'none' },
122
+ sessionRestore,
113
123
  enabledPlugins: enabledPluginIds,
114
124
  });
115
125
  const initialPrompt = promptArgs.join(' ').trim();
@@ -122,27 +132,30 @@ export async function launchEnhancedShell(profile, options = {}) {
122
132
  }
123
133
  }
124
134
  /**
125
- * Select profile with user interaction if needed
135
+ * Build agent selection menu
126
136
  */
127
- async function selectProfile(profile, options) {
128
- // Simplified profile selection - in practice this would be more complex
137
+ async function buildAgentSelectionMenu() {
129
138
  const availableProfiles = listAgentProfiles();
130
- const matchedProfile = availableProfiles.find(p => p.name === profile);
131
- if (!matchedProfile) {
132
- throw new Error(`Profile "${profile}" not found. Available profiles: ${availableProfiles.map(p => p.name).join(', ')}`);
133
- }
134
- return matchedProfile;
139
+ return {
140
+ profiles: availableProfiles.map((profile) => ({
141
+ name: profile.name,
142
+ label: profile.label || profile.name,
143
+ })),
144
+ onSelect: async (profile) => {
145
+ await saveActiveProfilePreference(profile);
146
+ display.showInfo(`Default agent profile set to: ${profile}`);
147
+ },
148
+ };
135
149
  }
136
150
  /**
137
- * Report skipped tools due to missing configuration
151
+ * Parse launch arguments
138
152
  */
139
- function reportSkippedTools(entries) {
140
- for (const warning of entries) {
141
- const details = warning.reason === 'missing-secret' && warning.secretId
142
- ? `missing ${warning.secretId}`
143
- : warning.reason;
144
- const suffix = warning.secretId ? ' (use /secrets to configure it)' : '';
145
- display.showWarning(`Skipped ${warning.label} — ${details}${suffix}`);
146
- }
153
+ function parseLaunchArguments(args) {
154
+ const profileOverride = args.find((arg) => !arg.startsWith('-')) || null;
155
+ const promptArgs = args.filter((arg) => arg !== profileOverride);
156
+ return {
157
+ profileOverride,
158
+ promptArgs,
159
+ };
147
160
  }
148
- //# sourceMappingURL=enhancedShellApp.js.map
161
+ //# sourceMappingURL=EnhancedShellApp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enhancedShellApp.js","sourceRoot":"","sources":["../../src/shell/enhancedShellApp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EnhancedShellApp.js","sourceRoot":"","sources":["../../src/shell/EnhancedShellApp.ts"],"names":[],"mappings":"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"}