@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.
Files changed (204) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +583 -0
  3. package/bin/_exit.js +12 -0
  4. package/bin/dev.js +7 -0
  5. package/bin/run.js +7 -0
  6. package/dist/chat/chat-engine.d.ts +213 -0
  7. package/dist/chat/chat-engine.d.ts.map +1 -0
  8. package/dist/chat/chat-engine.js +636 -0
  9. package/dist/chat/chat-engine.js.map +1 -0
  10. package/dist/chat/index.d.ts +10 -0
  11. package/dist/chat/index.d.ts.map +1 -0
  12. package/dist/chat/index.js +14 -0
  13. package/dist/chat/index.js.map +1 -0
  14. package/dist/chat/providers/anthropic.d.ts +52 -0
  15. package/dist/chat/providers/anthropic.d.ts.map +1 -0
  16. package/dist/chat/providers/anthropic.js +292 -0
  17. package/dist/chat/providers/anthropic.js.map +1 -0
  18. package/dist/chat/providers/gemini.d.ts +52 -0
  19. package/dist/chat/providers/gemini.d.ts.map +1 -0
  20. package/dist/chat/providers/gemini.js +284 -0
  21. package/dist/chat/providers/gemini.js.map +1 -0
  22. package/dist/chat/providers/index.d.ts +19 -0
  23. package/dist/chat/providers/index.d.ts.map +1 -0
  24. package/dist/chat/providers/index.js +23 -0
  25. package/dist/chat/providers/index.js.map +1 -0
  26. package/dist/chat/providers/local.d.ts +37 -0
  27. package/dist/chat/providers/local.d.ts.map +1 -0
  28. package/dist/chat/providers/local.js +130 -0
  29. package/dist/chat/providers/local.js.map +1 -0
  30. package/dist/chat/providers/openai-compatible.d.ts +155 -0
  31. package/dist/chat/providers/openai-compatible.d.ts.map +1 -0
  32. package/dist/chat/providers/openai-compatible.js +264 -0
  33. package/dist/chat/providers/openai-compatible.js.map +1 -0
  34. package/dist/chat/providers/openai.d.ts +24 -0
  35. package/dist/chat/providers/openai.d.ts.map +1 -0
  36. package/dist/chat/providers/openai.js +62 -0
  37. package/dist/chat/providers/openai.js.map +1 -0
  38. package/dist/chat/providers/openrouter.d.ts +26 -0
  39. package/dist/chat/providers/openrouter.d.ts.map +1 -0
  40. package/dist/chat/providers/openrouter.js +65 -0
  41. package/dist/chat/providers/openrouter.js.map +1 -0
  42. package/dist/chat/providers/provider-fetch.d.ts +15 -0
  43. package/dist/chat/providers/provider-fetch.d.ts.map +1 -0
  44. package/dist/chat/providers/provider-fetch.js +35 -0
  45. package/dist/chat/providers/provider-fetch.js.map +1 -0
  46. package/dist/chat/providers/provider.d.ts +214 -0
  47. package/dist/chat/providers/provider.d.ts.map +1 -0
  48. package/dist/chat/providers/provider.js +166 -0
  49. package/dist/chat/providers/provider.js.map +1 -0
  50. package/dist/chat/providers/sse-reader.d.ts +21 -0
  51. package/dist/chat/providers/sse-reader.d.ts.map +1 -0
  52. package/dist/chat/providers/sse-reader.js +48 -0
  53. package/dist/chat/providers/sse-reader.js.map +1 -0
  54. package/dist/chat/system-prompt.d.ts +33 -0
  55. package/dist/chat/system-prompt.d.ts.map +1 -0
  56. package/dist/chat/system-prompt.js +166 -0
  57. package/dist/chat/system-prompt.js.map +1 -0
  58. package/dist/chat/tool-envelope.d.ts +72 -0
  59. package/dist/chat/tool-envelope.d.ts.map +1 -0
  60. package/dist/chat/tool-envelope.js +263 -0
  61. package/dist/chat/tool-envelope.js.map +1 -0
  62. package/dist/commands/abilities/info.d.ts +21 -0
  63. package/dist/commands/abilities/info.d.ts.map +1 -0
  64. package/dist/commands/abilities/info.js +80 -0
  65. package/dist/commands/abilities/info.js.map +1 -0
  66. package/dist/commands/abilities/list.d.ts +19 -0
  67. package/dist/commands/abilities/list.d.ts.map +1 -0
  68. package/dist/commands/abilities/list.js +98 -0
  69. package/dist/commands/abilities/list.js.map +1 -0
  70. package/dist/commands/abilities/run.d.ts +75 -0
  71. package/dist/commands/abilities/run.d.ts.map +1 -0
  72. package/dist/commands/abilities/run.js +468 -0
  73. package/dist/commands/abilities/run.js.map +1 -0
  74. package/dist/commands/chat.d.ts +54 -0
  75. package/dist/commands/chat.d.ts.map +1 -0
  76. package/dist/commands/chat.js +384 -0
  77. package/dist/commands/chat.js.map +1 -0
  78. package/dist/commands/config/show.d.ts +54 -0
  79. package/dist/commands/config/show.d.ts.map +1 -0
  80. package/dist/commands/config/show.js +324 -0
  81. package/dist/commands/config/show.js.map +1 -0
  82. package/dist/commands/doctor.d.ts +77 -0
  83. package/dist/commands/doctor.d.ts.map +1 -0
  84. package/dist/commands/doctor.js +412 -0
  85. package/dist/commands/doctor.js.map +1 -0
  86. package/dist/commands/jobs/watch.d.ts +50 -0
  87. package/dist/commands/jobs/watch.d.ts.map +1 -0
  88. package/dist/commands/jobs/watch.js +269 -0
  89. package/dist/commands/jobs/watch.js.map +1 -0
  90. package/dist/commands/login.d.ts +25 -0
  91. package/dist/commands/login.d.ts.map +1 -0
  92. package/dist/commands/login.js +165 -0
  93. package/dist/commands/login.js.map +1 -0
  94. package/dist/commands/profile/delete.d.ts +22 -0
  95. package/dist/commands/profile/delete.d.ts.map +1 -0
  96. package/dist/commands/profile/delete.js +57 -0
  97. package/dist/commands/profile/delete.js.map +1 -0
  98. package/dist/commands/profile/list.d.ts +19 -0
  99. package/dist/commands/profile/list.d.ts.map +1 -0
  100. package/dist/commands/profile/list.js +53 -0
  101. package/dist/commands/profile/list.js.map +1 -0
  102. package/dist/commands/profile/use.d.ts +22 -0
  103. package/dist/commands/profile/use.d.ts.map +1 -0
  104. package/dist/commands/profile/use.js +46 -0
  105. package/dist/commands/profile/use.js.map +1 -0
  106. package/dist/config/fs-utils.d.ts +14 -0
  107. package/dist/config/fs-utils.d.ts.map +1 -0
  108. package/dist/config/fs-utils.js +31 -0
  109. package/dist/config/fs-utils.js.map +1 -0
  110. package/dist/config/keychain.d.ts +53 -0
  111. package/dist/config/keychain.d.ts.map +1 -0
  112. package/dist/config/keychain.js +175 -0
  113. package/dist/config/keychain.js.map +1 -0
  114. package/dist/config/profile-store.d.ts +85 -0
  115. package/dist/config/profile-store.d.ts.map +1 -0
  116. package/dist/config/profile-store.js +228 -0
  117. package/dist/config/profile-store.js.map +1 -0
  118. package/dist/config/settings.d.ts +71 -0
  119. package/dist/config/settings.d.ts.map +1 -0
  120. package/dist/config/settings.js +151 -0
  121. package/dist/config/settings.js.map +1 -0
  122. package/dist/core/abilities-executor.d.ts +126 -0
  123. package/dist/core/abilities-executor.d.ts.map +1 -0
  124. package/dist/core/abilities-executor.js +264 -0
  125. package/dist/core/abilities-executor.js.map +1 -0
  126. package/dist/core/batch-manager.d.ts +113 -0
  127. package/dist/core/batch-manager.d.ts.map +1 -0
  128. package/dist/core/batch-manager.js +244 -0
  129. package/dist/core/batch-manager.js.map +1 -0
  130. package/dist/core/http-client.d.ts +111 -0
  131. package/dist/core/http-client.d.ts.map +1 -0
  132. package/dist/core/http-client.js +329 -0
  133. package/dist/core/http-client.js.map +1 -0
  134. package/dist/core/safety-controller.d.ts +114 -0
  135. package/dist/core/safety-controller.d.ts.map +1 -0
  136. package/dist/core/safety-controller.js +229 -0
  137. package/dist/core/safety-controller.js.map +1 -0
  138. package/dist/hooks/command-not-found.d.ts +12 -0
  139. package/dist/hooks/command-not-found.d.ts.map +1 -0
  140. package/dist/hooks/command-not-found.js +58 -0
  141. package/dist/hooks/command-not-found.js.map +1 -0
  142. package/dist/index.d.ts +7 -0
  143. package/dist/index.d.ts.map +1 -0
  144. package/dist/index.js +7 -0
  145. package/dist/index.js.map +1 -0
  146. package/dist/lib/base-command.d.ts +123 -0
  147. package/dist/lib/base-command.d.ts.map +1 -0
  148. package/dist/lib/base-command.js +285 -0
  149. package/dist/lib/base-command.js.map +1 -0
  150. package/dist/output/formatter.d.ts +48 -0
  151. package/dist/output/formatter.d.ts.map +1 -0
  152. package/dist/output/formatter.js +138 -0
  153. package/dist/output/formatter.js.map +1 -0
  154. package/dist/output/json-envelope.d.ts +43 -0
  155. package/dist/output/json-envelope.d.ts.map +1 -0
  156. package/dist/output/json-envelope.js +73 -0
  157. package/dist/output/json-envelope.js.map +1 -0
  158. package/dist/utils/audit-logger.d.ts +97 -0
  159. package/dist/utils/audit-logger.d.ts.map +1 -0
  160. package/dist/utils/audit-logger.js +169 -0
  161. package/dist/utils/audit-logger.js.map +1 -0
  162. package/dist/utils/colors.d.ts +29 -0
  163. package/dist/utils/colors.d.ts.map +1 -0
  164. package/dist/utils/colors.js +36 -0
  165. package/dist/utils/colors.js.map +1 -0
  166. package/dist/utils/errors.d.ts +107 -0
  167. package/dist/utils/errors.d.ts.map +1 -0
  168. package/dist/utils/errors.js +149 -0
  169. package/dist/utils/errors.js.map +1 -0
  170. package/dist/utils/exit-codes.d.ts +21 -0
  171. package/dist/utils/exit-codes.d.ts.map +1 -0
  172. package/dist/utils/exit-codes.js +20 -0
  173. package/dist/utils/exit-codes.js.map +1 -0
  174. package/dist/utils/format.d.ts +64 -0
  175. package/dist/utils/format.d.ts.map +1 -0
  176. package/dist/utils/format.js +69 -0
  177. package/dist/utils/format.js.map +1 -0
  178. package/dist/utils/prompt.d.ts +34 -0
  179. package/dist/utils/prompt.d.ts.map +1 -0
  180. package/dist/utils/prompt.js +132 -0
  181. package/dist/utils/prompt.js.map +1 -0
  182. package/dist/utils/retry.d.ts +59 -0
  183. package/dist/utils/retry.d.ts.map +1 -0
  184. package/dist/utils/retry.js +96 -0
  185. package/dist/utils/retry.js.map +1 -0
  186. package/dist/utils/terminal-sanitizer.d.ts +60 -0
  187. package/dist/utils/terminal-sanitizer.d.ts.map +1 -0
  188. package/dist/utils/terminal-sanitizer.js +166 -0
  189. package/dist/utils/terminal-sanitizer.js.map +1 -0
  190. package/dist/validation/input-sanitizer.d.ts +76 -0
  191. package/dist/validation/input-sanitizer.d.ts.map +1 -0
  192. package/dist/validation/input-sanitizer.js +199 -0
  193. package/dist/validation/input-sanitizer.js.map +1 -0
  194. package/dist/validation/schema-validator.d.ts +75 -0
  195. package/dist/validation/schema-validator.d.ts.map +1 -0
  196. package/dist/validation/schema-validator.js +147 -0
  197. package/dist/validation/schema-validator.js.map +1 -0
  198. package/oclif.manifest.json +857 -0
  199. package/package.json +101 -0
  200. package/scripts/completions/README.md +221 -0
  201. package/scripts/completions/mainwpcontrol.bash +193 -0
  202. package/scripts/completions/mainwpcontrol.zsh +267 -0
  203. package/scripts/completions/profile-completer.sh +35 -0
  204. 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"}