@mainwp/control 1.0.0
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/LICENSE +674 -0
- package/README.md +583 -0
- package/bin/_exit.js +12 -0
- package/bin/dev.js +7 -0
- package/bin/run.js +7 -0
- package/dist/chat/chat-engine.d.ts +213 -0
- package/dist/chat/chat-engine.d.ts.map +1 -0
- package/dist/chat/chat-engine.js +636 -0
- package/dist/chat/chat-engine.js.map +1 -0
- package/dist/chat/index.d.ts +10 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +14 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat/providers/anthropic.d.ts +52 -0
- package/dist/chat/providers/anthropic.d.ts.map +1 -0
- package/dist/chat/providers/anthropic.js +292 -0
- package/dist/chat/providers/anthropic.js.map +1 -0
- package/dist/chat/providers/gemini.d.ts +52 -0
- package/dist/chat/providers/gemini.d.ts.map +1 -0
- package/dist/chat/providers/gemini.js +284 -0
- package/dist/chat/providers/gemini.js.map +1 -0
- package/dist/chat/providers/index.d.ts +19 -0
- package/dist/chat/providers/index.d.ts.map +1 -0
- package/dist/chat/providers/index.js +23 -0
- package/dist/chat/providers/index.js.map +1 -0
- package/dist/chat/providers/local.d.ts +37 -0
- package/dist/chat/providers/local.d.ts.map +1 -0
- package/dist/chat/providers/local.js +130 -0
- package/dist/chat/providers/local.js.map +1 -0
- package/dist/chat/providers/openai-compatible.d.ts +155 -0
- package/dist/chat/providers/openai-compatible.d.ts.map +1 -0
- package/dist/chat/providers/openai-compatible.js +264 -0
- package/dist/chat/providers/openai-compatible.js.map +1 -0
- package/dist/chat/providers/openai.d.ts +24 -0
- package/dist/chat/providers/openai.d.ts.map +1 -0
- package/dist/chat/providers/openai.js +62 -0
- package/dist/chat/providers/openai.js.map +1 -0
- package/dist/chat/providers/openrouter.d.ts +26 -0
- package/dist/chat/providers/openrouter.d.ts.map +1 -0
- package/dist/chat/providers/openrouter.js +65 -0
- package/dist/chat/providers/openrouter.js.map +1 -0
- package/dist/chat/providers/provider-fetch.d.ts +15 -0
- package/dist/chat/providers/provider-fetch.d.ts.map +1 -0
- package/dist/chat/providers/provider-fetch.js +35 -0
- package/dist/chat/providers/provider-fetch.js.map +1 -0
- package/dist/chat/providers/provider.d.ts +214 -0
- package/dist/chat/providers/provider.d.ts.map +1 -0
- package/dist/chat/providers/provider.js +166 -0
- package/dist/chat/providers/provider.js.map +1 -0
- package/dist/chat/providers/sse-reader.d.ts +21 -0
- package/dist/chat/providers/sse-reader.d.ts.map +1 -0
- package/dist/chat/providers/sse-reader.js +48 -0
- package/dist/chat/providers/sse-reader.js.map +1 -0
- package/dist/chat/system-prompt.d.ts +33 -0
- package/dist/chat/system-prompt.d.ts.map +1 -0
- package/dist/chat/system-prompt.js +166 -0
- package/dist/chat/system-prompt.js.map +1 -0
- package/dist/chat/tool-envelope.d.ts +72 -0
- package/dist/chat/tool-envelope.d.ts.map +1 -0
- package/dist/chat/tool-envelope.js +263 -0
- package/dist/chat/tool-envelope.js.map +1 -0
- package/dist/commands/abilities/info.d.ts +21 -0
- package/dist/commands/abilities/info.d.ts.map +1 -0
- package/dist/commands/abilities/info.js +80 -0
- package/dist/commands/abilities/info.js.map +1 -0
- package/dist/commands/abilities/list.d.ts +19 -0
- package/dist/commands/abilities/list.d.ts.map +1 -0
- package/dist/commands/abilities/list.js +98 -0
- package/dist/commands/abilities/list.js.map +1 -0
- package/dist/commands/abilities/run.d.ts +75 -0
- package/dist/commands/abilities/run.d.ts.map +1 -0
- package/dist/commands/abilities/run.js +468 -0
- package/dist/commands/abilities/run.js.map +1 -0
- package/dist/commands/chat.d.ts +54 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +384 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/config/show.d.ts +54 -0
- package/dist/commands/config/show.d.ts.map +1 -0
- package/dist/commands/config/show.js +324 -0
- package/dist/commands/config/show.js.map +1 -0
- package/dist/commands/doctor.d.ts +77 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +412 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/jobs/watch.d.ts +50 -0
- package/dist/commands/jobs/watch.d.ts.map +1 -0
- package/dist/commands/jobs/watch.js +269 -0
- package/dist/commands/jobs/watch.js.map +1 -0
- package/dist/commands/login.d.ts +25 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +165 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/profile/delete.d.ts +22 -0
- package/dist/commands/profile/delete.d.ts.map +1 -0
- package/dist/commands/profile/delete.js +57 -0
- package/dist/commands/profile/delete.js.map +1 -0
- package/dist/commands/profile/list.d.ts +19 -0
- package/dist/commands/profile/list.d.ts.map +1 -0
- package/dist/commands/profile/list.js +53 -0
- package/dist/commands/profile/list.js.map +1 -0
- package/dist/commands/profile/use.d.ts +22 -0
- package/dist/commands/profile/use.d.ts.map +1 -0
- package/dist/commands/profile/use.js +46 -0
- package/dist/commands/profile/use.js.map +1 -0
- package/dist/config/fs-utils.d.ts +14 -0
- package/dist/config/fs-utils.d.ts.map +1 -0
- package/dist/config/fs-utils.js +31 -0
- package/dist/config/fs-utils.js.map +1 -0
- package/dist/config/keychain.d.ts +53 -0
- package/dist/config/keychain.d.ts.map +1 -0
- package/dist/config/keychain.js +175 -0
- package/dist/config/keychain.js.map +1 -0
- package/dist/config/profile-store.d.ts +85 -0
- package/dist/config/profile-store.d.ts.map +1 -0
- package/dist/config/profile-store.js +228 -0
- package/dist/config/profile-store.js.map +1 -0
- package/dist/config/settings.d.ts +71 -0
- package/dist/config/settings.d.ts.map +1 -0
- package/dist/config/settings.js +151 -0
- package/dist/config/settings.js.map +1 -0
- package/dist/core/abilities-executor.d.ts +126 -0
- package/dist/core/abilities-executor.d.ts.map +1 -0
- package/dist/core/abilities-executor.js +264 -0
- package/dist/core/abilities-executor.js.map +1 -0
- package/dist/core/batch-manager.d.ts +113 -0
- package/dist/core/batch-manager.d.ts.map +1 -0
- package/dist/core/batch-manager.js +244 -0
- package/dist/core/batch-manager.js.map +1 -0
- package/dist/core/http-client.d.ts +111 -0
- package/dist/core/http-client.d.ts.map +1 -0
- package/dist/core/http-client.js +329 -0
- package/dist/core/http-client.js.map +1 -0
- package/dist/core/safety-controller.d.ts +114 -0
- package/dist/core/safety-controller.d.ts.map +1 -0
- package/dist/core/safety-controller.js +229 -0
- package/dist/core/safety-controller.js.map +1 -0
- package/dist/hooks/command-not-found.d.ts +12 -0
- package/dist/hooks/command-not-found.d.ts.map +1 -0
- package/dist/hooks/command-not-found.js +58 -0
- package/dist/hooks/command-not-found.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/base-command.d.ts +123 -0
- package/dist/lib/base-command.d.ts.map +1 -0
- package/dist/lib/base-command.js +285 -0
- package/dist/lib/base-command.js.map +1 -0
- package/dist/output/formatter.d.ts +48 -0
- package/dist/output/formatter.d.ts.map +1 -0
- package/dist/output/formatter.js +138 -0
- package/dist/output/formatter.js.map +1 -0
- package/dist/output/json-envelope.d.ts +43 -0
- package/dist/output/json-envelope.d.ts.map +1 -0
- package/dist/output/json-envelope.js +73 -0
- package/dist/output/json-envelope.js.map +1 -0
- package/dist/utils/audit-logger.d.ts +97 -0
- package/dist/utils/audit-logger.d.ts.map +1 -0
- package/dist/utils/audit-logger.js +169 -0
- package/dist/utils/audit-logger.js.map +1 -0
- package/dist/utils/colors.d.ts +29 -0
- package/dist/utils/colors.d.ts.map +1 -0
- package/dist/utils/colors.js +36 -0
- package/dist/utils/colors.js.map +1 -0
- package/dist/utils/errors.d.ts +107 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +149 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/exit-codes.d.ts +21 -0
- package/dist/utils/exit-codes.d.ts.map +1 -0
- package/dist/utils/exit-codes.js +20 -0
- package/dist/utils/exit-codes.js.map +1 -0
- package/dist/utils/format.d.ts +64 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +69 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/prompt.d.ts +34 -0
- package/dist/utils/prompt.d.ts.map +1 -0
- package/dist/utils/prompt.js +132 -0
- package/dist/utils/prompt.js.map +1 -0
- package/dist/utils/retry.d.ts +59 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +96 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/terminal-sanitizer.d.ts +60 -0
- package/dist/utils/terminal-sanitizer.d.ts.map +1 -0
- package/dist/utils/terminal-sanitizer.js +166 -0
- package/dist/utils/terminal-sanitizer.js.map +1 -0
- package/dist/validation/input-sanitizer.d.ts +76 -0
- package/dist/validation/input-sanitizer.d.ts.map +1 -0
- package/dist/validation/input-sanitizer.js +199 -0
- package/dist/validation/input-sanitizer.js.map +1 -0
- package/dist/validation/schema-validator.d.ts +75 -0
- package/dist/validation/schema-validator.d.ts.map +1 -0
- package/dist/validation/schema-validator.js +147 -0
- package/dist/validation/schema-validator.js.map +1 -0
- package/oclif.manifest.json +857 -0
- package/package.json +101 -0
- package/scripts/completions/README.md +221 -0
- package/scripts/completions/mainwpcontrol.bash +193 -0
- package/scripts/completions/mainwpcontrol.zsh +267 -0
- package/scripts/completions/profile-completer.sh +35 -0
- package/scripts/completions/regenerate.sh +78 -0
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Show Command for mainwpcontrol
|
|
3
|
+
*
|
|
4
|
+
* Displays current configuration and settings.
|
|
5
|
+
*
|
|
6
|
+
* Shows:
|
|
7
|
+
* - Active profile configuration
|
|
8
|
+
* - Credential storage status
|
|
9
|
+
* - LLM provider configuration
|
|
10
|
+
* - Settings
|
|
11
|
+
* - Configuration file paths
|
|
12
|
+
*/
|
|
13
|
+
import { Flags } from '@oclif/core';
|
|
14
|
+
import { join } from 'node:path';
|
|
15
|
+
import { BaseCommand, commonFlags } from '../../lib/base-command.js';
|
|
16
|
+
import { getProfileStore } from '../../config/profile-store.js';
|
|
17
|
+
import { getKeychain } from '../../config/keychain.js';
|
|
18
|
+
import { getConfigDir, getSettingsPath, } from '../../config/settings.js';
|
|
19
|
+
import { PROVIDER_ENV_VARS, resolveProviderSelection, } from '../../chat/providers/provider.js';
|
|
20
|
+
import { maskPassword, maskApiKey } from '../../utils/format.js';
|
|
21
|
+
import { color, colors } from '../../utils/colors.js';
|
|
22
|
+
export default class ConfigShowCommand extends BaseCommand {
|
|
23
|
+
static description = 'Display current configuration and settings';
|
|
24
|
+
static examples = [
|
|
25
|
+
{
|
|
26
|
+
command: '<%= config.bin %> config show',
|
|
27
|
+
description: 'Show current configuration',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
command: '<%= config.bin %> config show --json',
|
|
31
|
+
description: 'Output configuration in JSON format',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
command: '<%= config.bin %> config show --verbose',
|
|
35
|
+
description: 'Show detailed configuration including all settings',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
static flags = {
|
|
39
|
+
...commonFlags,
|
|
40
|
+
verbose: Flags.boolean({
|
|
41
|
+
char: 'v',
|
|
42
|
+
description: 'Show detailed output including all settings',
|
|
43
|
+
default: false,
|
|
44
|
+
}),
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Don't require a profile for config show command
|
|
48
|
+
*/
|
|
49
|
+
needsProfile() {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
async run() {
|
|
53
|
+
const { flags } = await this.parse(ConfigShowCommand);
|
|
54
|
+
await this.initCommon(flags);
|
|
55
|
+
// Collect configuration data
|
|
56
|
+
const configDisplay = await this.collectConfigData();
|
|
57
|
+
// Output
|
|
58
|
+
if (this.jsonOutput) {
|
|
59
|
+
this.output(configDisplay);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.displayConfig(configDisplay, flags.verbose);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Collect all configuration data
|
|
67
|
+
*/
|
|
68
|
+
async collectConfigData() {
|
|
69
|
+
const configDir = getConfigDir();
|
|
70
|
+
return {
|
|
71
|
+
profile: await this.collectProfileData(),
|
|
72
|
+
llmProvider: this.collectLLMProviderData(),
|
|
73
|
+
settings: this.rawSettings,
|
|
74
|
+
effectiveSettings: this.settings,
|
|
75
|
+
paths: {
|
|
76
|
+
configDir,
|
|
77
|
+
profilesFile: join(configDir, 'profiles.json'),
|
|
78
|
+
settingsFile: getSettingsPath(),
|
|
79
|
+
auditLog: join(configDir, 'audit.log'),
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Collect profile configuration data
|
|
85
|
+
*/
|
|
86
|
+
async collectProfileData() {
|
|
87
|
+
try {
|
|
88
|
+
const profileStore = getProfileStore();
|
|
89
|
+
const activeProfile = await profileStore.getActive();
|
|
90
|
+
if (!activeProfile) {
|
|
91
|
+
return {
|
|
92
|
+
active: null,
|
|
93
|
+
dashboardUrl: null,
|
|
94
|
+
username: null,
|
|
95
|
+
skipSSLVerification: false,
|
|
96
|
+
skipSSLVerificationSource: 'default',
|
|
97
|
+
allowInsecureHttp: this.settings.allowInsecureHttp,
|
|
98
|
+
credentialsSource: 'none',
|
|
99
|
+
credentialsMasked: null,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
// Check credentials from both sources explicitly
|
|
103
|
+
const keychain = getKeychain();
|
|
104
|
+
const keychainAvailable = await keychain.isAvailable();
|
|
105
|
+
const envPassword = process.env['MAINWP_APP_PASSWORD'];
|
|
106
|
+
// Get password (keychain.get includes env fallback)
|
|
107
|
+
const password = await keychain.get(activeProfile.name);
|
|
108
|
+
let credentialsSource = 'none';
|
|
109
|
+
let credentialsMasked = null;
|
|
110
|
+
if (password) {
|
|
111
|
+
credentialsMasked = maskPassword(password);
|
|
112
|
+
// Determine source with correct priority
|
|
113
|
+
// keychain.get() checks keychain first, then falls back to env
|
|
114
|
+
if (!keychainAvailable) {
|
|
115
|
+
// Keychain not available, password must be from environment
|
|
116
|
+
credentialsSource = 'environment';
|
|
117
|
+
}
|
|
118
|
+
else if (!envPassword) {
|
|
119
|
+
// Keychain available, no env var, password must be from keychain
|
|
120
|
+
credentialsSource = 'keychain';
|
|
121
|
+
}
|
|
122
|
+
else if (password !== envPassword) {
|
|
123
|
+
// Both available but passwords differ, password is from keychain
|
|
124
|
+
credentialsSource = 'keychain';
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
// Keychain available, env set, passwords match
|
|
128
|
+
// Password could be from keychain entry OR env fallback
|
|
129
|
+
// Since we can't distinguish, report 'environment' when env is explicitly set
|
|
130
|
+
credentialsSource = 'environment';
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
else if (envPassword) {
|
|
134
|
+
// keychain.get returned nothing but env var is set
|
|
135
|
+
// This handles edge cases where keychain lookup failed
|
|
136
|
+
credentialsMasked = maskPassword(envPassword);
|
|
137
|
+
credentialsSource = 'environment';
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
active: activeProfile.name,
|
|
141
|
+
dashboardUrl: activeProfile.dashboardUrl,
|
|
142
|
+
username: activeProfile.username,
|
|
143
|
+
skipSSLVerification: activeProfile.skipSSLVerification ?? this.settings.skipSSLVerification,
|
|
144
|
+
skipSSLVerificationSource: activeProfile.skipSSLVerification !== undefined
|
|
145
|
+
? 'profile'
|
|
146
|
+
: this.settings.skipSSLVerification
|
|
147
|
+
? 'settings'
|
|
148
|
+
: 'default',
|
|
149
|
+
allowInsecureHttp: this.settings.allowInsecureHttp,
|
|
150
|
+
credentialsSource,
|
|
151
|
+
credentialsMasked,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
// Return empty profile data on error
|
|
156
|
+
return {
|
|
157
|
+
active: null,
|
|
158
|
+
dashboardUrl: null,
|
|
159
|
+
username: null,
|
|
160
|
+
skipSSLVerification: false,
|
|
161
|
+
skipSSLVerificationSource: 'default',
|
|
162
|
+
allowInsecureHttp: this.settings.allowInsecureHttp,
|
|
163
|
+
credentialsSource: 'none',
|
|
164
|
+
credentialsMasked: null,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Collect LLM provider data
|
|
170
|
+
*/
|
|
171
|
+
collectLLMProviderData() {
|
|
172
|
+
const resolution = resolveProviderSelection({
|
|
173
|
+
envProvider: process.env['MAINWP_LLM_PROVIDER'],
|
|
174
|
+
settingsProvider: this.settings.llmProvider,
|
|
175
|
+
timeout: this.settings.timeout,
|
|
176
|
+
});
|
|
177
|
+
if (!resolution.name) {
|
|
178
|
+
return {
|
|
179
|
+
name: null,
|
|
180
|
+
apiKeyMasked: null,
|
|
181
|
+
source: resolution.source,
|
|
182
|
+
configured: false,
|
|
183
|
+
warnings: resolution.warnings,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
if (!resolution.configured) {
|
|
187
|
+
return {
|
|
188
|
+
name: resolution.name,
|
|
189
|
+
apiKeyMasked: null,
|
|
190
|
+
source: resolution.source,
|
|
191
|
+
configured: false,
|
|
192
|
+
warnings: resolution.warnings,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
return {
|
|
196
|
+
name: resolution.name,
|
|
197
|
+
apiKeyMasked: maskApiKey(resolution.config.apiKey),
|
|
198
|
+
source: resolution.source,
|
|
199
|
+
configured: true,
|
|
200
|
+
warnings: resolution.warnings,
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Display configuration in human-readable format
|
|
205
|
+
*/
|
|
206
|
+
displayConfig(config, verbose) {
|
|
207
|
+
this.log('\n MainWP Control CLI - Configuration\n');
|
|
208
|
+
this.log(' ' + '─'.repeat(40));
|
|
209
|
+
// Profile Configuration Section
|
|
210
|
+
this.log(`\n ${color('Profile Configuration', colors.bold)}`);
|
|
211
|
+
if (config.profile.active) {
|
|
212
|
+
this.log(` Active Profile: ${color(config.profile.active, colors.green)}`);
|
|
213
|
+
this.log(` Dashboard URL: ${config.profile.dashboardUrl}`);
|
|
214
|
+
this.log(` Username: ${config.profile.username}`);
|
|
215
|
+
this.log(` SSL Verify: ${config.profile.skipSSLVerification ? color('Disabled', colors.yellow) : color('Enabled', colors.green)}${this.describeSSLSource(config.profile.skipSSLVerificationSource)}`);
|
|
216
|
+
this.log(` HTTP Allowed: ${config.profile.allowInsecureHttp ? color('Enabled (insecure)', colors.yellow) : color('Disabled', colors.green)}`);
|
|
217
|
+
if (config.profile.credentialsSource === 'none') {
|
|
218
|
+
this.log(` Credentials: ${color('✗ Not found', colors.red)}`);
|
|
219
|
+
this.log(` ${color('Run `mainwpcontrol login` or set MAINWP_APP_PASSWORD', colors.gray)}`);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
const sourceLabel = config.profile.credentialsSource === 'keychain'
|
|
223
|
+
? 'Stored in keychain'
|
|
224
|
+
: 'From environment variable';
|
|
225
|
+
this.log(` Credentials: ${color('✓', colors.green)} ${sourceLabel} (${config.profile.credentialsMasked})`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
this.log(` ${color('No active profile configured', colors.yellow)}`);
|
|
230
|
+
this.log(` ${color('Run `mainwpcontrol login` or `mainwpcontrol profile use <name>`', colors.gray)}`);
|
|
231
|
+
// Show available profiles count
|
|
232
|
+
this.showAvailableProfilesHint();
|
|
233
|
+
}
|
|
234
|
+
// LLM Provider Section
|
|
235
|
+
this.log(`\n ${color('LLM Provider', colors.bold)}`);
|
|
236
|
+
if (config.llmProvider.configured) {
|
|
237
|
+
this.log(` Provider: ${color(config.llmProvider.name, colors.green)}`);
|
|
238
|
+
this.log(` API Key: ${config.llmProvider.apiKeyMasked}`);
|
|
239
|
+
this.log(` Source: ${config.llmProvider.source}`);
|
|
240
|
+
this.log(` Status: ${color('✓ Configured', colors.green)}`);
|
|
241
|
+
}
|
|
242
|
+
else if (config.llmProvider.name) {
|
|
243
|
+
this.log(` Provider: ${color(config.llmProvider.name, colors.yellow)}`);
|
|
244
|
+
this.log(` Source: ${config.llmProvider.source}`);
|
|
245
|
+
this.log(` Status: ${color('⚠ API key not set', colors.yellow)}`);
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
this.log(` ${color('No LLM provider configured', colors.yellow)}`);
|
|
249
|
+
this.log(` ${color('Chat mode requires one of these environment variables:', colors.gray)}`);
|
|
250
|
+
for (const [name, envConfig] of Object.entries(PROVIDER_ENV_VARS)) {
|
|
251
|
+
this.log(` ${color(` ${name}: ${envConfig.key}`, colors.gray)}`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
for (const warning of config.llmProvider.warnings) {
|
|
255
|
+
this.log(` ${color(warning, colors.yellow)}`);
|
|
256
|
+
}
|
|
257
|
+
// Settings Section
|
|
258
|
+
this.log(`\n ${color('Settings', colors.bold)}`);
|
|
259
|
+
const hasSettings = Object.keys(config.settings).length > 0;
|
|
260
|
+
if (hasSettings || verbose) {
|
|
261
|
+
const timeout = config.effectiveSettings.timeout;
|
|
262
|
+
const debug = config.effectiveSettings.debug;
|
|
263
|
+
const chatContextMessages = config.effectiveSettings.chatContextMessages;
|
|
264
|
+
const chatContextTokens = config.effectiveSettings.chatContextTokens;
|
|
265
|
+
const defaultProvider = config.effectiveSettings.llmProvider;
|
|
266
|
+
const allowInsecureHttp = config.effectiveSettings.allowInsecureHttp;
|
|
267
|
+
const skipSSLVerification = config.effectiveSettings.skipSSLVerification;
|
|
268
|
+
this.log(` Timeout: ${timeout}ms${config.settings.timeout === undefined ? color(' (default)', colors.gray) : ''}`);
|
|
269
|
+
this.log(` Debug Mode: ${debug ? 'Enabled' : 'Disabled'}${config.settings.debug === undefined ? color(' (default)', colors.gray) : ''}`);
|
|
270
|
+
this.log(` Chat Context: ${chatContextMessages} messages${config.settings.chatContextMessages === undefined ? color(' (default)', colors.gray) : ''}`);
|
|
271
|
+
if (defaultProvider !== undefined || verbose) {
|
|
272
|
+
this.log(` Default LLM: ${defaultProvider ?? color('Auto-detect', colors.gray)}`);
|
|
273
|
+
}
|
|
274
|
+
if (chatContextTokens !== undefined && verbose) {
|
|
275
|
+
this.log(` Token Limit: ${chatContextTokens}`);
|
|
276
|
+
}
|
|
277
|
+
if (allowInsecureHttp || verbose) {
|
|
278
|
+
this.log(` Allow HTTP: ${allowInsecureHttp ? color('Enabled (insecure)', colors.yellow) : color('Disabled', colors.green)}`);
|
|
279
|
+
}
|
|
280
|
+
if (skipSSLVerification || verbose) {
|
|
281
|
+
this.log(` Global SSL Skip: ${skipSSLVerification ? color('Enabled (advanced)', colors.yellow) : color('Disabled', colors.green)}`);
|
|
282
|
+
}
|
|
283
|
+
if (!hasSettings && verbose) {
|
|
284
|
+
this.log(` ${color('Using all default settings', colors.gray)}`);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
this.log(` ${color('Using default settings (use -v for details)', colors.gray)}`);
|
|
289
|
+
}
|
|
290
|
+
// Configuration Files Section
|
|
291
|
+
this.log(`\n ${color('Configuration Files', colors.bold)}`);
|
|
292
|
+
this.log(` Config Dir: ${config.paths.configDir}`);
|
|
293
|
+
this.log(` Profiles: ${config.paths.profilesFile}`);
|
|
294
|
+
this.log(` Settings: ${config.paths.settingsFile}`);
|
|
295
|
+
this.log(` Audit Log: ${config.paths.auditLog}`);
|
|
296
|
+
this.log('\n ' + '─'.repeat(40) + '\n');
|
|
297
|
+
}
|
|
298
|
+
describeSSLSource(source) {
|
|
299
|
+
switch (source) {
|
|
300
|
+
case 'profile':
|
|
301
|
+
return color(' (profile)', colors.gray);
|
|
302
|
+
case 'settings':
|
|
303
|
+
return color(' (settings fallback)', colors.gray);
|
|
304
|
+
default:
|
|
305
|
+
return '';
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Show hint about available profiles
|
|
310
|
+
*/
|
|
311
|
+
async showAvailableProfilesHint() {
|
|
312
|
+
try {
|
|
313
|
+
const profileStore = getProfileStore();
|
|
314
|
+
const profiles = await profileStore.list();
|
|
315
|
+
if (profiles.length > 0) {
|
|
316
|
+
this.log(` ${color(`${profiles.length} profile(s) available: ${profiles.map((p) => p.name).join(', ')}`, colors.gray)}`);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
catch {
|
|
320
|
+
// Ignore errors
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
//# sourceMappingURL=show.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/commands/config/show.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Doctor Command for mainwpcontrol
|
|
3
|
+
*
|
|
4
|
+
* Diagnoses configuration issues and validates connectivity.
|
|
5
|
+
*
|
|
6
|
+
* Checks:
|
|
7
|
+
* - Profile configuration
|
|
8
|
+
* - Credential storage (keychain)
|
|
9
|
+
* - Dashboard connectivity
|
|
10
|
+
* - Abilities API availability
|
|
11
|
+
* - LLM provider configuration
|
|
12
|
+
*/
|
|
13
|
+
import { BaseCommand } from '../lib/base-command.js';
|
|
14
|
+
export default class DoctorCommand extends BaseCommand {
|
|
15
|
+
static description: string;
|
|
16
|
+
static examples: {
|
|
17
|
+
command: string;
|
|
18
|
+
description: string;
|
|
19
|
+
}[];
|
|
20
|
+
static flags: {
|
|
21
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
22
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
23
|
+
quiet: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
24
|
+
profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
25
|
+
debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Don't require a profile for doctor command
|
|
29
|
+
*/
|
|
30
|
+
protected needsProfile(): boolean;
|
|
31
|
+
run(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Check if profiles are configured
|
|
34
|
+
*/
|
|
35
|
+
private checkProfiles;
|
|
36
|
+
/**
|
|
37
|
+
* Check keychain availability
|
|
38
|
+
*/
|
|
39
|
+
private checkKeychain;
|
|
40
|
+
/**
|
|
41
|
+
* Check active profile
|
|
42
|
+
*/
|
|
43
|
+
private checkActiveProfile;
|
|
44
|
+
/**
|
|
45
|
+
* Check credentials
|
|
46
|
+
*/
|
|
47
|
+
private checkCredentials;
|
|
48
|
+
/**
|
|
49
|
+
* Fetch abilities once for both dashboard connection and API checks
|
|
50
|
+
*/
|
|
51
|
+
private fetchAbilities;
|
|
52
|
+
/**
|
|
53
|
+
* Check Abilities API from pre-fetched list
|
|
54
|
+
*/
|
|
55
|
+
private checkAbilitiesFromList;
|
|
56
|
+
/**
|
|
57
|
+
* Check LLM provider configuration
|
|
58
|
+
*/
|
|
59
|
+
private checkLLMProvider;
|
|
60
|
+
/**
|
|
61
|
+
* Build summary report
|
|
62
|
+
*/
|
|
63
|
+
private buildReport;
|
|
64
|
+
/**
|
|
65
|
+
* Display report in human-readable format
|
|
66
|
+
*/
|
|
67
|
+
private displayReport;
|
|
68
|
+
/**
|
|
69
|
+
* Get status icon
|
|
70
|
+
*/
|
|
71
|
+
private getStatusIcon;
|
|
72
|
+
/**
|
|
73
|
+
* Get status color code string
|
|
74
|
+
*/
|
|
75
|
+
private getStatusColorCode;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,WAAW,EAAe,MAAM,wBAAwB,CAAC;AAqClE,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,OAAgB,WAAW,SAAoD;IAE/E,OAAgB,QAAQ;;;QAStB;IAEF,OAAgB,KAAK;;;;;;MAOnB;IAEF;;OAEG;cACgB,YAAY,IAAI,OAAO;IAIpC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC1B;;OAEG;YACW,aAAa;IA8B3B;;OAEG;YACW,aAAa;IA+B3B;;OAEG;YACW,kBAAkB;IAgChC;;OAEG;YACW,gBAAgB;IA0C9B;;OAEG;YACW,cAAc;IAsD5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAoC9B;;OAEG;YACW,gBAAgB;IA+C9B;;OAEG;IACH,OAAO,CAAC,WAAW;IAmBnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAoCrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAU3B"}
|