@vybestack/llxprt-code 0.1.18-nightly.250808.f9b79d74 → 0.1.18-nightly.250811.b0db22c6
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/package.json +5 -3
- package/dist/src/auth/gemini-oauth-provider.d.ts +15 -0
- package/dist/src/auth/gemini-oauth-provider.js +33 -0
- package/dist/src/auth/gemini-oauth-provider.js.map +1 -0
- package/dist/src/auth/oauth-manager.d.ts +103 -0
- package/dist/src/auth/oauth-manager.js +326 -0
- package/dist/src/auth/oauth-manager.js.map +1 -0
- package/dist/src/auth/oauth-manager.spec.d.ts +6 -0
- package/dist/src/auth/oauth-manager.spec.js +523 -0
- package/dist/src/auth/oauth-manager.spec.js.map +1 -0
- package/dist/src/auth/qwen-oauth-provider.d.ts +14 -0
- package/dist/src/auth/qwen-oauth-provider.js +75 -0
- package/dist/src/auth/qwen-oauth-provider.js.map +1 -0
- package/dist/src/auth/types.d.ts +7 -0
- package/dist/src/auth/types.js +7 -0
- package/dist/src/auth/types.js.map +1 -0
- package/dist/src/config/auth.js +9 -0
- package/dist/src/config/auth.js.map +1 -1
- package/dist/src/config/config.js +93 -43
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/keyBindings.d.ts +66 -0
- package/dist/src/config/keyBindings.js +136 -0
- package/dist/src/config/keyBindings.js.map +1 -0
- package/dist/src/config/settings.d.ts +3 -59
- package/dist/src/config/settings.js +17 -1
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +587 -0
- package/dist/src/config/settingsSchema.js +565 -0
- package/dist/src/config/settingsSchema.js.map +1 -0
- package/dist/src/gemini.js +12 -109
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +1 -1
- package/dist/src/generated/git-commit.js +1 -1
- package/dist/src/nonInteractiveCli.js +0 -1
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/providers/logging/git-stats-service-impl.d.ts +19 -0
- package/dist/src/providers/logging/git-stats-service-impl.js +25 -0
- package/dist/src/providers/logging/git-stats-service-impl.js.map +1 -0
- package/dist/src/providers/logging/git-stats.d.ts +43 -0
- package/dist/src/providers/logging/git-stats.js +137 -0
- package/dist/src/providers/logging/git-stats.js.map +1 -0
- package/dist/src/providers/providerManagerInstance.js +39 -4
- package/dist/src/providers/providerManagerInstance.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +4 -0
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/todo-continuation/todoContinuationService.d.ts +172 -0
- package/dist/src/services/todo-continuation/todoContinuationService.js +387 -0
- package/dist/src/services/todo-continuation/todoContinuationService.js.map +1 -0
- package/dist/src/services/todo-continuation/todoContinuationService.spec.d.ts +6 -0
- package/dist/src/services/todo-continuation/todoContinuationService.spec.js +385 -0
- package/dist/src/services/todo-continuation/todoContinuationService.spec.js.map +1 -0
- package/dist/src/ui/App.js +76 -26
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/colors.d.ts +5 -0
- package/dist/src/ui/colors.js +51 -0
- package/dist/src/ui/colors.js.map +1 -1
- package/dist/src/ui/commands/authCommand.d.ts +11 -1
- package/dist/src/ui/commands/authCommand.js +143 -48
- package/dist/src/ui/commands/authCommand.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.js +16 -0
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/ideCommand.js +67 -31
- package/dist/src/ui/commands/ideCommand.js.map +1 -1
- package/dist/src/ui/commands/keyfileCommand.js +15 -12
- package/dist/src/ui/commands/keyfileCommand.js.map +1 -1
- package/dist/src/ui/commands/loggingCommand.d.ts +15 -0
- package/dist/src/ui/commands/loggingCommand.js +421 -0
- package/dist/src/ui/commands/loggingCommand.js.map +1 -0
- package/dist/src/ui/commands/privacyCommand.d.ts +3 -0
- package/dist/src/ui/commands/privacyCommand.js +6 -3
- package/dist/src/ui/commands/privacyCommand.js.map +1 -1
- package/dist/src/ui/commands/settingsCommand.d.ts +7 -0
- package/dist/src/ui/commands/settingsCommand.js +16 -0
- package/dist/src/ui/commands/settingsCommand.js.map +1 -0
- package/dist/src/ui/commands/setupGithubCommand.js +21 -2
- package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
- package/dist/src/ui/commands/types.d.ts +14 -2
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/components/AuthDialog.js +13 -56
- package/dist/src/ui/components/AuthDialog.js.map +1 -1
- package/dist/src/ui/components/AuthInProgress.js +3 -3
- package/dist/src/ui/components/AuthInProgress.js.map +1 -1
- package/dist/src/ui/components/ContextUsageDisplay.d.ts +10 -0
- package/dist/src/ui/components/ContextUsageDisplay.js +27 -0
- package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -0
- package/dist/src/ui/components/FolderTrustDialog.d.ts +16 -0
- package/dist/src/ui/components/FolderTrustDialog.js +38 -0
- package/dist/src/ui/components/FolderTrustDialog.js.map +1 -0
- package/dist/src/ui/components/Footer.js +132 -15
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.d.ts +1 -0
- package/dist/src/ui/components/InputPrompt.js +87 -31
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/LoggingDialog.d.ts +37 -0
- package/dist/src/ui/components/LoggingDialog.js +155 -0
- package/dist/src/ui/components/LoggingDialog.js.map +1 -0
- package/dist/src/ui/components/MemoryUsageDisplay.js +6 -4
- package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
- package/dist/src/ui/components/ProviderDialog.js +100 -26
- package/dist/src/ui/components/ProviderDialog.js.map +1 -1
- package/dist/src/ui/components/ProviderModelDialog.js +99 -27
- package/dist/src/ui/components/ProviderModelDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.d.ts +14 -0
- package/dist/src/ui/components/SettingsDialog.js +247 -0
- package/dist/src/ui/components/SettingsDialog.js.map +1 -0
- package/dist/src/ui/components/ThemeDialog.js +4 -15
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/TodoPanel.js +93 -18
- package/dist/src/ui/components/TodoPanel.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +85 -7
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/contexts/SettingsContext.d.ts +9 -0
- package/dist/src/ui/contexts/SettingsContext.js +15 -0
- package/dist/src/ui/contexts/SettingsContext.js.map +1 -0
- package/dist/src/ui/hooks/atCommandProcessor.js +21 -0
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +6 -2
- package/dist/src/ui/hooks/slashCommandProcessor.js +142 -113
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.js +1 -1
- package/dist/src/ui/hooks/useAuthCommand.js +14 -0
- package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
- package/dist/src/ui/hooks/useConsoleMessages.js +7 -0
- package/dist/src/ui/hooks/useConsoleMessages.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.d.ts +11 -0
- package/dist/src/ui/hooks/useFolderTrust.js +22 -0
- package/dist/src/ui/hooks/useFolderTrust.js.map +1 -0
- package/dist/src/ui/hooks/useGeminiStream.js +14 -3
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useResponsive.d.ts +14 -0
- package/dist/src/ui/hooks/useResponsive.js +19 -0
- package/dist/src/ui/hooks/useResponsive.js.map +1 -0
- package/dist/src/ui/hooks/useSettingsCommand.d.ts +10 -0
- package/dist/src/ui/hooks/useSettingsCommand.js +21 -0
- package/dist/src/ui/hooks/useSettingsCommand.js.map +1 -0
- package/dist/src/ui/hooks/useTodoContinuation.d.ts +31 -0
- package/dist/src/ui/hooks/useTodoContinuation.js +148 -0
- package/dist/src/ui/hooks/useTodoContinuation.js.map +1 -0
- package/dist/src/ui/hooks/useTodoContinuation.spec.d.ts +6 -0
- package/dist/src/ui/hooks/useTodoContinuation.spec.js +378 -0
- package/dist/src/ui/hooks/useTodoContinuation.spec.js.map +1 -0
- package/dist/src/ui/keyMatchers.d.ts +26 -0
- package/dist/src/ui/keyMatchers.js +68 -0
- package/dist/src/ui/keyMatchers.js.map +1 -0
- package/dist/src/ui/privacy/PrivacyNotice.js +10 -4
- package/dist/src/ui/privacy/PrivacyNotice.js.map +1 -1
- package/dist/src/ui/themes/semantic-resolver.d.ts +12 -0
- package/dist/src/ui/themes/semantic-resolver.js +32 -0
- package/dist/src/ui/themes/semantic-resolver.js.map +1 -0
- package/dist/src/ui/themes/semantic-tokens.d.ts +52 -0
- package/dist/src/ui/themes/semantic-tokens.js +7 -0
- package/dist/src/ui/themes/semantic-tokens.js.map +1 -0
- package/dist/src/ui/themes/theme-compat.d.ts +34 -0
- package/dist/src/ui/themes/theme-compat.js +65 -0
- package/dist/src/ui/themes/theme-compat.js.map +1 -0
- package/dist/src/ui/themes/theme-manager.d.ts +8 -0
- package/dist/src/ui/themes/theme-manager.js +18 -0
- package/dist/src/ui/themes/theme-manager.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.d.ts +2 -1
- package/dist/src/ui/utils/CodeColorizer.js +4 -3
- package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.js +4 -2
- package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.d.ts +1 -0
- package/dist/src/ui/utils/commandUtils.js +22 -1
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/responsive.d.ts +16 -0
- package/dist/src/ui/utils/responsive.js +111 -0
- package/dist/src/ui/utils/responsive.js.map +1 -0
- package/dist/src/utils/cleanup.d.ts +2 -2
- package/dist/src/utils/cleanup.js +2 -2
- package/dist/src/utils/cleanup.js.map +1 -1
- package/dist/src/utils/dialogScopeUtils.d.ts +31 -0
- package/dist/src/utils/dialogScopeUtils.js +48 -0
- package/dist/src/utils/dialogScopeUtils.js.map +1 -0
- package/dist/src/utils/gitUtils.d.ts +9 -0
- package/dist/src/utils/gitUtils.js +17 -0
- package/dist/src/utils/gitUtils.js.map +1 -1
- package/dist/src/utils/privacy/ConversationDataRedactor.d.ts +75 -0
- package/dist/src/utils/privacy/ConversationDataRedactor.js +412 -0
- package/dist/src/utils/privacy/ConversationDataRedactor.js.map +1 -0
- package/dist/src/utils/privacy/PrivacyManager.d.ts +58 -0
- package/dist/src/utils/privacy/PrivacyManager.js +133 -0
- package/dist/src/utils/privacy/PrivacyManager.js.map +1 -0
- package/dist/src/utils/sandbox.js +10 -0
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/src/utils/settingsUtils.d.ts +126 -0
- package/dist/src/utils/settingsUtils.js +327 -0
- package/dist/src/utils/settingsUtils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -3
- package/dist/src/ui/components/IDEContextDetailDisplay.d.ts +0 -12
- package/dist/src/ui/components/IDEContextDetailDisplay.js +0 -17
- package/dist/src/ui/components/IDEContextDetailDisplay.js.map +0 -1
@@ -3,74 +3,169 @@
|
|
3
3
|
* Copyright 2025 Google LLC
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
5
5
|
*/
|
6
|
-
import { CommandKind } from './types.js';
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
6
|
+
import { CommandKind, } from './types.js';
|
7
|
+
import { OAuthManager } from '../../auth/oauth-manager.js';
|
8
|
+
import { MultiProviderTokenStore } from '@vybestack/llxprt-code-core';
|
9
|
+
import { QwenOAuthProvider } from '../../auth/qwen-oauth-provider.js';
|
10
|
+
import { GeminiOAuthProvider } from '../../auth/gemini-oauth-provider.js';
|
11
|
+
export class AuthCommandExecutor {
|
12
|
+
oauthManager;
|
13
|
+
constructor(oauthManager) {
|
14
|
+
this.oauthManager = oauthManager;
|
15
|
+
}
|
16
|
+
async execute(context, args) {
|
17
|
+
const parts = args?.trim().split(/\s+/) || [];
|
18
|
+
const provider = parts[0];
|
19
|
+
const action = parts[1];
|
20
|
+
// If no provider specified, show OAuth menu
|
21
|
+
if (!provider) {
|
22
|
+
return this.showOAuthMenu();
|
23
|
+
}
|
24
|
+
// If no action specified, show status for the provider
|
25
|
+
if (!action) {
|
26
|
+
return this.showProviderStatus(provider);
|
27
|
+
}
|
28
|
+
// Handle enable/disable actions
|
29
|
+
if (action === 'enable' || action === 'disable') {
|
30
|
+
return this.setProviderOAuth(provider, action === 'enable');
|
31
|
+
}
|
32
|
+
// Invalid action
|
33
|
+
return {
|
34
|
+
type: 'message',
|
35
|
+
messageType: 'error',
|
36
|
+
content: `Invalid action: ${action}. Use 'enable' or 'disable'`,
|
37
|
+
};
|
38
|
+
}
|
39
|
+
async showOAuthMenu() {
|
40
|
+
// Return dialog action to show OAuth authentication dialog
|
41
|
+
return {
|
42
|
+
type: 'dialog',
|
43
|
+
dialog: 'auth',
|
44
|
+
};
|
45
|
+
}
|
46
|
+
async showProviderStatus(provider) {
|
47
|
+
try {
|
48
|
+
// Check if provider is supported
|
49
|
+
const supportedProviders = this.oauthManager.getSupportedProviders();
|
50
|
+
if (!supportedProviders.includes(provider)) {
|
51
|
+
return {
|
52
|
+
type: 'message',
|
53
|
+
messageType: 'error',
|
54
|
+
content: `Unknown provider: ${provider}. Supported providers: ${supportedProviders.join(', ')}`,
|
55
|
+
};
|
56
|
+
}
|
57
|
+
// Get current OAuth status
|
58
|
+
const isEnabled = this.oauthManager.isOAuthEnabled(provider);
|
59
|
+
const isAuthenticated = await this.oauthManager.isAuthenticated(provider);
|
60
|
+
let status = `OAuth for ${provider}: ${isEnabled ? 'ENABLED' : 'DISABLED'}`;
|
61
|
+
if (isEnabled && isAuthenticated) {
|
62
|
+
status += ' (authenticated)';
|
63
|
+
}
|
64
|
+
else if (isEnabled && !isAuthenticated) {
|
65
|
+
status += ' (not authenticated)';
|
66
|
+
}
|
67
|
+
// Check for higher priority auth
|
68
|
+
const higherPriorityAuth = await this.oauthManager.getHigherPriorityAuth(provider);
|
69
|
+
if (higherPriorityAuth) {
|
70
|
+
status += `\nNote: ${higherPriorityAuth} will take precedence`;
|
71
|
+
}
|
18
72
|
return {
|
19
|
-
type: '
|
20
|
-
|
73
|
+
type: 'message',
|
74
|
+
messageType: 'info',
|
75
|
+
content: status,
|
21
76
|
};
|
22
77
|
}
|
23
|
-
|
78
|
+
catch (error) {
|
79
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
80
|
+
return {
|
81
|
+
type: 'message',
|
82
|
+
messageType: 'error',
|
83
|
+
content: `Failed to get status for ${provider}: ${errorMessage}`,
|
84
|
+
};
|
85
|
+
}
|
86
|
+
}
|
87
|
+
async setProviderOAuth(provider, enable) {
|
24
88
|
try {
|
25
|
-
|
26
|
-
|
27
|
-
if (
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
switch (authMode) {
|
39
|
-
case 'oauth':
|
40
|
-
authType = AuthType.LOGIN_WITH_GOOGLE;
|
41
|
-
break;
|
42
|
-
case 'api-key':
|
43
|
-
authType = AuthType.USE_GEMINI;
|
44
|
-
break;
|
45
|
-
case 'vertex':
|
46
|
-
authType = AuthType.USE_VERTEX_AI;
|
47
|
-
break;
|
48
|
-
default:
|
49
|
-
authType = AuthType.LOGIN_WITH_GOOGLE;
|
50
|
-
}
|
51
|
-
// Refresh auth with the new type
|
52
|
-
await context.services.config.refreshAuth(authType);
|
89
|
+
// Check if provider is supported
|
90
|
+
const supportedProviders = this.oauthManager.getSupportedProviders();
|
91
|
+
if (!supportedProviders.includes(provider)) {
|
92
|
+
return {
|
93
|
+
type: 'message',
|
94
|
+
messageType: 'error',
|
95
|
+
content: `Unknown provider: ${provider}. Supported providers: ${supportedProviders.join(', ')}`,
|
96
|
+
};
|
97
|
+
}
|
98
|
+
// Check current state
|
99
|
+
const currentlyEnabled = this.oauthManager.isOAuthEnabled(provider);
|
100
|
+
// If already in desired state, just report it
|
101
|
+
if (currentlyEnabled === enable) {
|
53
102
|
return {
|
54
103
|
type: 'message',
|
55
104
|
messageType: 'info',
|
56
|
-
content: `
|
105
|
+
content: `OAuth for ${provider} is already ${enable ? 'enabled' : 'disabled'}`,
|
57
106
|
};
|
58
107
|
}
|
59
|
-
|
108
|
+
// Toggle to achieve desired state
|
109
|
+
await this.oauthManager.toggleOAuthEnabled(provider);
|
110
|
+
// Check for higher priority auth warning
|
111
|
+
const higherPriorityAuth = await this.oauthManager.getHigherPriorityAuth(provider);
|
112
|
+
const baseMessage = `OAuth ${enable ? 'enabled' : 'disabled'} for ${provider}`;
|
113
|
+
if (enable && higherPriorityAuth) {
|
60
114
|
return {
|
61
115
|
type: 'message',
|
62
|
-
messageType: '
|
63
|
-
content:
|
116
|
+
messageType: 'info',
|
117
|
+
content: `${baseMessage} (Note: ${higherPriorityAuth} will take precedence)`,
|
64
118
|
};
|
65
119
|
}
|
120
|
+
return {
|
121
|
+
type: 'message',
|
122
|
+
messageType: 'info',
|
123
|
+
content: baseMessage,
|
124
|
+
};
|
66
125
|
}
|
67
126
|
catch (error) {
|
127
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
68
128
|
return {
|
69
129
|
type: 'message',
|
70
130
|
messageType: 'error',
|
71
|
-
content: `Failed to
|
131
|
+
content: `Failed to ${enable ? 'enable' : 'disable'} OAuth for ${provider}: ${errorMessage}`,
|
72
132
|
};
|
73
133
|
}
|
134
|
+
}
|
135
|
+
async getAuthStatus() {
|
136
|
+
try {
|
137
|
+
const statuses = await this.oauthManager.getAuthStatus();
|
138
|
+
return statuses.map((status) => {
|
139
|
+
const indicator = status.authenticated ? '✓' : '✗';
|
140
|
+
const authInfo = status.authenticated
|
141
|
+
? `${status.authType}${status.expiresIn ? ` (expires in ${Math.floor(status.expiresIn / 60)}m)` : ''}`
|
142
|
+
: 'not authenticated';
|
143
|
+
const oauthStatus = status.oauthEnabled !== undefined
|
144
|
+
? ` [OAuth ${status.oauthEnabled ? 'enabled' : 'disabled'}]`
|
145
|
+
: '';
|
146
|
+
return `${indicator} ${status.provider}: ${authInfo}${oauthStatus}`;
|
147
|
+
});
|
148
|
+
}
|
149
|
+
catch (error) {
|
150
|
+
return [
|
151
|
+
`Error getting auth status: ${error instanceof Error ? error.message : String(error)}`,
|
152
|
+
];
|
153
|
+
}
|
154
|
+
}
|
155
|
+
}
|
156
|
+
export const authCommand = {
|
157
|
+
name: 'auth',
|
158
|
+
description: 'toggle OAuth enablement for providers (gemini, qwen)',
|
159
|
+
kind: CommandKind.BUILT_IN,
|
160
|
+
action: async (context, args) => {
|
161
|
+
// Initialize OAuth manager with token store and settings
|
162
|
+
const tokenStore = new MultiProviderTokenStore();
|
163
|
+
const oauthManager = new OAuthManager(tokenStore, context.services.settings);
|
164
|
+
// Register OAuth providers
|
165
|
+
oauthManager.registerProvider(new GeminiOAuthProvider());
|
166
|
+
oauthManager.registerProvider(new QwenOAuthProvider());
|
167
|
+
const executor = new AuthCommandExecutor(oauthManager);
|
168
|
+
return executor.execute(context, args);
|
74
169
|
},
|
75
170
|
};
|
76
171
|
//# sourceMappingURL=authCommand.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"authCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/authCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
1
|
+
{"version":3,"file":"authCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/authCommand.ts"],"names":[],"mappings":"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"}
|
@@ -4,6 +4,9 @@
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
5
5
|
*/
|
6
6
|
import * as fsPromises from 'fs/promises';
|
7
|
+
import React from 'react';
|
8
|
+
import { Text } from 'ink';
|
9
|
+
import { Colors } from '../colors.js';
|
7
10
|
import { CommandKind, } from './types.js';
|
8
11
|
import path from 'path';
|
9
12
|
import { MessageType } from '../types.js';
|
@@ -81,6 +84,19 @@ const saveCommand = {
|
|
81
84
|
}
|
82
85
|
const { logger, config } = context.services;
|
83
86
|
await logger.initialize();
|
87
|
+
// Check for overwrite confirmation first
|
88
|
+
if (!context.overwriteConfirmed) {
|
89
|
+
const exists = await logger.checkpointExists(tag);
|
90
|
+
if (exists) {
|
91
|
+
return {
|
92
|
+
type: 'confirm_action',
|
93
|
+
prompt: React.createElement(Text, null, 'A checkpoint with the tag ', React.createElement(Text, { color: Colors.AccentPurple }, tag), ' already exists. Do you want to overwrite it?'),
|
94
|
+
originalInvocation: {
|
95
|
+
raw: context.invocation?.raw || `/chat save ${tag}`,
|
96
|
+
},
|
97
|
+
};
|
98
|
+
}
|
99
|
+
}
|
84
100
|
const client = config?.getGeminiClient();
|
85
101
|
// Check if chat is initialized before accessing it
|
86
102
|
if (!client?.hasChatInitialized()) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"chatCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/chatCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,UAAU,MAAM,aAAa,CAAC;AAC1C,OAAO,EAIL,WAAW,
|
1
|
+
{"version":3,"file":"chatCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/chatCommand.ts"],"names":[],"mappings":"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"}
|
@@ -3,9 +3,66 @@
|
|
3
3
|
* Copyright 2025 Google LLC
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
5
5
|
*/
|
6
|
-
import
|
6
|
+
import * as path from 'node:path';
|
7
|
+
import { DetectedIde, IDEConnectionStatus, getIdeDisplayName, getIdeInstaller, ideContext, } from '@vybestack/llxprt-code-core';
|
7
8
|
import { CommandKind, } from './types.js';
|
8
9
|
import { SettingScope } from '../../config/settings.js';
|
10
|
+
function formatFileList(openFiles) {
|
11
|
+
const basenameCounts = new Map();
|
12
|
+
for (const file of openFiles) {
|
13
|
+
const basename = path.basename(file.path);
|
14
|
+
basenameCounts.set(basename, (basenameCounts.get(basename) || 0) + 1);
|
15
|
+
}
|
16
|
+
const fileList = openFiles
|
17
|
+
.map((file) => {
|
18
|
+
const basename = path.basename(file.path);
|
19
|
+
const isDuplicate = (basenameCounts.get(basename) || 0) > 1;
|
20
|
+
const parentDir = path.basename(path.dirname(file.path));
|
21
|
+
const displayName = isDuplicate
|
22
|
+
? `${basename} (/${parentDir})`
|
23
|
+
: basename;
|
24
|
+
return ` - ${displayName}${file.isActive ? ' (active)' : ''}`;
|
25
|
+
})
|
26
|
+
.join('\n');
|
27
|
+
return `\n\nOpen files:\n${fileList}`;
|
28
|
+
}
|
29
|
+
async function getIdeStatusMessageWithFiles(ideClient) {
|
30
|
+
const connection = ideClient.getConnectionStatus();
|
31
|
+
switch (connection.status) {
|
32
|
+
case IDEConnectionStatus.Connected: {
|
33
|
+
let content = `🟢 Connected to ${ideClient.getDetectedIdeDisplayName()}`;
|
34
|
+
try {
|
35
|
+
const context = await ideContext.getIdeContext();
|
36
|
+
const openFiles = context?.workspaceState?.openFiles;
|
37
|
+
if (openFiles && openFiles.length > 0) {
|
38
|
+
content += formatFileList(openFiles);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
catch (_e) {
|
42
|
+
// Ignore
|
43
|
+
}
|
44
|
+
return {
|
45
|
+
messageType: 'info',
|
46
|
+
content,
|
47
|
+
};
|
48
|
+
}
|
49
|
+
case IDEConnectionStatus.Connecting:
|
50
|
+
return {
|
51
|
+
messageType: 'info',
|
52
|
+
content: `🟡 Connecting...`,
|
53
|
+
};
|
54
|
+
default: {
|
55
|
+
let content = `🔴 Disconnected`;
|
56
|
+
if (connection?.details) {
|
57
|
+
content += `: ${connection.details}`;
|
58
|
+
}
|
59
|
+
return {
|
60
|
+
messageType: 'error',
|
61
|
+
content,
|
62
|
+
};
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
9
66
|
export const ideCommand = (config) => {
|
10
67
|
if (!config || !config.getIdeModeFeature()) {
|
11
68
|
return null;
|
@@ -23,9 +80,8 @@ export const ideCommand = (config) => {
|
|
23
80
|
action: () => ({
|
24
81
|
type: 'message',
|
25
82
|
messageType: 'error',
|
26
|
-
content: `IDE integration is not supported in your current environment. To use this feature, run LLxprt Code in one of these supported IDEs: ${Object.values(DetectedIde)
|
27
|
-
|
28
|
-
.join(', ')}`,
|
83
|
+
content: `IDE integration is not supported in your current environment. To use this feature, run LLxprt Code in one of these supported IDEs: ${Object.values(DetectedIde).map((ide) => getIdeDisplayName(ide))}
|
84
|
+
.join(', ')}`,
|
29
85
|
}),
|
30
86
|
};
|
31
87
|
}
|
@@ -39,33 +95,13 @@ export const ideCommand = (config) => {
|
|
39
95
|
name: 'status',
|
40
96
|
description: 'check status of IDE integration',
|
41
97
|
kind: CommandKind.BUILT_IN,
|
42
|
-
action: (
|
43
|
-
const
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
content: `🟢 Connected to ${ideClient.getDetectedIdeDisplayName()}`,
|
50
|
-
};
|
51
|
-
case IDEConnectionStatus.Connecting:
|
52
|
-
return {
|
53
|
-
type: 'message',
|
54
|
-
messageType: 'info',
|
55
|
-
content: `🟡 Connecting...`,
|
56
|
-
};
|
57
|
-
default: {
|
58
|
-
let content = `🔴 Disconnected`;
|
59
|
-
if (connection.details) {
|
60
|
-
content += `: ${connection.details}`;
|
61
|
-
}
|
62
|
-
return {
|
63
|
-
type: 'message',
|
64
|
-
messageType: 'error',
|
65
|
-
content,
|
66
|
-
};
|
67
|
-
}
|
68
|
-
}
|
98
|
+
action: async () => {
|
99
|
+
const { messageType, content } = await getIdeStatusMessageWithFiles(ideClient);
|
100
|
+
return {
|
101
|
+
type: 'message',
|
102
|
+
messageType,
|
103
|
+
content,
|
104
|
+
};
|
69
105
|
},
|
70
106
|
};
|
71
107
|
const installCommand = {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ideCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/ideCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,
|
1
|
+
{"version":3,"file":"ideCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/ideCommand.ts"],"names":[],"mappings":"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"}
|
@@ -62,21 +62,24 @@ export const keyfileCommand = {
|
|
62
62
|
// Handle removal
|
63
63
|
if (filePath === 'none') {
|
64
64
|
const removedPath = context.services.settings.getProviderKeyfile(providerName);
|
65
|
+
// Clear the API key from the provider
|
66
|
+
if (activeProvider.setApiKey) {
|
67
|
+
activeProvider.setApiKey('');
|
68
|
+
}
|
69
|
+
// Clear from ephemeral settings
|
70
|
+
if (context.services.config) {
|
71
|
+
context.services.config.setEphemeralSetting('auth-keyfile', undefined);
|
72
|
+
context.services.config.setEphemeralSetting('auth-key', undefined);
|
73
|
+
}
|
74
|
+
// Remove from saved settings
|
65
75
|
if (removedPath) {
|
66
76
|
context.services.settings.removeProviderKeyfile(providerName);
|
67
|
-
return {
|
68
|
-
type: 'message',
|
69
|
-
messageType: 'info',
|
70
|
-
content: `Removed keyfile path for provider '${providerName}'`,
|
71
|
-
};
|
72
|
-
}
|
73
|
-
else {
|
74
|
-
return {
|
75
|
-
type: 'message',
|
76
|
-
messageType: 'info',
|
77
|
-
content: `No keyfile path was set for provider '${providerName}'`,
|
78
|
-
};
|
79
77
|
}
|
78
|
+
return {
|
79
|
+
type: 'message',
|
80
|
+
messageType: 'info',
|
81
|
+
content: `Cleared keyfile and API key for provider '${providerName}'`,
|
82
|
+
};
|
80
83
|
}
|
81
84
|
// Verify keyfile exists and read the key
|
82
85
|
try {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"keyfileCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/keyfileCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAIL,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,8CAA8C;IAC3D,IAAI,EAAE,WAAW,CAAC,QAAQ;IAC1B,MAAM,EAAE,KAAK,EACX,OAAuB,EACvB,IAAY,EACkB,EAAE;QAChC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;QAE9B,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,eAAe,CAAC,iBAAiB,EAAE,CAAC;YAC3D,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC;YAEzC,kDAAkD;YAClD,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;gBACjC,iCAAiC;gBACjC,MAAM,YAAY,GAAG;oBACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,YAAY,MAAM,CAAC;oBAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,YAAY,MAAM,CAAC;oBAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,YAAY,UAAU,CAAC;iBACjD,CAAC;gBAEF,8DAA8D;gBAC9D,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;oBAC9B,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;gBAC5D,CAAC;qBAAM,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;oBACxC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBAC/D,CAAC;gBAED,IAAI,YAAY,GAAkB,IAAI,CAAC;gBACvC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;oBACvC,IAAI,CAAC;wBACH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;wBAC7B,YAAY,GAAG,WAAW,CAAC;wBAC3B,MAAM;oBACR,CAAC;oBAAC,MAAM,CAAC;wBACP,wCAAwC;oBAC1C,CAAC;gBACH,CAAC;gBAED,IAAI,YAAY,EAAE,CAAC;oBACjB,OAAO;wBACL,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,MAAM;wBACnB,OAAO,EAAE,iCAAiC,YAAY,MAAM,YAAY,4DAA4D;qBACrI,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO;wBACL,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,MAAM;wBACnB,OAAO,EAAE,kCAAkC,YAAY,4BAA4B;qBACpF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,iBAAiB;YACjB,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACxB,MAAM,WAAW,GACf,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"keyfileCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/keyfileCommand.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/**
|
2
|
+
* @license
|
3
|
+
* Copyright 2025 Vybestack LLC
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
5
|
+
*/
|
6
|
+
import { Config } from '@vybestack/llxprt-code-core';
|
7
|
+
import { SlashCommand, MessageActionReturn, OpenDialogActionReturn } from './types.js';
|
8
|
+
import { LoadedSettings } from '../../config/settings.js';
|
9
|
+
export interface LoggingCommandContext {
|
10
|
+
config: Config;
|
11
|
+
settings: LoadedSettings;
|
12
|
+
}
|
13
|
+
export type CommandResult = MessageActionReturn | OpenDialogActionReturn;
|
14
|
+
export declare function handleLoggingCommand(args: string[], context: LoggingCommandContext): Promise<CommandResult>;
|
15
|
+
export declare const loggingCommand: SlashCommand;
|