@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/README.md CHANGED
@@ -10,6 +10,10 @@
10
10
 
11
11
  # MainWP MCP Server
12
12
 
13
+ [MainWP MCP Server](https://github.com/mainwp/mainwp-mcp) is for conversational AI management inside Claude, Cursor, or any MCP-compatible client.
14
+
15
+ **Looking for the MainWP Control CLI instead?** [MainWP Control](https://github.com/mainwp/mainwp-control) is a CLI for managing your MainWP Dashboard from the terminal. List sites, push updates, sync data, run batch operations across dozens of sites. MainWP Control is for automation: AI automation, cron jobs, CI/CD pipelines, monitoring scripts, and batch operations. Both talk to the same Abilities API with the same safety model.
16
+
13
17
  **Beta Release** — This project is under active development. APIs may change between versions.
14
18
 
15
19
  An MCP (Model Context Protocol) server that connects AI assistants to your MainWP Dashboard. This lets Cursor, Claude, OpenAI Codex, VS Code Copilot, and other AI tools manage your WordPress network through natural conversation.
@@ -51,20 +51,6 @@ type CacheRefreshCallback = () => void;
51
51
  * Register a callback to be called when the abilities cache is refreshed
52
52
  */
53
53
  export declare function onCacheRefresh(callback: CacheRefreshCallback): void;
54
- /**
55
- * Read a response body with streaming size enforcement.
56
- * Prevents unbounded memory consumption from chunked responses without Content-Length.
57
- *
58
- * The fallback path (no ReadableStream) buffers the full body before checking size.
59
- * In production Node.js 18+, fetch responses always have a ReadableStream body,
60
- * so the fallback only executes in test mocks with minimal Response objects.
61
- *
62
- * @internal Exported for testing
63
- * @param response - The HTTP response to read
64
- * @param maxBytes - Maximum allowed body size in bytes
65
- * @returns The response body as a string
66
- */
67
- export declare function readLimitedBody(response: Response, maxBytes: number): Promise<string>;
68
54
  /**
69
55
  * Fetch all abilities from the MainWP Dashboard
70
56
  */
@@ -84,61 +70,13 @@ export declare function getAbility(config: Config, name: string, logger?: Logger
84
70
  * @param abilityName - Name of the ability to execute
85
71
  * @param input - Optional input parameters
86
72
  * @param logger - Optional logger for retry logging
73
+ * @param prefetchedAbility - Pre-fetched ability metadata to avoid redundant lookup
74
+ * @param signal - Optional AbortSignal for caller-initiated cancellation
87
75
  */
88
- export declare function executeAbility(config: Config, abilityName: string, input?: Record<string, unknown>, logger?: Logger): Promise<unknown>;
76
+ export declare function executeAbility(config: Config, abilityName: string, input?: Record<string, unknown>, logger?: Logger, prefetchedAbility?: Ability, signal?: AbortSignal): Promise<unknown>;
89
77
  /**
90
78
  * Clear the abilities cache
91
79
  */
92
80
  export declare function clearCache(): void;
93
- /**
94
- * Help documentation for a single tool
95
- */
96
- export interface ToolHelp {
97
- toolName: string;
98
- abilityName: string;
99
- label: string;
100
- description: string;
101
- category: string;
102
- annotations: {
103
- readonly: boolean;
104
- destructive: boolean;
105
- idempotent: boolean;
106
- instructions?: string;
107
- };
108
- safetyFeatures: {
109
- supportsDryRun: boolean;
110
- requiresConfirm: boolean;
111
- };
112
- parameters: Array<{
113
- name: string;
114
- type: string;
115
- required: boolean;
116
- description?: string;
117
- }>;
118
- }
119
- /**
120
- * Complete help document structure
121
- */
122
- export interface HelpDocument {
123
- version: string;
124
- generated: string;
125
- overview: {
126
- totalTools: number;
127
- categories: string[];
128
- safetyConventions: Record<string, string>;
129
- };
130
- destructiveTools: string[];
131
- toolsWithDryRun: string[];
132
- toolsRequiringConfirm: string[];
133
- toolsByCategory: Record<string, ToolHelp[]>;
134
- }
135
- /**
136
- * Generate help documentation for a single ability
137
- */
138
- export declare function generateToolHelp(ability: Ability): ToolHelp;
139
- /**
140
- * Generate complete help document from all abilities
141
- */
142
- export declare function generateHelpDocument(abilities: Ability[]): HelpDocument;
143
81
  export {};
144
82
  //# sourceMappingURL=abilities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abilities.d.ts","sourceRoot":"","sources":["../src/abilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abilities.d.ts","sourceRoot":"","sources":["../src/abilities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AAWzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAa3C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,EAAE;QACL,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,WAAW,CAAC,EAAE,kBAAkB,CAAC;KAClC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAmBD;;GAEG;AACH,KAAK,oBAAoB,GAAG,MAAM,IAAI,CAAC;AAGvC;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAEnE;AAeD;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,YAAY,UAAQ,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,EAAE,CAAC,CAoEpB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,YAAY,UAAQ,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,QAAQ,EAAE,CAAC,CA2CrB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAG9B;AA+CD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,CAAC,EAAE,MAAM,EACf,iBAAiB,CAAC,EAAE,OAAO,EAC3B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,CA+HlB;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAMjC"}
package/dist/abilities.js CHANGED
@@ -4,17 +4,15 @@
4
4
  * Fetches and caches ability definitions from the MainWP Dashboard's
5
5
  * Abilities API REST endpoints.
6
6
  */
7
- import { getAbilitiesApiUrl, getAuthHeaders } from './config.js';
7
+ import { getAbilitiesApiUrl } from './config.js';
8
8
  import { McpErrorFactory } from './errors.js';
9
9
  import { RateLimiter, sanitizeError } from './security.js';
10
- import { abilityNameToToolName } from './naming.js';
11
10
  import { withRetry } from './retry.js';
12
- /** Maximum size for error response bodies (64KB) prevents transient memory spikes */
13
- const MAX_ERROR_BODY_BYTES = 65536;
14
- /** Maximum URL length for GET/DELETE requests — most HTTP servers reject URLs > 8KB */
15
- const MAX_URL_LENGTH = 8000;
16
- /** Maximum number of pages to fetch during pagination — prevents unbounded requests */
17
- const MAX_PAGES = 50;
11
+ import { createFetch, readLimitedBody, paginateApi, MAX_ERROR_BODY_BYTES, MAX_URL_LENGTH, } from './http-client.js';
12
+ /** Maximum age of stale cache before hard-failing (30 minutes) */
13
+ const MAX_STALE_AGE_MS = 30 * 60 * 1000;
14
+ /** Strict format for ability names — prevents path traversal in URL construction */
15
+ const ABILITY_NAME_RE = /^[a-z0-9]+\/[a-z0-9]([a-z0-9-]*[a-z0-9])?$/;
18
16
  /**
19
17
  * Rate limiter instance (initialized via initRateLimiter)
20
18
  */
@@ -35,7 +33,6 @@ let cachedCategories = null;
35
33
  let abilitiesCacheTimestamp = 0;
36
34
  let categoriesCacheTimestamp = 0;
37
35
  const CACHE_TTL_MS = 5 * 60 * 1000; // 5 minutes
38
- let sslVerifyDisabled = false;
39
36
  /**
40
37
  * Hardcoded namespace filter for MainWP abilities.
41
38
  * This server only supports MainWP abilities (mainwp/* namespace).
@@ -62,110 +59,6 @@ function notifyCacheRefresh() {
62
59
  }
63
60
  }
64
61
  }
65
- /**
66
- * Create a fetch function that handles SSL verification, request timeout, and response size limits.
67
- * Wraps any caller-provided AbortSignal to enforce timeout while preserving external cancellation.
68
- *
69
- * @param config - Server configuration
70
- * @param perCallTimeout - Optional per-call timeout override (for retry budget enforcement)
71
- */
72
- function createFetch(config, perCallTimeout) {
73
- if (config.skipSslVerify && !sslVerifyDisabled) {
74
- process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
75
- sslVerifyDisabled = true;
76
- }
77
- const effectiveTimeout = perCallTimeout ?? config.requestTimeout;
78
- return async (url, options = {}) => {
79
- const controller = new AbortController();
80
- const timeoutId = setTimeout(() => controller.abort(), effectiveTimeout);
81
- // Forward external signal abort to our controller (preserves caller cancellation)
82
- const externalSignal = options.signal;
83
- if (externalSignal) {
84
- if (externalSignal.aborted) {
85
- controller.abort();
86
- }
87
- else {
88
- externalSignal.addEventListener('abort', () => controller.abort(), { once: true });
89
- }
90
- }
91
- try {
92
- const fetchOptions = {
93
- ...options,
94
- signal: controller.signal,
95
- headers: {
96
- ...getAuthHeaders(config),
97
- ...options.headers,
98
- },
99
- };
100
- const response = await fetch(url, fetchOptions);
101
- clearTimeout(timeoutId);
102
- // Check response size before parsing (if content-length is provided)
103
- const contentLength = response.headers.get('content-length');
104
- if (contentLength) {
105
- const size = parseInt(contentLength, 10);
106
- if (size > config.maxResponseSize) {
107
- throw new Error(`Response size ${size} bytes exceeds maximum allowed ${config.maxResponseSize} bytes`);
108
- }
109
- }
110
- return response;
111
- }
112
- catch (error) {
113
- clearTimeout(timeoutId);
114
- if (error.name === 'AbortError') {
115
- // Create timeout error with ETIMEDOUT code for retry detection
116
- const timeoutError = new Error(`Request timeout after ${effectiveTimeout}ms: ${url}`);
117
- timeoutError.code = 'ETIMEDOUT';
118
- throw timeoutError;
119
- }
120
- throw error;
121
- }
122
- };
123
- }
124
- /**
125
- * Read a response body with streaming size enforcement.
126
- * Prevents unbounded memory consumption from chunked responses without Content-Length.
127
- *
128
- * The fallback path (no ReadableStream) buffers the full body before checking size.
129
- * In production Node.js 18+, fetch responses always have a ReadableStream body,
130
- * so the fallback only executes in test mocks with minimal Response objects.
131
- *
132
- * @internal Exported for testing
133
- * @param response - The HTTP response to read
134
- * @param maxBytes - Maximum allowed body size in bytes
135
- * @returns The response body as a string
136
- */
137
- export async function readLimitedBody(response, maxBytes) {
138
- const reader = response.body?.getReader();
139
- if (!reader) {
140
- // Fallback for test mocks without ReadableStream body
141
- let text;
142
- if (typeof response.text === 'function') {
143
- text = await response.text();
144
- }
145
- else {
146
- // Last resort: json() + stringify (handles minimal mock objects)
147
- text = JSON.stringify(await response.json());
148
- }
149
- if (Buffer.byteLength(text, 'utf8') > maxBytes) {
150
- throw new Error(`Response body exceeds ${maxBytes} bytes limit`);
151
- }
152
- return text;
153
- }
154
- const chunks = [];
155
- let totalBytes = 0;
156
- while (true) {
157
- const { done, value } = await reader.read();
158
- if (done)
159
- break;
160
- totalBytes += value.byteLength;
161
- if (totalBytes > maxBytes) {
162
- reader.cancel();
163
- throw new Error(`Response body exceeds ${maxBytes} bytes limit`);
164
- }
165
- chunks.push(value);
166
- }
167
- return new TextDecoder().decode(Buffer.concat(chunks));
168
- }
169
62
  /**
170
63
  * Fetch all abilities from the MainWP Dashboard
171
64
  */
@@ -177,30 +70,7 @@ export async function fetchAbilities(config, forceRefresh = false, logger) {
177
70
  const baseUrl = getAbilitiesApiUrl(config);
178
71
  const customFetch = createFetch(config);
179
72
  try {
180
- // Paginate through all abilities
181
- let page = 1;
182
- const allAbilities = [];
183
- while (true) {
184
- const response = await customFetch(`${baseUrl}/abilities?per_page=100&page=${page}`);
185
- if (!response.ok) {
186
- const errorText = await readLimitedBody(response, MAX_ERROR_BODY_BYTES);
187
- throw new Error(`Failed to fetch abilities: ${response.status} ${response.statusText} - ${sanitizeError(errorText)}`);
188
- }
189
- const body = await readLimitedBody(response, config.maxResponseSize);
190
- const batch = JSON.parse(body);
191
- allAbilities.push(...batch);
192
- const totalPages = parseInt(response.headers.get('X-WP-TotalPages') || '1', 10);
193
- if (page >= totalPages || page >= MAX_PAGES)
194
- break;
195
- page++;
196
- }
197
- if (page >= MAX_PAGES) {
198
- logger?.warning(`Pagination capped at ${MAX_PAGES} pages (fetched ${allAbilities.length} abilities) — some may be missing`);
199
- }
200
- else if (page > 1) {
201
- logger?.info(`Fetched ${allAbilities.length} abilities across ${page} pages`);
202
- }
203
- // Filter abilities to only MainWP namespace
73
+ const allAbilities = await paginateApi(customFetch, `${baseUrl}/abilities`, 'abilities', config.maxResponseSize, logger);
204
74
  const newAbilities = allAbilities.filter(a => a.name.startsWith(NAMESPACE_FILTER));
205
75
  // Check if abilities have changed (compare names)
206
76
  const oldNames = cachedAbilities
@@ -225,9 +95,20 @@ export async function fetchAbilities(config, forceRefresh = false, logger) {
225
95
  return cachedAbilities;
226
96
  }
227
97
  catch (error) {
228
- // If we have cached data, return it even if expired
98
+ // Serve stale cache on transient failures, but only up to MAX_STALE_AGE_MS.
99
+ // Beyond that, the cache may be dangerously outdated (e.g., poisoned abilities).
229
100
  if (cachedAbilities) {
230
- const cacheAgeMinutes = Math.round((Date.now() - abilitiesCacheTimestamp) / 60000);
101
+ const cacheAgeMs = Date.now() - abilitiesCacheTimestamp;
102
+ const cacheAgeMinutes = Math.round(cacheAgeMs / 60000);
103
+ if (cacheAgeMs > MAX_STALE_AGE_MS) {
104
+ logger?.error('Stale cache exceeded max age, discarding', {
105
+ cacheAgeMinutes,
106
+ maxStaleMinutes: MAX_STALE_AGE_MS / 60000,
107
+ });
108
+ cachedAbilities = null;
109
+ abilitiesIndex = null;
110
+ throw error;
111
+ }
231
112
  logger?.warning('Failed to refresh abilities, using cached data', {
232
113
  error: sanitizeError(String(error)),
233
114
  cacheAgeMinutes,
@@ -248,26 +129,7 @@ export async function fetchCategories(config, forceRefresh = false, logger) {
248
129
  const baseUrl = getAbilitiesApiUrl(config);
249
130
  const customFetch = createFetch(config);
250
131
  try {
251
- // Paginate through all categories
252
- let page = 1;
253
- const allCategories = [];
254
- while (true) {
255
- const response = await customFetch(`${baseUrl}/categories?per_page=100&page=${page}`);
256
- if (!response.ok) {
257
- const errorText = await readLimitedBody(response, MAX_ERROR_BODY_BYTES);
258
- throw new Error(`Failed to fetch categories: ${response.status} ${response.statusText} - ${sanitizeError(errorText)}`);
259
- }
260
- const body = await readLimitedBody(response, config.maxResponseSize);
261
- const batch = JSON.parse(body);
262
- allCategories.push(...batch);
263
- const totalPages = parseInt(response.headers.get('X-WP-TotalPages') || '1', 10);
264
- if (page >= totalPages || page >= MAX_PAGES)
265
- break;
266
- page++;
267
- }
268
- if (page >= MAX_PAGES) {
269
- logger?.warning(`Pagination capped at ${MAX_PAGES} pages (fetched ${allCategories.length} categories) — some may be missing`);
270
- }
132
+ const allCategories = await paginateApi(customFetch, `${baseUrl}/categories`, 'categories', config.maxResponseSize, logger);
271
133
  // Filter categories to only MainWP namespace
272
134
  cachedCategories = allCategories.filter(c => c.slug.startsWith(CATEGORY_FILTER));
273
135
  categoriesCacheTimestamp = Date.now();
@@ -275,7 +137,16 @@ export async function fetchCategories(config, forceRefresh = false, logger) {
275
137
  }
276
138
  catch (error) {
277
139
  if (cachedCategories) {
278
- const cacheAgeMinutes = Math.round((Date.now() - categoriesCacheTimestamp) / 60000);
140
+ const cacheAgeMs = Date.now() - categoriesCacheTimestamp;
141
+ const cacheAgeMinutes = Math.round(cacheAgeMs / 60000);
142
+ if (cacheAgeMs > MAX_STALE_AGE_MS) {
143
+ logger?.error('Stale categories cache exceeded max age, discarding', {
144
+ cacheAgeMinutes,
145
+ maxStaleMinutes: MAX_STALE_AGE_MS / 60000,
146
+ });
147
+ cachedCategories = null;
148
+ throw error;
149
+ }
279
150
  logger?.warning('Failed to refresh categories, using cached data', {
280
151
  error: sanitizeError(String(error)),
281
152
  cacheAgeMinutes,
@@ -340,16 +211,21 @@ function createHttpError(status, errorCode, message) {
340
211
  * @param abilityName - Name of the ability to execute
341
212
  * @param input - Optional input parameters
342
213
  * @param logger - Optional logger for retry logging
214
+ * @param prefetchedAbility - Pre-fetched ability metadata to avoid redundant lookup
215
+ * @param signal - Optional AbortSignal for caller-initiated cancellation
343
216
  */
344
- export async function executeAbility(config, abilityName, input, logger) {
345
- // Apply rate limiting BEFORE retry logic
346
- // This ensures retries bypass the rate limiter to avoid deadlocks
217
+ export async function executeAbility(config, abilityName, input, logger, prefetchedAbility, signal) {
347
218
  if (rateLimiter) {
348
- await rateLimiter.acquire();
219
+ await rateLimiter.acquire(signal);
220
+ }
221
+ // Validate ability name format to prevent path traversal in URL construction.
222
+ // A compromised dashboard could return names like "mainwp/../../admin" which
223
+ // pass the namespace filter but create traversal URLs.
224
+ if (!ABILITY_NAME_RE.test(abilityName)) {
225
+ throw McpErrorFactory.invalidParams(`Invalid ability name format: ${sanitizeError(abilityName)}`);
349
226
  }
350
227
  const baseUrl = getAbilitiesApiUrl(config);
351
- // Get ability to check if it's readonly
352
- const ability = await getAbility(config, abilityName, logger);
228
+ const ability = prefetchedAbility ?? (await getAbility(config, abilityName, logger));
353
229
  if (!ability) {
354
230
  throw McpErrorFactory.abilityNotFound(abilityName);
355
231
  }
@@ -372,33 +248,27 @@ export async function executeAbility(config, abilityName, input, logger) {
372
248
  // Use remaining budget as timeout
373
249
  const timeout = Math.max(1, context.remainingBudget);
374
250
  const customFetch = createFetch(config, timeout);
251
+ const fetchStart = performance.now();
375
252
  let response;
376
- if (isReadonly) {
377
- // GET request for read-only abilities, with optional params as query string
253
+ if (isReadonly || (isDestructive && isIdempotent)) {
254
+ // GET or DELETE both use query string params (WP Abilities API doesn't parse DELETE bodies)
255
+ const method = isReadonly ? 'GET' : 'DELETE';
378
256
  const queryString = hasInput ? serializeToPhpQueryString(input) : '';
379
257
  const fullUrl = url + queryString;
380
258
  if (fullUrl.length > MAX_URL_LENGTH) {
381
259
  throw new Error(`Request URL exceeds ${MAX_URL_LENGTH} characters (${fullUrl.length}); reduce input parameters`);
382
260
  }
383
- response = await customFetch(fullUrl, { method: 'GET' });
384
- }
385
- else if (isDestructive && isIdempotent) {
386
- // DELETE request for destructive + idempotent abilities
387
- // Uses query string parameters like GET - WP Abilities API doesn't parse DELETE bodies
388
- const queryString = hasInput ? serializeToPhpQueryString(input) : '';
389
- const fullUrl = url + queryString;
390
- if (fullUrl.length > MAX_URL_LENGTH) {
391
- throw new Error(`Request URL exceeds ${MAX_URL_LENGTH} characters (${fullUrl.length}); reduce input parameters`);
392
- }
393
- response = await customFetch(fullUrl, { method: 'DELETE' });
261
+ response = await customFetch(fullUrl, { method, signal });
394
262
  }
395
263
  else {
396
264
  // POST request for non-destructive write operations
397
265
  response = await customFetch(url, {
398
266
  method: 'POST',
399
267
  body: JSON.stringify({ input: input ?? {} }),
268
+ signal,
400
269
  });
401
270
  }
271
+ const upstreamLatencyMs = Math.round(performance.now() - fetchStart);
402
272
  // Validate response - throw HTTP error for non-ok status
403
273
  // This allows isRetryableError() to detect 5xx/429 and trigger retries
404
274
  if (!response.ok) {
@@ -422,10 +292,20 @@ export async function executeAbility(config, abilityName, input, logger) {
422
292
  // Non-JSON response body - use as error message
423
293
  errorMsg = bodyText;
424
294
  }
295
+ logger?.warning('Upstream request failed', {
296
+ abilityName,
297
+ httpStatus: response.status,
298
+ upstreamLatencyMs,
299
+ });
425
300
  throw createHttpError(response.status, errorCode, sanitizeError(errorMsg));
426
301
  }
427
302
  // Read response body with streaming size enforcement
428
303
  const responseBody = await readLimitedBody(response, config.maxResponseSize);
304
+ logger?.debug('Upstream request succeeded', {
305
+ abilityName,
306
+ httpStatus: response.status,
307
+ upstreamLatencyMs,
308
+ });
429
309
  return JSON.parse(responseBody);
430
310
  };
431
311
  // Apply retry logic only for read-only operations when enabled
@@ -456,74 +336,4 @@ export function clearCache() {
456
336
  abilitiesCacheTimestamp = 0;
457
337
  categoriesCacheTimestamp = 0;
458
338
  }
459
- /**
460
- * Generate help documentation for a single ability
461
- */
462
- export function generateToolHelp(ability) {
463
- const toolName = abilityNameToToolName(ability.name);
464
- const props = (ability.input_schema?.properties || {});
465
- const required = ability.input_schema?.required || [];
466
- const parameters = Object.entries(props).map(([name, prop]) => ({
467
- name,
468
- type: String(prop.type || 'unknown'),
469
- required: required.includes(name),
470
- description: prop.description,
471
- }));
472
- return {
473
- toolName,
474
- abilityName: ability.name,
475
- label: ability.label,
476
- description: ability.description,
477
- category: ability.category,
478
- annotations: {
479
- readonly: ability.meta?.annotations?.readonly ?? false,
480
- destructive: ability.meta?.annotations?.destructive ?? true,
481
- idempotent: ability.meta?.annotations?.idempotent ?? false,
482
- instructions: ability.meta?.annotations?.instructions,
483
- },
484
- safetyFeatures: {
485
- supportsDryRun: 'dry_run' in props,
486
- requiresConfirm: 'confirm' in props,
487
- },
488
- parameters,
489
- };
490
- }
491
- /**
492
- * Generate complete help document from all abilities
493
- */
494
- export function generateHelpDocument(abilities) {
495
- const toolHelps = abilities.map(generateToolHelp);
496
- // Use normalized categories matching toolsByCategory grouping logic
497
- const categories = [
498
- ...new Set(toolHelps.map(h => (h.category && h.category.trim()) || 'uncategorized')),
499
- ].sort();
500
- const toolsByCategory = {};
501
- for (const help of toolHelps) {
502
- // Handle empty string, null, undefined as 'uncategorized'
503
- const cat = (help.category && help.category.trim()) || 'uncategorized';
504
- if (!toolsByCategory[cat])
505
- toolsByCategory[cat] = [];
506
- toolsByCategory[cat].push(help);
507
- }
508
- return {
509
- version: '1.0',
510
- generated: new Date().toISOString(),
511
- overview: {
512
- totalTools: abilities.length,
513
- categories,
514
- safetyConventions: {
515
- dryRun: 'Pass dry_run: true to preview the operation without making changes',
516
- confirm: 'Pass confirm: true to execute destructive operations',
517
- destructive: 'These tools can permanently delete or modify data',
518
- readonly: 'These tools only read data and never modify anything',
519
- },
520
- },
521
- destructiveTools: toolHelps.filter(h => h.annotations.destructive).map(h => h.toolName),
522
- toolsWithDryRun: toolHelps.filter(h => h.safetyFeatures.supportsDryRun).map(h => h.toolName),
523
- toolsRequiringConfirm: toolHelps
524
- .filter(h => h.safetyFeatures.requiresConfirm)
525
- .map(h => h.toolName),
526
- toolsByCategory,
527
- };
528
- }
529
339
  //# sourceMappingURL=abilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"abilities.js","sourceRoot":"","sources":["../src/abilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abilities.js","sourceRoot":"","sources":["../src/abilities.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -128,8 +128,5 @@ export declare function formatJson(config: Pick<Config, 'responseFormat'>, data:
128
128
  * Build the Abilities API base URL
129
129
  */
130
130
  export declare function getAbilitiesApiUrl(config: Config): string;
131
- /**
132
- * Get authorization headers for API requests
133
- */
134
131
  export declare function getAuthHeaders(config: Config): Record<string, string>;
135
132
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,sCAAsC;AACtC,eAAO,MAAM,uBAAuB,kCAAmC,CAAC;AAExE,wDAAwD;AACxD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,qCAAqC;AACrC,eAAO,MAAM,sBAAsB,gCAAiC,CAAC;AAErE,uDAAuD;AACvD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,MAAM,WAAW,MAAM;IACrB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,aAAa,EAAE,OAAO,CAAC;IACvB,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,QAAQ,EAAE,OAAO,CAAC;IAClB,+FAA+F;IAC/F,uBAAuB,EAAE,OAAO,CAAC;IACjC,8FAA8F;IAC9F,cAAc,EAAE,MAAM,CAAC;IACvB,mGAAmG;IACnG,eAAe,EAAE,eAAe,CAAC;IACjC,2GAA2G;IAC3G,cAAc,EAAE,cAAc,CAAC;IAC/B,8DAA8D;IAC9D,YAAY,EAAE,OAAO,CAAC;IACtB,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,YAAY,EAAE,aAAa,GAAG,eAAe,GAAG,OAAO,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+FAA+F;IAC/F,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8FAA8F;IAC9F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mGAAmG;IACnG,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,2GAA2G;IAC3G,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAmHD;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,GAAG,IAAI,CAkCtD;AAyED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAiQnC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAExF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcrE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}