@mainwp/mcp 1.0.0-beta.1 → 1.0.0-beta.2

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 (49) hide show
  1. package/README.md +4 -0
  2. package/dist/abilities.d.ts +3 -65
  3. package/dist/abilities.d.ts.map +1 -1
  4. package/dist/abilities.js +59 -249
  5. package/dist/abilities.js.map +1 -1
  6. package/dist/config.d.ts +0 -3
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +28 -36
  9. package/dist/config.js.map +1 -1
  10. package/dist/confirmation.d.ts +55 -0
  11. package/dist/confirmation.d.ts.map +1 -0
  12. package/dist/confirmation.js +229 -0
  13. package/dist/confirmation.js.map +1 -0
  14. package/dist/errors.d.ts +4 -0
  15. package/dist/errors.d.ts.map +1 -1
  16. package/dist/errors.js +7 -1
  17. package/dist/errors.js.map +1 -1
  18. package/dist/help.d.ts +58 -0
  19. package/dist/help.d.ts.map +1 -0
  20. package/dist/help.js +75 -0
  21. package/dist/help.js.map +1 -0
  22. package/dist/http-client.d.ts +40 -0
  23. package/dist/http-client.d.ts.map +1 -0
  24. package/dist/http-client.js +167 -0
  25. package/dist/http-client.js.map +1 -0
  26. package/dist/index.js +32 -96
  27. package/dist/index.js.map +1 -1
  28. package/dist/logging.d.ts.map +1 -1
  29. package/dist/logging.js +21 -29
  30. package/dist/logging.js.map +1 -1
  31. package/dist/prompts.js +2 -2
  32. package/dist/prompts.js.map +1 -1
  33. package/dist/security.d.ts +3 -1
  34. package/dist/security.d.ts.map +1 -1
  35. package/dist/security.js +26 -1
  36. package/dist/security.js.map +1 -1
  37. package/dist/session.d.ts +44 -0
  38. package/dist/session.d.ts.map +1 -0
  39. package/dist/session.js +87 -0
  40. package/dist/session.js.map +1 -0
  41. package/dist/tool-schema.d.ts +40 -0
  42. package/dist/tool-schema.d.ts.map +1 -0
  43. package/dist/tool-schema.js +309 -0
  44. package/dist/tool-schema.js.map +1 -0
  45. package/dist/tools.d.ts +1 -42
  46. package/dist/tools.d.ts.map +1 -1
  47. package/dist/tools.js +30 -647
  48. package/dist/tools.js.map +1 -1
  49. package/package.json +5 -4
package/dist/config.js CHANGED
@@ -142,7 +142,17 @@ export function loadSettingsFile() {
142
142
  });
143
143
  }
144
144
  validateSettingsFile(parsed, filePath);
145
- console.error('[mainwp-mcp] Loaded settings from file');
145
+ // Warn when settings are loaded from CWD — a malicious settings.json in a shared
146
+ // or attacker-writable directory could redirect API calls to capture credentials.
147
+ const cwdPath = searchPaths[0];
148
+ const homePath = searchPaths[1];
149
+ if (filePath === cwdPath && cwdPath !== homePath) {
150
+ console.error(`[mainwp-mcp] WARNING: Loading settings from working directory (${filePath}). ` +
151
+ `Ensure this file is trusted. Prefer ~/.config/mainwp-mcp/settings.json for production.`);
152
+ }
153
+ else {
154
+ console.error('[mainwp-mcp] Loaded settings from file');
155
+ }
146
156
  return parsed;
147
157
  }
148
158
  }
@@ -299,13 +309,11 @@ export function loadConfig() {
299
309
  if (!dashboardUrl) {
300
310
  throw new Error('MAINWP_URL is required (set via environment variable or settings.json)');
301
311
  }
302
- // Determine auth type
303
312
  const hasBasicAuth = username && appPassword;
304
313
  const hasBearerAuth = apiToken;
305
314
  if (!hasBasicAuth && !hasBearerAuth) {
306
315
  throw new Error('Authentication required: Set MAINWP_USER + MAINWP_APP_PASSWORD or MAINWP_TOKEN (via environment variables or settings.json)');
307
316
  }
308
- // Normalize URL (remove trailing slash)
309
317
  const normalizedUrl = dashboardUrl.replace(/\/+$/, '');
310
318
  // Validate URL format
311
319
  let parsedUrl;
@@ -323,36 +331,8 @@ export function loadConfig() {
323
331
  }
324
332
  console.error('WARNING: dashboardUrl uses HTTP - credentials will be transmitted in plain text');
325
333
  }
326
- // Prefer basic auth (Application Password) as it works with Abilities API
327
- if (hasBasicAuth) {
328
- return {
329
- dashboardUrl: normalizedUrl,
330
- authType: 'basic',
331
- username,
332
- appPassword,
333
- skipSslVerify,
334
- allowHttp,
335
- rateLimit,
336
- requestTimeout,
337
- maxResponseSize,
338
- safeMode,
339
- requireUserConfirmation,
340
- maxSessionData,
341
- schemaVerbosity,
342
- responseFormat,
343
- retryEnabled,
344
- maxRetries,
345
- retryBaseDelay,
346
- retryMaxDelay,
347
- configSource,
348
- ...(allowedTools.length > 0 ? { allowedTools } : {}),
349
- ...(blockedTools.length > 0 ? { blockedTools } : {}),
350
- };
351
- }
352
- return {
334
+ const shared = {
353
335
  dashboardUrl: normalizedUrl,
354
- authType: 'bearer',
355
- apiToken,
356
336
  skipSslVerify,
357
337
  allowHttp,
358
338
  rateLimit,
@@ -371,6 +351,11 @@ export function loadConfig() {
371
351
  ...(allowedTools.length > 0 ? { allowedTools } : {}),
372
352
  ...(blockedTools.length > 0 ? { blockedTools } : {}),
373
353
  };
354
+ // Prefer basic auth (Application Password) as it works with Abilities API
355
+ if (hasBasicAuth) {
356
+ return { ...shared, authType: 'basic', username, appPassword };
357
+ }
358
+ return { ...shared, authType: 'bearer', apiToken };
374
359
  }
375
360
  /**
376
361
  * Serialize data as JSON using the configured response format.
@@ -386,20 +371,27 @@ export function getAbilitiesApiUrl(config) {
386
371
  return `${config.dashboardUrl}/wp-json/wp-abilities/v1`;
387
372
  }
388
373
  /**
389
- * Get authorization headers for API requests
374
+ * Get authorization headers for API requests.
375
+ * Computed once per config object and cached — credentials don't change during a server's lifetime.
390
376
  */
377
+ let cachedHeaders;
378
+ let cachedAuthConfig;
391
379
  export function getAuthHeaders(config) {
380
+ if (config === cachedAuthConfig && cachedHeaders) {
381
+ return cachedHeaders;
382
+ }
383
+ cachedAuthConfig = config;
392
384
  const headers = {
393
385
  'Content-Type': 'application/json',
394
386
  };
395
387
  if (config.authType === 'basic' && config.username && config.appPassword) {
396
- // WordPress Application Password uses Basic Auth
397
- const credentials = Buffer.from(`${config.username}:${config.appPassword}`).toString('base64');
398
- headers['Authorization'] = `Basic ${credentials}`;
388
+ headers['Authorization'] =
389
+ `Basic ${Buffer.from(`${config.username}:${config.appPassword}`).toString('base64')}`;
399
390
  }
400
391
  else if (config.authType === 'bearer' && config.apiToken) {
401
392
  headers['Authorization'] = `Bearer ${config.apiToken}`;
402
393
  }
394
+ cachedHeaders = headers;
403
395
  return headers;
404
396
  }
405
397
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Two-Phase Confirmation Flow
3
+ *
4
+ * Manages the preview → confirm → execute lifecycle for destructive operations.
5
+ * Owns the pending preview state (pendingPreviews, tokenIndex) and all
6
+ * confirmation validation logic.
7
+ */
8
+ import type { TextContent } from '@modelcontextprotocol/sdk/types.js';
9
+ import { type Ability } from './abilities.js';
10
+ import { Config } from './config.js';
11
+ import type { Logger } from './logging.js';
12
+ /**
13
+ * Clear pending previews (for testing only).
14
+ * @internal
15
+ */
16
+ export declare function clearPendingPreviews(): void;
17
+ /**
18
+ * Result of the confirmation flow evaluation.
19
+ *
20
+ * - `respond`: return the response directly to the client (preview, error, etc.)
21
+ * - `execute`: proceed with execution using the (possibly modified) effectiveArgs
22
+ * - `skip`: confirmation flow does not apply — proceed with original args
23
+ */
24
+ export type ConfirmationResult = {
25
+ action: 'respond';
26
+ response: TextContent[];
27
+ } | {
28
+ action: 'execute';
29
+ effectiveArgs: Record<string, unknown>;
30
+ } | {
31
+ action: 'skip';
32
+ };
33
+ /**
34
+ * Parameters for the confirmation flow handler
35
+ */
36
+ export interface ConfirmationFlowParams {
37
+ config: Config;
38
+ ability: Ability;
39
+ toolName: string;
40
+ abilityName: string;
41
+ args: Record<string, unknown>;
42
+ effectiveArgs: Record<string, unknown>;
43
+ logger: Logger;
44
+ signal?: AbortSignal;
45
+ }
46
+ /**
47
+ * Handle the two-phase confirmation flow for destructive operations.
48
+ *
49
+ * Evaluates the tool call arguments and returns one of:
50
+ * - `respond`: early-return response (preview, validation error, expired)
51
+ * - `execute`: proceed with modified args (user confirmed)
52
+ * - `skip`: confirmation flow doesn't apply (dry_run, no confirm param, etc.)
53
+ */
54
+ export declare function handleConfirmationFlow(params: ConfirmationFlowParams): Promise<ConfirmationResult>;
55
+ //# sourceMappingURL=confirmation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmation.d.ts","sourceRoot":"","sources":["../src/confirmation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAc,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AA6B3C;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,WAAW,EAAE,CAAA;CAAE,GAC9C;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC7D;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvB;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAiDD;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CA0L7B"}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * Two-Phase Confirmation Flow
3
+ *
4
+ * Manages the preview → confirm → execute lifecycle for destructive operations.
5
+ * Owns the pending preview state (pendingPreviews, tokenIndex) and all
6
+ * confirmation validation logic.
7
+ */
8
+ import crypto from 'crypto';
9
+ import { executeAbility } from './abilities.js';
10
+ import { formatJson } from './config.js';
11
+ import { trackSessionData } from './session.js';
12
+ import { buildInvalidParameterResponse, buildConflictingParametersResponse, buildConfirmationRequiredResponse, buildPreviewRequiredResponse, buildPreviewExpiredResponse, } from './confirmation-responses.js';
13
+ /**
14
+ * Preview tracking for two-phase confirmation flow.
15
+ * Maps preview keys to timestamps for validation and expiry.
16
+ */
17
+ const pendingPreviews = new Map();
18
+ /**
19
+ * Token index for confirmation flow.
20
+ * Maps confirmation tokens (UUIDs) to preview keys for secure token-based confirmation.
21
+ */
22
+ const tokenIndex = new Map();
23
+ /** Preview expiry time: 5 minutes in milliseconds */
24
+ const PREVIEW_EXPIRY_MS = 5 * 60 * 1000;
25
+ /** Maximum number of pending previews to prevent memory exhaustion */
26
+ const MAX_PENDING_PREVIEWS = 100;
27
+ /**
28
+ * Clear pending previews (for testing only).
29
+ * @internal
30
+ */
31
+ export function clearPendingPreviews() {
32
+ pendingPreviews.clear();
33
+ tokenIndex.clear();
34
+ }
35
+ /**
36
+ * Generate a unique preview key for a tool call.
37
+ * Excludes confirmation-related parameters (confirm, user_confirmed, dry_run)
38
+ * from the key to ensure preview and execution calls match.
39
+ */
40
+ function getPreviewKey(toolName, args) {
41
+ const { confirm: _confirm, user_confirmed: _user_confirmed, dry_run: _dry_run, confirmation_token: _confirmation_token, ...relevantArgs } = args;
42
+ const sortedKeys = Object.keys(relevantArgs).sort();
43
+ return `${toolName}:${JSON.stringify(relevantArgs, sortedKeys)}`;
44
+ }
45
+ /**
46
+ * Clean up expired preview keys and enforce maximum preview limit.
47
+ */
48
+ function cleanupExpiredPreviews() {
49
+ const now = Date.now();
50
+ // First pass: Remove expired entries
51
+ for (const [key, timestamp] of pendingPreviews.entries()) {
52
+ if (now - timestamp > PREVIEW_EXPIRY_MS) {
53
+ pendingPreviews.delete(key);
54
+ }
55
+ }
56
+ // Second pass: Enforce max size limit by removing oldest entries
57
+ if (pendingPreviews.size > MAX_PENDING_PREVIEWS) {
58
+ const sortedEntries = Array.from(pendingPreviews.entries()).sort((a, b) => a[1] - b[1]);
59
+ const toRemove = sortedEntries.slice(0, pendingPreviews.size - MAX_PENDING_PREVIEWS);
60
+ for (const [key] of toRemove) {
61
+ pendingPreviews.delete(key);
62
+ }
63
+ }
64
+ // Third pass: Clean up orphaned tokens whose preview keys no longer exist
65
+ for (const [token, previewKey] of tokenIndex.entries()) {
66
+ if (!pendingPreviews.has(previewKey)) {
67
+ tokenIndex.delete(token);
68
+ }
69
+ }
70
+ }
71
+ /**
72
+ * Handle the two-phase confirmation flow for destructive operations.
73
+ *
74
+ * Evaluates the tool call arguments and returns one of:
75
+ * - `respond`: early-return response (preview, validation error, expired)
76
+ * - `execute`: proceed with modified args (user confirmed)
77
+ * - `skip`: confirmation flow doesn't apply (dry_run, no confirm param, etc.)
78
+ */
79
+ export async function handleConfirmationFlow(params) {
80
+ const { config, ability, toolName, abilityName, args, effectiveArgs, logger, signal } = params;
81
+ const ctx = { tool: toolName, ability: abilityName };
82
+ // Check if tool supports confirmation parameter
83
+ const schemaProps = ability.input_schema?.properties;
84
+ const hasConfirmParam = schemaProps !== null && typeof schemaProps === 'object' && 'confirm' in schemaProps;
85
+ // Validation: user_confirmed on tools without confirm parameter
86
+ if (!hasConfirmParam && args.user_confirmed === true) {
87
+ logger.warning('Invalid parameter: user_confirmed on tool without confirm support', {
88
+ toolName,
89
+ abilityName,
90
+ });
91
+ return {
92
+ action: 'respond',
93
+ response: [{ type: 'text', text: formatJson(config, buildInvalidParameterResponse(ctx)) }],
94
+ };
95
+ }
96
+ if (!hasConfirmParam) {
97
+ return { action: 'skip' };
98
+ }
99
+ // Validation: Conflicting parameters (user_confirmed + dry_run)
100
+ if (args.user_confirmed === true && args.dry_run === true) {
101
+ logger.warning('Conflicting parameters: user_confirmed and dry_run both set', {
102
+ toolName,
103
+ abilityName,
104
+ userConfirmed: args.user_confirmed,
105
+ dryRun: args.dry_run,
106
+ });
107
+ return {
108
+ action: 'respond',
109
+ response: [
110
+ { type: 'text', text: formatJson(config, buildConflictingParametersResponse(ctx)) },
111
+ ],
112
+ };
113
+ }
114
+ // Case 1: Explicit dry_run bypass - skip confirmation flow entirely
115
+ if (args.dry_run === true) {
116
+ logger.debug('Explicit dry_run bypasses confirmation flow', { toolName });
117
+ return { action: 'skip' };
118
+ }
119
+ // Case 2: Preview request (confirm: true without user_confirmed)
120
+ if (args.confirm === true && args.user_confirmed !== true) {
121
+ cleanupExpiredPreviews();
122
+ // Execute preview with dry_run: true
123
+ const previewArgs = { ...effectiveArgs, dry_run: true, confirm: undefined };
124
+ const previewResult = await executeAbility(config, abilityName, previewArgs, logger, ability, signal);
125
+ // Store preview for later validation
126
+ const previewKey = getPreviewKey(toolName, args);
127
+ pendingPreviews.set(previewKey, Date.now());
128
+ // Clean up any existing token for this preview key before generating a new one
129
+ for (const [existingToken, existingKey] of tokenIndex.entries()) {
130
+ if (existingKey === previewKey) {
131
+ tokenIndex.delete(existingToken);
132
+ break;
133
+ }
134
+ }
135
+ // Generate confirmation token for secure token-based confirmation
136
+ const token = crypto.randomUUID();
137
+ tokenIndex.set(token, previewKey);
138
+ logger.info('Preview generated for confirmation', { toolName });
139
+ const confirmationResponse = buildConfirmationRequiredResponse(ctx, previewResult, token);
140
+ const previewResponse = formatJson(config, confirmationResponse);
141
+ trackSessionData(previewResponse, config, logger, 'during preview');
142
+ return {
143
+ action: 'respond',
144
+ response: [{ type: 'text', text: previewResponse }],
145
+ };
146
+ }
147
+ // Case 3: Confirmed execution (user_confirmed: true)
148
+ if (args.user_confirmed === true) {
149
+ // Warning: Ambiguous parameters (confirm + user_confirmed both set)
150
+ if (args.confirm === true) {
151
+ logger.warning('Ambiguous parameters: both confirm and user_confirmed set, treating as confirmation', { toolName, abilityName });
152
+ }
153
+ // Resolve preview key: prefer token-based lookup, fall back to key-based
154
+ let previewKey;
155
+ const confirmationToken = typeof args.confirmation_token === 'string' ? args.confirmation_token : undefined;
156
+ if (confirmationToken) {
157
+ const tokenPreviewKey = tokenIndex.get(confirmationToken);
158
+ if (!tokenPreviewKey) {
159
+ logger.warning('Confirmation failed - invalid confirmation token', { toolName });
160
+ return {
161
+ action: 'respond',
162
+ response: [{ type: 'text', text: formatJson(config, buildPreviewRequiredResponse(ctx)) }],
163
+ };
164
+ }
165
+ // Verify token belongs to this tool (prevent cross-tool reuse)
166
+ if (!tokenPreviewKey.startsWith(`${toolName}:`)) {
167
+ tokenIndex.delete(confirmationToken);
168
+ logger.warning('Confirmation failed - token belongs to different tool', { toolName });
169
+ return {
170
+ action: 'respond',
171
+ response: [{ type: 'text', text: formatJson(config, buildPreviewRequiredResponse(ctx)) }],
172
+ };
173
+ }
174
+ // Verify token matches current arguments (prevent arg-swap)
175
+ const currentPreviewKey = getPreviewKey(toolName, args);
176
+ if (currentPreviewKey !== tokenPreviewKey) {
177
+ tokenIndex.delete(confirmationToken);
178
+ logger.warning('Confirmation failed - arguments do not match preview', { toolName });
179
+ return {
180
+ action: 'respond',
181
+ response: [{ type: 'text', text: formatJson(config, buildPreviewRequiredResponse(ctx)) }],
182
+ };
183
+ }
184
+ previewKey = tokenPreviewKey;
185
+ }
186
+ else {
187
+ previewKey = getPreviewKey(toolName, args);
188
+ }
189
+ // Check preview expiry BEFORE running cleanup for more helpful error messages
190
+ const previewTimestamp = pendingPreviews.get(previewKey);
191
+ if (previewTimestamp === undefined) {
192
+ logger.warning('Confirmation failed - no preview found', { toolName });
193
+ return {
194
+ action: 'respond',
195
+ response: [{ type: 'text', text: formatJson(config, buildPreviewRequiredResponse(ctx)) }],
196
+ };
197
+ }
198
+ if (Date.now() - previewTimestamp > PREVIEW_EXPIRY_MS) {
199
+ pendingPreviews.delete(previewKey);
200
+ if (confirmationToken)
201
+ tokenIndex.delete(confirmationToken);
202
+ logger.warning('Confirmation failed - preview expired', { toolName });
203
+ return {
204
+ action: 'respond',
205
+ response: [{ type: 'text', text: formatJson(config, buildPreviewExpiredResponse(ctx)) }],
206
+ };
207
+ }
208
+ // Preview is valid - proceed with execution
209
+ pendingPreviews.delete(previewKey);
210
+ if (confirmationToken)
211
+ tokenIndex.delete(confirmationToken);
212
+ const previewAge = Date.now() - previewTimestamp;
213
+ logger.info('User confirmation validated', { toolName, previewAge });
214
+ // Remove user_confirmed and confirmation_token flags, keep confirm: true for the actual execution
215
+ const { user_confirmed: _user_confirmed, confirmation_token: _confirmation_token, ...confirmedArgs } = effectiveArgs;
216
+ return {
217
+ action: 'execute',
218
+ effectiveArgs: { ...confirmedArgs, confirm: true },
219
+ };
220
+ }
221
+ // Default case: no confirm or user_confirmed provided
222
+ // Log warning but proceed to maintain backward compatibility
223
+ logger.warning('Destructive tool called without confirmation parameters', {
224
+ toolName,
225
+ abilityName,
226
+ });
227
+ return { action: 'skip' };
228
+ }
229
+ //# sourceMappingURL=confirmation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmation.js","sourceRoot":"","sources":["../src/confirmation.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -37,6 +37,10 @@ export interface McpErrorResponse {
37
37
  data?: Record<string, unknown>;
38
38
  };
39
39
  }
40
+ /**
41
+ * Extract a human-readable message from an unknown thrown value.
42
+ */
43
+ export declare function getErrorMessage(error: unknown): string;
40
44
  /**
41
45
  * Custom error class for MCP errors with code support
42
46
  */
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;CAoBlB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE;QACL,IAAI,EAAE,YAAY,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAE5B,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAO/E;;OAEG;IACH,UAAU,IAAI,gBAAgB;CAY/B;AAED;;GAEG;AACH,eAAO,MAAM,eAAe;IAC1B;;OAEG;2BACoB,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;IAIxE;;OAEG;2BACoB,MAAM,GAAG,QAAQ;IAMxC;;OAEG;0BACmB,MAAM,GAAG,QAAQ;IAIvC;;OAEG;+BACwB,MAAM,GAAG,QAAQ;IAM5C;;OAEG;iCAC0B,MAAM,GAAG,QAAQ;IAM9C;;OAEG;+BACwB,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;IAI5E;;OAEG;sBACe,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;IAInE;;OAEG;iBACU,QAAQ;IAIrB;;OAEG;wCAC8C,QAAQ;IAIzD;;OAEG;oCACqC,QAAQ;IAIhD;;OAEG;mBACY,QAAQ;IAIvB;;OAEG;+BACqC,QAAQ;IAIhD;;OAEG;oBACa,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;CAGlE,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GACjC,gBAAgB,CA+ClB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAE9F"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;CAoBlB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE;QACL,IAAI,EAAE,YAAY,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAE5B,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAO/E;;OAEG;IACH,UAAU,IAAI,gBAAgB;CAY/B;AAED;;GAEG;AACH,eAAO,MAAM,eAAe;IAC1B;;OAEG;2BACoB,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;IAIxE;;OAEG;2BACoB,MAAM,GAAG,QAAQ;IAMxC;;OAEG;0BACmB,MAAM,GAAG,QAAQ;IAIvC;;OAEG;+BACwB,MAAM,GAAG,QAAQ;IAM5C;;OAEG;iCAC0B,MAAM,GAAG,QAAQ;IAM9C;;OAEG;+BACwB,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;IAI5E;;OAEG;sBACe,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;IAInE;;OAEG;iBACU,QAAQ;IAIrB;;OAEG;wCAC8C,QAAQ;IAIzD;;OAEG;oCACqC,QAAQ;IAIhD;;OAEG;mBACY,QAAQ;IAIvB;;OAEG;+BACqC,QAAQ;IAIhD;;OAEG;oBACa,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ;CAGlE,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GACjC,gBAAgB,CA+ClB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAE9F"}
package/dist/errors.js CHANGED
@@ -28,6 +28,12 @@ export const MCP_ERROR_CODES = {
28
28
  RATE_LIMITED: -32029,
29
29
  CANCELLED: -32099,
30
30
  };
31
+ /**
32
+ * Extract a human-readable message from an unknown thrown value.
33
+ */
34
+ export function getErrorMessage(error) {
35
+ return error instanceof Error ? error.message : String(error);
36
+ }
31
37
  /**
32
38
  * Custom error class for MCP errors with code support
33
39
  */
@@ -162,7 +168,7 @@ export function toMcpErrorResponse(error, sanitize) {
162
168
  }
163
169
  return error.toResponse();
164
170
  }
165
- const message = error instanceof Error ? error.message : String(error);
171
+ const message = getErrorMessage(error);
166
172
  const sanitizedMessage = sanitize ? sanitize(message) : message;
167
173
  // Try to infer error code from message
168
174
  let code = MCP_ERROR_CODES.INTERNAL_ERROR;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,8CAA8C;IAC9C,WAAW,EAAE,CAAC,KAAK;IACnB,eAAe,EAAE,CAAC,KAAK;IACvB,gBAAgB,EAAE,CAAC,KAAK;IACxB,cAAc,EAAE,CAAC,KAAK;IACtB,cAAc,EAAE,CAAC,KAAK;IAEtB,mDAAmD;IACnD,YAAY,EAAE,CAAC,KAAK;IACpB,OAAO,EAAE,CAAC,KAAK;IACf,kBAAkB,EAAE,CAAC,KAAK;IAC1B,cAAc,EAAE,CAAC,KAAK;IACtB,gBAAgB,EAAE,CAAC,KAAK;IACxB,iBAAiB,EAAE,CAAC,KAAK;IACzB,kBAAkB,EAAE,CAAC,KAAK;IAC1B,iBAAiB,EAAE,CAAC,KAAK;IACzB,YAAY,EAAE,CAAC,KAAK;IACpB,YAAY,EAAE,CAAC,KAAK;IACpB,SAAS,EAAE,CAAC,KAAK;CACT,CAAC;AAeX;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,IAAI,CAAe;IACnB,IAAI,CAA2B;IAExC,YAAY,IAAkB,EAAE,OAAe,EAAE,IAA8B;QAC7E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,MAAM,QAAQ,GAAqB;YACjC,KAAK,EAAE;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB;SACF,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAClC,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;;OAEG;IACH,aAAa,CAAC,OAAe,EAAE,IAA8B;QAC3D,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAAgB;QAC3B,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,cAAc,EAAE,mBAAmB,QAAQ,EAAE,EAAE;YACjF,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,GAAW;QAC1B,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,kBAAkB,EAAE,uBAAuB,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,UAAkB;QAC/B,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,gBAAgB,EAAE,qBAAqB,UAAU,EAAE,EAAE;YACvF,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,WAAmB;QACjC,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,iBAAiB,EAAE,sBAAsB,WAAW,EAAE,EAAE;YAC1F,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAe,EAAE,IAA8B;QAC/D,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAe,EAAE,IAA8B;QACtD,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAO,GAAG,mBAAmB;QAC5C,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,OAAO,GAAG,cAAc;QACnC,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAO,GAAG,mBAAmB;QACnC,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAe,EAAE,IAA8B;QACpD,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAc,EACd,QAAkC;IAElC,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,yDAAyD;QACzD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO;gBACL,KAAK,EAAE;oBACL,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;oBAChC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;iBACxC;aACF,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAEhE,uCAAuC;IACvC,IAAI,IAAI,GAAiB,eAAe,CAAC,cAAc,CAAC;IAExD,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjE,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC;IACnC,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACxE,IAAI,GAAG,eAAe,CAAC,kBAAkB,CAAC;IAC5C,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/E,IAAI,GAAG,eAAe,CAAC,kBAAkB,CAAC;IAC5C,CAAC;SAAM,IACL,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC3B,CAAC;QACD,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC;IACxC,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClF,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC;IACtC,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3E,IAAI,GAAG,eAAe,CAAC,iBAAiB,CAAC;IAC3C,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,OAAO;QACL,KAAK,EAAE;YACL,IAAI;YACJ,OAAO,EAAE,gBAAgB;SAC1B;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,QAAkC;IACpF,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7D,CAAC"}
package/dist/help.d.ts ADDED
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Help Documentation Generation
3
+ *
4
+ * Generates structured help documents from MainWP ability metadata.
5
+ * Purely functional — no state, no side effects.
6
+ */
7
+ import type { Ability } from './abilities.js';
8
+ /**
9
+ * Help documentation for a single tool
10
+ */
11
+ export interface ToolHelp {
12
+ toolName: string;
13
+ abilityName: string;
14
+ label: string;
15
+ description: string;
16
+ category: string;
17
+ annotations: {
18
+ readonly: boolean;
19
+ destructive: boolean;
20
+ idempotent: boolean;
21
+ instructions?: string;
22
+ };
23
+ safetyFeatures: {
24
+ supportsDryRun: boolean;
25
+ requiresConfirm: boolean;
26
+ };
27
+ parameters: Array<{
28
+ name: string;
29
+ type: string;
30
+ required: boolean;
31
+ description?: string;
32
+ }>;
33
+ }
34
+ /**
35
+ * Complete help document structure
36
+ */
37
+ export interface HelpDocument {
38
+ version: string;
39
+ generated: string;
40
+ overview: {
41
+ totalTools: number;
42
+ categories: string[];
43
+ safetyConventions: Record<string, string>;
44
+ };
45
+ destructiveTools: string[];
46
+ toolsWithDryRun: string[];
47
+ toolsRequiringConfirm: string[];
48
+ toolsByCategory: Record<string, ToolHelp[]>;
49
+ }
50
+ /**
51
+ * Generate help documentation for a single ability
52
+ */
53
+ export declare function generateToolHelp(ability: Ability): ToolHelp;
54
+ /**
55
+ * Generate complete help document from all abilities
56
+ */
57
+ export declare function generateHelpDocument(abilities: Ability[]): HelpDocument;
58
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE;QACX,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,cAAc,EAAE;QACd,cAAc,EAAE,OAAO,CAAC;QACxB,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC3C,CAAC;IACF,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CA8B3D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,YAAY,CAiCvE"}