mcp-wordpress 2.5.1 → 2.5.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 (289) hide show
  1. package/package.json +1 -1
  2. package/dist/src/cache/CacheInvalidation.d.ts +0 -120
  3. package/dist/src/cache/CacheInvalidation.d.ts.map +0 -1
  4. package/dist/src/cache/CacheInvalidation.js +0 -355
  5. package/dist/src/cache/CacheInvalidation.js.map +0 -1
  6. package/dist/src/cache/CacheManager.d.ts +0 -149
  7. package/dist/src/cache/CacheManager.d.ts.map +0 -1
  8. package/dist/src/cache/CacheManager.js +0 -326
  9. package/dist/src/cache/CacheManager.js.map +0 -1
  10. package/dist/src/cache/HttpCacheWrapper.d.ts +0 -122
  11. package/dist/src/cache/HttpCacheWrapper.d.ts.map +0 -1
  12. package/dist/src/cache/HttpCacheWrapper.js +0 -283
  13. package/dist/src/cache/HttpCacheWrapper.js.map +0 -1
  14. package/dist/src/cache/index.d.ts +0 -12
  15. package/dist/src/cache/index.d.ts.map +0 -1
  16. package/dist/src/cache/index.js +0 -9
  17. package/dist/src/cache/index.js.map +0 -1
  18. package/dist/src/client/CachedWordPressClient.d.ts +0 -174
  19. package/dist/src/client/CachedWordPressClient.d.ts.map +0 -1
  20. package/dist/src/client/CachedWordPressClient.js +0 -345
  21. package/dist/src/client/CachedWordPressClient.js.map +0 -1
  22. package/dist/src/client/MockWordPressClient.d.ts +0 -56
  23. package/dist/src/client/MockWordPressClient.d.ts.map +0 -1
  24. package/dist/src/client/MockWordPressClient.js +0 -371
  25. package/dist/src/client/MockWordPressClient.js.map +0 -1
  26. package/dist/src/client/api.d.ts +0 -235
  27. package/dist/src/client/api.d.ts.map +0 -1
  28. package/dist/src/client/api.js +0 -896
  29. package/dist/src/client/api.js.map +0 -1
  30. package/dist/src/client/auth.d.ts +0 -121
  31. package/dist/src/client/auth.d.ts.map +0 -1
  32. package/dist/src/client/auth.js +0 -429
  33. package/dist/src/client/auth.js.map +0 -1
  34. package/dist/src/client/managers/AuthenticationManager.d.ts +0 -92
  35. package/dist/src/client/managers/AuthenticationManager.d.ts.map +0 -1
  36. package/dist/src/client/managers/AuthenticationManager.js +0 -369
  37. package/dist/src/client/managers/AuthenticationManager.js.map +0 -1
  38. package/dist/src/client/managers/BaseManager.d.ts +0 -22
  39. package/dist/src/client/managers/BaseManager.d.ts.map +0 -1
  40. package/dist/src/client/managers/BaseManager.js +0 -53
  41. package/dist/src/client/managers/BaseManager.js.map +0 -1
  42. package/dist/src/client/managers/RequestManager.d.ts +0 -47
  43. package/dist/src/client/managers/RequestManager.d.ts.map +0 -1
  44. package/dist/src/client/managers/RequestManager.js +0 -193
  45. package/dist/src/client/managers/RequestManager.js.map +0 -1
  46. package/dist/src/client/managers/index.d.ts +0 -8
  47. package/dist/src/client/managers/index.d.ts.map +0 -1
  48. package/dist/src/client/managers/index.js +0 -8
  49. package/dist/src/client/managers/index.js.map +0 -1
  50. package/dist/src/config/Config.d.ts +0 -155
  51. package/dist/src/config/Config.d.ts.map +0 -1
  52. package/dist/src/config/Config.js +0 -215
  53. package/dist/src/config/Config.js.map +0 -1
  54. package/dist/src/config/ConfigurationSchema.d.ts +0 -281
  55. package/dist/src/config/ConfigurationSchema.d.ts.map +0 -1
  56. package/dist/src/config/ConfigurationSchema.js +0 -205
  57. package/dist/src/config/ConfigurationSchema.js.map +0 -1
  58. package/dist/src/config/ServerConfiguration.d.ts +0 -47
  59. package/dist/src/config/ServerConfiguration.d.ts.map +0 -1
  60. package/dist/src/config/ServerConfiguration.js +0 -255
  61. package/dist/src/config/ServerConfiguration.js.map +0 -1
  62. package/dist/src/docs/DocumentationGenerator.d.ts +0 -185
  63. package/dist/src/docs/DocumentationGenerator.d.ts.map +0 -1
  64. package/dist/src/docs/DocumentationGenerator.js +0 -777
  65. package/dist/src/docs/DocumentationGenerator.js.map +0 -1
  66. package/dist/src/docs/MarkdownFormatter.d.ts +0 -84
  67. package/dist/src/docs/MarkdownFormatter.d.ts.map +0 -1
  68. package/dist/src/docs/MarkdownFormatter.js +0 -458
  69. package/dist/src/docs/MarkdownFormatter.js.map +0 -1
  70. package/dist/src/docs/index.d.ts +0 -8
  71. package/dist/src/docs/index.d.ts.map +0 -1
  72. package/dist/src/docs/index.js +0 -7
  73. package/dist/src/docs/index.js.map +0 -1
  74. package/dist/src/dxt-entry.d.ts +0 -6
  75. package/dist/src/dxt-entry.d.ts.map +0 -1
  76. package/dist/src/dxt-entry.js +0 -39
  77. package/dist/src/dxt-entry.js.map +0 -1
  78. package/dist/src/index.d.ts +0 -18
  79. package/dist/src/index.d.ts.map +0 -1
  80. package/dist/src/index.js +0 -143
  81. package/dist/src/index.js.map +0 -1
  82. package/dist/src/performance/MetricsCollector.d.ts +0 -145
  83. package/dist/src/performance/MetricsCollector.d.ts.map +0 -1
  84. package/dist/src/performance/MetricsCollector.js +0 -368
  85. package/dist/src/performance/MetricsCollector.js.map +0 -1
  86. package/dist/src/performance/PerformanceAnalytics.d.ts +0 -168
  87. package/dist/src/performance/PerformanceAnalytics.d.ts.map +0 -1
  88. package/dist/src/performance/PerformanceAnalytics.js +0 -570
  89. package/dist/src/performance/PerformanceAnalytics.js.map +0 -1
  90. package/dist/src/performance/PerformanceMonitor.d.ts +0 -203
  91. package/dist/src/performance/PerformanceMonitor.d.ts.map +0 -1
  92. package/dist/src/performance/PerformanceMonitor.js +0 -478
  93. package/dist/src/performance/PerformanceMonitor.js.map +0 -1
  94. package/dist/src/performance/index.d.ts +0 -11
  95. package/dist/src/performance/index.d.ts.map +0 -1
  96. package/dist/src/performance/index.js +0 -8
  97. package/dist/src/performance/index.js.map +0 -1
  98. package/dist/src/security/AISecurityScanner.d.ts +0 -176
  99. package/dist/src/security/AISecurityScanner.d.ts.map +0 -1
  100. package/dist/src/security/AISecurityScanner.js +0 -655
  101. package/dist/src/security/AISecurityScanner.js.map +0 -1
  102. package/dist/src/security/AutomatedRemediation.d.ts +0 -146
  103. package/dist/src/security/AutomatedRemediation.d.ts.map +0 -1
  104. package/dist/src/security/AutomatedRemediation.js +0 -566
  105. package/dist/src/security/AutomatedRemediation.js.map +0 -1
  106. package/dist/src/security/InputValidator.d.ts +0 -219
  107. package/dist/src/security/InputValidator.d.ts.map +0 -1
  108. package/dist/src/security/InputValidator.js +0 -295
  109. package/dist/src/security/InputValidator.js.map +0 -1
  110. package/dist/src/security/SecurityCIPipeline.d.ts +0 -213
  111. package/dist/src/security/SecurityCIPipeline.d.ts.map +0 -1
  112. package/dist/src/security/SecurityCIPipeline.js +0 -693
  113. package/dist/src/security/SecurityCIPipeline.js.map +0 -1
  114. package/dist/src/security/SecurityConfig.d.ts +0 -129
  115. package/dist/src/security/SecurityConfig.d.ts.map +0 -1
  116. package/dist/src/security/SecurityConfig.js +0 -266
  117. package/dist/src/security/SecurityConfig.js.map +0 -1
  118. package/dist/src/security/SecurityConfigManager.d.ts +0 -294
  119. package/dist/src/security/SecurityConfigManager.d.ts.map +0 -1
  120. package/dist/src/security/SecurityConfigManager.js +0 -558
  121. package/dist/src/security/SecurityConfigManager.js.map +0 -1
  122. package/dist/src/security/SecurityMonitoring.d.ts +0 -245
  123. package/dist/src/security/SecurityMonitoring.d.ts.map +0 -1
  124. package/dist/src/security/SecurityMonitoring.js +0 -598
  125. package/dist/src/security/SecurityMonitoring.js.map +0 -1
  126. package/dist/src/security/SecurityReviewer.d.ts +0 -168
  127. package/dist/src/security/SecurityReviewer.d.ts.map +0 -1
  128. package/dist/src/security/SecurityReviewer.js +0 -686
  129. package/dist/src/security/SecurityReviewer.js.map +0 -1
  130. package/dist/src/security/index.d.ts +0 -183
  131. package/dist/src/security/index.d.ts.map +0 -1
  132. package/dist/src/security/index.js +0 -218
  133. package/dist/src/security/index.js.map +0 -1
  134. package/dist/src/server/ConnectionTester.d.ts +0 -32
  135. package/dist/src/server/ConnectionTester.d.ts.map +0 -1
  136. package/dist/src/server/ConnectionTester.js +0 -135
  137. package/dist/src/server/ConnectionTester.js.map +0 -1
  138. package/dist/src/server/ToolRegistry.d.ts +0 -50
  139. package/dist/src/server/ToolRegistry.d.ts.map +0 -1
  140. package/dist/src/server/ToolRegistry.js +0 -219
  141. package/dist/src/server/ToolRegistry.js.map +0 -1
  142. package/dist/src/server.d.ts +0 -7
  143. package/dist/src/server.d.ts.map +0 -1
  144. package/dist/src/server.js +0 -7
  145. package/dist/src/server.js.map +0 -1
  146. package/dist/src/tools/BaseToolManager.d.ts +0 -62
  147. package/dist/src/tools/BaseToolManager.d.ts.map +0 -1
  148. package/dist/src/tools/BaseToolManager.js +0 -195
  149. package/dist/src/tools/BaseToolManager.js.map +0 -1
  150. package/dist/src/tools/auth.d.ts +0 -50
  151. package/dist/src/tools/auth.d.ts.map +0 -1
  152. package/dist/src/tools/auth.js +0 -133
  153. package/dist/src/tools/auth.js.map +0 -1
  154. package/dist/src/tools/cache.d.ts +0 -260
  155. package/dist/src/tools/cache.d.ts.map +0 -1
  156. package/dist/src/tools/cache.js +0 -232
  157. package/dist/src/tools/cache.js.map +0 -1
  158. package/dist/src/tools/comments.d.ts +0 -33
  159. package/dist/src/tools/comments.d.ts.map +0 -1
  160. package/dist/src/tools/comments.js +0 -235
  161. package/dist/src/tools/comments.js.map +0 -1
  162. package/dist/src/tools/index.d.ts +0 -11
  163. package/dist/src/tools/index.d.ts.map +0 -1
  164. package/dist/src/tools/index.js +0 -11
  165. package/dist/src/tools/index.js.map +0 -1
  166. package/dist/src/tools/media.d.ts +0 -70
  167. package/dist/src/tools/media.d.ts.map +0 -1
  168. package/dist/src/tools/media.js +0 -248
  169. package/dist/src/tools/media.js.map +0 -1
  170. package/dist/src/tools/pages.d.ts +0 -32
  171. package/dist/src/tools/pages.d.ts.map +0 -1
  172. package/dist/src/tools/pages.js +0 -215
  173. package/dist/src/tools/pages.js.map +0 -1
  174. package/dist/src/tools/performance.d.ts +0 -73
  175. package/dist/src/tools/performance.d.ts.map +0 -1
  176. package/dist/src/tools/performance.js +0 -922
  177. package/dist/src/tools/performance.js.map +0 -1
  178. package/dist/src/tools/posts/PostHandlers.d.ts +0 -46
  179. package/dist/src/tools/posts/PostHandlers.d.ts.map +0 -1
  180. package/dist/src/tools/posts/PostHandlers.js +0 -400
  181. package/dist/src/tools/posts/PostHandlers.js.map +0 -1
  182. package/dist/src/tools/posts/PostToolDefinitions.d.ts +0 -37
  183. package/dist/src/tools/posts/PostToolDefinitions.d.ts.map +0 -1
  184. package/dist/src/tools/posts/PostToolDefinitions.js +0 -236
  185. package/dist/src/tools/posts/PostToolDefinitions.js.map +0 -1
  186. package/dist/src/tools/posts/index.d.ts +0 -138
  187. package/dist/src/tools/posts/index.d.ts.map +0 -1
  188. package/dist/src/tools/posts/index.js +0 -163
  189. package/dist/src/tools/posts/index.js.map +0 -1
  190. package/dist/src/tools/posts.d.ts +0 -15
  191. package/dist/src/tools/posts.d.ts.map +0 -1
  192. package/dist/src/tools/posts.js +0 -16
  193. package/dist/src/tools/posts.js.map +0 -1
  194. package/dist/src/tools/site.d.ts +0 -32
  195. package/dist/src/tools/site.d.ts.map +0 -1
  196. package/dist/src/tools/site.js +0 -234
  197. package/dist/src/tools/site.js.map +0 -1
  198. package/dist/src/tools/taxonomies.d.ts +0 -36
  199. package/dist/src/tools/taxonomies.d.ts.map +0 -1
  200. package/dist/src/tools/taxonomies.js +0 -286
  201. package/dist/src/tools/taxonomies.js.map +0 -1
  202. package/dist/src/tools/users.d.ts +0 -33
  203. package/dist/src/tools/users.d.ts.map +0 -1
  204. package/dist/src/tools/users.js +0 -308
  205. package/dist/src/tools/users.js.map +0 -1
  206. package/dist/src/types/client.d.ts +0 -223
  207. package/dist/src/types/client.d.ts.map +0 -1
  208. package/dist/src/types/client.js +0 -97
  209. package/dist/src/types/client.js.map +0 -1
  210. package/dist/src/types/enhanced.d.ts +0 -237
  211. package/dist/src/types/enhanced.d.ts.map +0 -1
  212. package/dist/src/types/enhanced.js +0 -49
  213. package/dist/src/types/enhanced.js.map +0 -1
  214. package/dist/src/types/index.d.ts +0 -160
  215. package/dist/src/types/index.d.ts.map +0 -1
  216. package/dist/src/types/index.js +0 -14
  217. package/dist/src/types/index.js.map +0 -1
  218. package/dist/src/types/mcp.d.ts +0 -178
  219. package/dist/src/types/mcp.d.ts.map +0 -1
  220. package/dist/src/types/mcp.js +0 -7
  221. package/dist/src/types/mcp.js.map +0 -1
  222. package/dist/src/types/requests.d.ts +0 -322
  223. package/dist/src/types/requests.d.ts.map +0 -1
  224. package/dist/src/types/requests.js +0 -8
  225. package/dist/src/types/requests.js.map +0 -1
  226. package/dist/src/types/tools.d.ts +0 -506
  227. package/dist/src/types/tools.d.ts.map +0 -1
  228. package/dist/src/types/tools.js +0 -8
  229. package/dist/src/types/tools.js.map +0 -1
  230. package/dist/src/types/wordpress.d.ts +0 -471
  231. package/dist/src/types/wordpress.d.ts.map +0 -1
  232. package/dist/src/types/wordpress.js +0 -14
  233. package/dist/src/types/wordpress.js.map +0 -1
  234. package/dist/src/utils/debug.d.ts +0 -71
  235. package/dist/src/utils/debug.d.ts.map +0 -1
  236. package/dist/src/utils/debug.js +0 -235
  237. package/dist/src/utils/debug.js.map +0 -1
  238. package/dist/src/utils/enhancedError.d.ts +0 -61
  239. package/dist/src/utils/enhancedError.d.ts.map +0 -1
  240. package/dist/src/utils/enhancedError.js +0 -221
  241. package/dist/src/utils/enhancedError.js.map +0 -1
  242. package/dist/src/utils/error.d.ts +0 -17
  243. package/dist/src/utils/error.d.ts.map +0 -1
  244. package/dist/src/utils/error.js +0 -108
  245. package/dist/src/utils/error.js.map +0 -1
  246. package/dist/src/utils/logger.d.ts +0 -106
  247. package/dist/src/utils/logger.d.ts.map +0 -1
  248. package/dist/src/utils/logger.js +0 -280
  249. package/dist/src/utils/logger.js.map +0 -1
  250. package/dist/src/utils/streaming.d.ts +0 -104
  251. package/dist/src/utils/streaming.d.ts.map +0 -1
  252. package/dist/src/utils/streaming.js +0 -331
  253. package/dist/src/utils/streaming.js.map +0 -1
  254. package/dist/src/utils/toolWrapper.d.ts +0 -42
  255. package/dist/src/utils/toolWrapper.d.ts.map +0 -1
  256. package/dist/src/utils/toolWrapper.js +0 -101
  257. package/dist/src/utils/toolWrapper.js.map +0 -1
  258. package/dist/src/utils/validation/core.d.ts +0 -21
  259. package/dist/src/utils/validation/core.d.ts.map +0 -1
  260. package/dist/src/utils/validation/core.js +0 -71
  261. package/dist/src/utils/validation/core.js.map +0 -1
  262. package/dist/src/utils/validation/index.d.ts +0 -25
  263. package/dist/src/utils/validation/index.d.ts.map +0 -1
  264. package/dist/src/utils/validation/index.js +0 -29
  265. package/dist/src/utils/validation/index.js.map +0 -1
  266. package/dist/src/utils/validation/network.d.ts +0 -19
  267. package/dist/src/utils/validation/network.d.ts.map +0 -1
  268. package/dist/src/utils/validation/network.js +0 -93
  269. package/dist/src/utils/validation/network.js.map +0 -1
  270. package/dist/src/utils/validation/rateLimit.d.ts +0 -21
  271. package/dist/src/utils/validation/rateLimit.d.ts.map +0 -1
  272. package/dist/src/utils/validation/rateLimit.js +0 -43
  273. package/dist/src/utils/validation/rateLimit.js.map +0 -1
  274. package/dist/src/utils/validation/security.d.ts +0 -29
  275. package/dist/src/utils/validation/security.d.ts.map +0 -1
  276. package/dist/src/utils/validation/security.js +0 -327
  277. package/dist/src/utils/validation/security.js.map +0 -1
  278. package/dist/src/utils/validation/wordpress.d.ts +0 -31
  279. package/dist/src/utils/validation/wordpress.d.ts.map +0 -1
  280. package/dist/src/utils/validation/wordpress.js +0 -146
  281. package/dist/src/utils/validation/wordpress.js.map +0 -1
  282. package/dist/src/utils/validation.d.ts +0 -15
  283. package/dist/src/utils/validation.d.ts.map +0 -1
  284. package/dist/src/utils/validation.js +0 -27
  285. package/dist/src/utils/validation.js.map +0 -1
  286. package/dist/tests/vitest.setup.d.ts +0 -6
  287. package/dist/tests/vitest.setup.d.ts.map +0 -1
  288. package/dist/tests/vitest.setup.js +0 -39
  289. package/dist/tests/vitest.setup.js.map +0 -1
@@ -1,368 +0,0 @@
1
- /**
2
- * Real-time Metrics Collector for WordPress MCP Server
3
- * Integrates with existing client and cache systems
4
- */
5
- import { ConfigHelpers } from "../config/Config.js";
6
- import { LoggerFactory } from "../utils/logger.js";
7
- /**
8
- * Metrics Collector - Central hub for all performance data
9
- */
10
- export class MetricsCollector {
11
- monitor;
12
- config;
13
- activeRequests = new Map();
14
- activeTools = new Map();
15
- clientInstances = new Map();
16
- cacheManagers = new Map();
17
- logger = LoggerFactory.performance();
18
- realTimeInterval;
19
- constructor(monitor, config = {}) {
20
- this.monitor = monitor;
21
- this.config = {
22
- enableRealTime: true,
23
- collectInterval: 30000, // 30 seconds
24
- enableToolTracking: true,
25
- enableRequestInterception: true,
26
- enableCacheIntegration: true,
27
- enableSystemMetrics: true,
28
- ...config,
29
- };
30
- // Only enable real-time collection in appropriate environments
31
- if (this.config.enableRealTime && (ConfigHelpers.isDev() || ConfigHelpers.isProd())) {
32
- this.startRealTimeCollection();
33
- }
34
- else if (ConfigHelpers.isTest() || ConfigHelpers.isCI()) {
35
- this.logger.debug("Skipping real-time metrics collection in test/CI environment");
36
- }
37
- }
38
- /**
39
- * Register a WordPress client for monitoring
40
- */
41
- registerClient(siteId, client) {
42
- this.clientInstances.set(siteId, client);
43
- if (this.config.enableRequestInterception) {
44
- this.interceptClientRequests(siteId, client);
45
- }
46
- }
47
- /**
48
- * Register a cache manager for monitoring
49
- */
50
- registerCacheManager(siteId, cacheManager) {
51
- this.cacheManagers.set(siteId, cacheManager);
52
- }
53
- /**
54
- * Start tracking a tool execution
55
- */
56
- startToolExecution(toolName, parameters, siteId) {
57
- const executionId = `${toolName}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
58
- this.activeTools.set(executionId, {
59
- toolName,
60
- parameters,
61
- startTime: Date.now(),
62
- siteId,
63
- });
64
- return executionId;
65
- }
66
- /**
67
- * End tool execution and record metrics
68
- */
69
- endToolExecution(executionId, success, error) {
70
- const context = this.activeTools.get(executionId);
71
- if (!context)
72
- return;
73
- const responseTime = Date.now() - context.startTime;
74
- // Record in performance monitor
75
- this.monitor.recordRequest(responseTime, success, context.toolName);
76
- this.activeTools.delete(executionId);
77
- }
78
- /**
79
- * Record a raw request (bypass tool tracking)
80
- */
81
- recordRawRequest(responseTime, success, endpoint, fromCache = false) {
82
- this.monitor.recordRequest(responseTime, success);
83
- }
84
- /**
85
- * Collect current metrics from all sources
86
- */
87
- collectCurrentMetrics() {
88
- // Update cache metrics from all registered cache managers
89
- this.updateCacheMetrics();
90
- // Update client metrics from all registered clients
91
- this.updateClientMetrics();
92
- // Get current metrics from monitor
93
- return this.monitor.getMetrics();
94
- }
95
- /**
96
- * Get aggregated cache statistics
97
- */
98
- getAggregatedCacheStats() {
99
- const aggregated = {
100
- hits: 0,
101
- misses: 0,
102
- evictions: 0,
103
- totalSize: 0,
104
- hitRate: 0,
105
- };
106
- for (const [_siteId, cacheManager] of this.cacheManagers) {
107
- const manager = cacheManager;
108
- if (manager && typeof manager.getStats === "function") {
109
- const stats = manager.getStats();
110
- aggregated.hits += stats.hits || 0;
111
- aggregated.misses += stats.misses || 0;
112
- aggregated.evictions += stats.evictions || 0;
113
- aggregated.totalSize += stats.totalSize || 0;
114
- }
115
- }
116
- // Calculate overall hit rate
117
- const total = aggregated.hits + aggregated.misses;
118
- aggregated.hitRate = total > 0 ? aggregated.hits / total : 0;
119
- return aggregated;
120
- }
121
- /**
122
- * Get aggregated client statistics
123
- */
124
- getAggregatedClientStats() {
125
- const aggregated = {
126
- totalRequests: 0,
127
- successfulRequests: 0,
128
- failedRequests: 0,
129
- averageResponseTime: 0,
130
- rateLimitHits: 0,
131
- authFailures: 0,
132
- };
133
- const responseTimes = [];
134
- for (const [_siteId, client] of this.clientInstances) {
135
- const clientObj = client;
136
- if (clientObj && typeof clientObj.getStats === "function") {
137
- const stats = clientObj.getStats();
138
- aggregated.totalRequests += stats.totalRequests || 0;
139
- aggregated.successfulRequests += stats.successfulRequests || 0;
140
- aggregated.failedRequests += stats.failedRequests || 0;
141
- aggregated.rateLimitHits += stats.rateLimitHits || 0;
142
- aggregated.authFailures += stats.authFailures || 0;
143
- if (stats.averageResponseTime) {
144
- responseTimes.push(stats.averageResponseTime);
145
- }
146
- }
147
- }
148
- // Calculate overall average response time
149
- if (responseTimes.length > 0) {
150
- aggregated.averageResponseTime = responseTimes.reduce((sum, time) => sum + time, 0) / responseTimes.length;
151
- }
152
- return aggregated;
153
- }
154
- /**
155
- * Get performance summary for specific site
156
- */
157
- getSiteMetrics(siteId) {
158
- const result = { isActive: false };
159
- const cacheManager = this.cacheManagers.get(siteId);
160
- const cacheObj = cacheManager;
161
- if (cacheObj && typeof cacheObj.getStats === "function") {
162
- result.cache = cacheObj.getStats();
163
- result.isActive = true;
164
- }
165
- const client = this.clientInstances.get(siteId);
166
- const clientObj = client;
167
- if (clientObj && typeof clientObj.getStats === "function") {
168
- result.client = clientObj.getStats();
169
- result.isActive = true;
170
- }
171
- return result;
172
- }
173
- /**
174
- * Generate performance comparison between sites
175
- */
176
- compareSitePerformance() {
177
- const sites = Array.from(this.clientInstances.keys());
178
- const comparison = {};
179
- const rankings = [];
180
- for (const siteId of sites) {
181
- const metrics = this.getSiteMetrics(siteId);
182
- const responseTime = metrics.client?.averageResponseTime || 0;
183
- const cacheHitRate = metrics.cache?.hitRate || 0;
184
- const errorRate = metrics.client ? metrics.client.failedRequests / Math.max(metrics.client.totalRequests, 1) : 0;
185
- const requestCount = metrics.client?.totalRequests || 0;
186
- // Calculate performance score (lower is better for response time and error rate)
187
- const score = responseTime / 1000 + errorRate * 100 - cacheHitRate * 50 + requestCount * 0.001;
188
- comparison[siteId] = {
189
- responseTime,
190
- cacheHitRate,
191
- errorRate,
192
- requestCount,
193
- ranking: 0, // Will be set after sorting
194
- };
195
- rankings.push({ site: siteId, score });
196
- }
197
- // Sort by performance score
198
- rankings.sort((a, b) => a.score - b.score);
199
- // Assign rankings
200
- rankings.forEach((item, index) => {
201
- const siteData = comparison[item.site];
202
- if (siteData) {
203
- siteData.ranking = index + 1;
204
- }
205
- });
206
- return {
207
- sites,
208
- comparison,
209
- bestPerforming: rankings[0]?.site || "",
210
- worstPerforming: rankings[rankings.length - 1]?.site || "",
211
- };
212
- }
213
- /**
214
- * Generate optimization suggestions
215
- */
216
- generateOptimizationSuggestions() {
217
- const metrics = this.collectCurrentMetrics();
218
- const critical = [];
219
- const recommended = [];
220
- const optional = [];
221
- // Critical issues
222
- if (metrics.requests.averageResponseTime > 5000) {
223
- critical.push("Response times are critically high (>5s). Enable caching immediately.");
224
- }
225
- const errorRate = metrics.requests.failed / Math.max(metrics.requests.total, 1);
226
- if (errorRate > 0.1) {
227
- critical.push("Error rate is critically high (>10%). Check WordPress connectivity.");
228
- }
229
- // Recommended optimizations
230
- if (metrics.cache.hitRate < 0.8) {
231
- recommended.push("Cache hit rate is below 80%. Consider cache warming or TTL adjustment.");
232
- }
233
- if (metrics.requests.averageResponseTime > 2000) {
234
- recommended.push("Response times could be improved. Consider enabling more aggressive caching.");
235
- }
236
- if (metrics.system.memoryUsage > 80) {
237
- recommended.push("Memory usage is high. Consider increasing cache size limits or server resources.");
238
- }
239
- // Optional optimizations
240
- if (metrics.cache.totalSize < 100) {
241
- optional.push("Cache utilization is low. Consider pre-warming with frequently accessed data.");
242
- }
243
- if (Object.keys(metrics.tools.toolUsageCount).length > 10) {
244
- optional.push("Many tools are being used. Consider creating custom workflows for common operations.");
245
- }
246
- return { critical, recommended, optional };
247
- }
248
- /**
249
- * Export detailed performance report
250
- */
251
- exportDetailedReport() {
252
- return {
253
- timestamp: new Date().toISOString(),
254
- overview: this.collectCurrentMetrics(),
255
- siteComparison: this.compareSitePerformance(),
256
- aggregatedStats: {
257
- cache: this.getAggregatedCacheStats(),
258
- client: this.getAggregatedClientStats(),
259
- },
260
- optimizations: this.generateOptimizationSuggestions(),
261
- alerts: this.monitor.getAlerts(),
262
- };
263
- }
264
- /**
265
- * Start real-time metric collection
266
- */
267
- startRealTimeCollection() {
268
- // Skip in test/CI environments to prevent performance issues
269
- if (ConfigHelpers.isTest() || ConfigHelpers.isCI()) {
270
- return;
271
- }
272
- // Adjust collection frequency based on environment
273
- const interval = ConfigHelpers.isDev()
274
- ? Math.max(this.config.collectInterval * 2, 60000) // Longer intervals in dev
275
- : this.config.collectInterval;
276
- this.logger.info("Starting real-time metrics collection", {
277
- interval: `${interval / 1000}s`,
278
- environment: ConfigHelpers.get().get().app.nodeEnv,
279
- });
280
- this.realTimeInterval = setInterval(() => {
281
- try {
282
- this.updateCacheMetrics();
283
- this.updateClientMetrics();
284
- this.logger.debug("Real-time metrics updated");
285
- }
286
- catch (error) {
287
- this.logger.error("Failed to update real-time metrics", {
288
- error: error instanceof Error ? error.message : String(error),
289
- });
290
- }
291
- }, interval);
292
- }
293
- /**
294
- * Stop real-time collection and cleanup resources
295
- */
296
- destroy() {
297
- if (this.realTimeInterval) {
298
- clearInterval(this.realTimeInterval);
299
- this.realTimeInterval = undefined;
300
- this.logger.info("Real-time metrics collection stopped");
301
- }
302
- }
303
- /**
304
- * Update cache metrics in performance monitor
305
- */
306
- updateCacheMetrics() {
307
- const aggregatedStats = this.getAggregatedCacheStats();
308
- // Type assertion: convert CacheStats to Record<string, unknown> via unknown
309
- this.monitor.updateCacheMetrics(aggregatedStats);
310
- }
311
- /**
312
- * Update client metrics in performance monitor
313
- */
314
- updateClientMetrics() {
315
- // Client metrics are updated through request interception
316
- // This method can be used for additional client-specific metrics
317
- }
318
- /**
319
- * Intercept client requests for automatic tracking
320
- */
321
- interceptClientRequests(siteId, client) {
322
- if (!client.request || typeof client.request !== "function") {
323
- return;
324
- }
325
- const originalRequest = client.request.bind(client);
326
- const clientObj = client;
327
- if (!clientObj.request)
328
- return;
329
- clientObj.originalRequest = clientObj.request;
330
- clientObj.request = async (...args) => {
331
- const startTime = Date.now();
332
- const requestId = `${siteId}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
333
- // Extract metadata with proper type assertions
334
- const metadata = {
335
- siteId,
336
- endpoint: args[0] || "unknown",
337
- method: args[1] || "GET",
338
- startTime,
339
- fromCache: false,
340
- };
341
- this.activeRequests.set(requestId, metadata);
342
- try {
343
- const result = await originalRequest(...args);
344
- const responseTime = Date.now() - startTime;
345
- // Check if response came from cache
346
- const _fromCache = result.cached || false;
347
- this.monitor.recordRequest(responseTime, true);
348
- this.activeRequests.delete(requestId);
349
- return result;
350
- }
351
- catch (error) {
352
- const responseTime = Date.now() - startTime;
353
- this.monitor.recordRequest(responseTime, false);
354
- this.activeRequests.delete(requestId);
355
- throw error;
356
- }
357
- };
358
- }
359
- /**
360
- * Stop all monitoring and cleanup
361
- */
362
- stop() {
363
- this.monitor.stop();
364
- this.activeRequests.clear();
365
- this.activeTools.clear();
366
- }
367
- }
368
- //# sourceMappingURL=MetricsCollector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MetricsCollector.js","sourceRoot":"","sources":["../../../src/performance/MetricsCollector.ts"],"names":[],"mappings":"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"}
@@ -1,168 +0,0 @@
1
- /**
2
- * Advanced Performance Analytics for WordPress MCP Server
3
- * Provides insights, predictions, and optimization recommendations
4
- */
5
- import { PerformanceMetrics } from "./PerformanceMonitor.js";
6
- import { MetricsCollector } from "./MetricsCollector.js";
7
- export interface AnalyticsConfig {
8
- enablePredictiveAnalysis: boolean;
9
- enableAnomalyDetection: boolean;
10
- enableTrendAnalysis: boolean;
11
- lookbackPeriod: number;
12
- sensitivityLevel: "low" | "medium" | "high";
13
- }
14
- export interface PerformanceTrend {
15
- metric: string;
16
- direction: "improving" | "declining" | "stable";
17
- changeRate: number;
18
- confidence: number;
19
- prediction: {
20
- nextValue: number;
21
- timeframe: number;
22
- confidence: number;
23
- };
24
- }
25
- export interface PerformanceAnomaly {
26
- timestamp: number;
27
- metric: string;
28
- expectedValue: number;
29
- actualValue: number;
30
- deviation: number;
31
- severity: "minor" | "moderate" | "major" | "critical";
32
- possibleCauses: string[];
33
- }
34
- export interface PerformanceInsight {
35
- id: string;
36
- category: "optimization" | "scaling" | "maintenance" | "alert";
37
- priority: "low" | "medium" | "high" | "critical";
38
- title: string;
39
- description: string;
40
- impact: "performance" | "reliability" | "cost" | "user_experience";
41
- recommendation: string;
42
- estimatedImprovement: string;
43
- implementationEffort: "low" | "medium" | "high";
44
- relatedMetrics: string[];
45
- }
46
- export interface BenchmarkComparison {
47
- category: string;
48
- currentValue: number;
49
- benchmarkValue: number;
50
- percentile: number;
51
- status: "excellent" | "good" | "average" | "below_average" | "poor";
52
- improvement: number;
53
- }
54
- /**
55
- * Performance Analytics Engine
56
- */
57
- export declare class PerformanceAnalytics {
58
- private collector;
59
- private config;
60
- private historicalData;
61
- private detectedAnomalies;
62
- private generatedInsights;
63
- private benchmarks;
64
- constructor(collector: MetricsCollector, config?: Partial<AnalyticsConfig>);
65
- /**
66
- * Add historical data point for analysis
67
- */
68
- addDataPoint(metrics: PerformanceMetrics): void;
69
- /**
70
- * Analyze performance trends
71
- */
72
- analyzeTrends(): PerformanceTrend[];
73
- /**
74
- * Generate performance insights
75
- */
76
- generateInsights(): PerformanceInsight[];
77
- /**
78
- * Compare performance against benchmarks
79
- */
80
- benchmarkPerformance(): BenchmarkComparison[];
81
- /**
82
- * Predict future performance based on trends
83
- */
84
- predictPerformance(timeframeMinutes?: number): {
85
- predictions: Array<{
86
- metric: string;
87
- currentValue: number;
88
- predictedValue: number;
89
- confidence: number;
90
- trend: "improving" | "declining" | "stable";
91
- }>;
92
- alerts: string[];
93
- };
94
- /**
95
- * Generate optimization recommendations with ROI estimates
96
- */
97
- generateOptimizationPlan(): {
98
- quickWins: PerformanceInsight[];
99
- mediumTerm: PerformanceInsight[];
100
- longTerm: PerformanceInsight[];
101
- estimatedROI: {
102
- performanceGain: number;
103
- implementationCost: "low" | "medium" | "high";
104
- timeToValue: number;
105
- };
106
- };
107
- /**
108
- * Get anomalies detected in recent data
109
- */
110
- getAnomalies(severity?: string): PerformanceAnomaly[];
111
- /**
112
- * Export comprehensive analytics report
113
- */
114
- exportAnalyticsReport(): {
115
- timestamp: string;
116
- summary: {
117
- overallHealth: string;
118
- keyInsights: number;
119
- criticalAlerts: number;
120
- performanceScore: number;
121
- };
122
- trends: PerformanceTrend[];
123
- benchmarks: BenchmarkComparison[];
124
- insights: PerformanceInsight[];
125
- anomalies: PerformanceAnomaly[];
126
- predictions: Array<{
127
- metric: string;
128
- currentValue: number;
129
- predictedValue: number;
130
- confidence: number;
131
- trend: "improving" | "declining" | "stable";
132
- }>;
133
- optimizationPlan: Record<string, unknown>;
134
- };
135
- /**
136
- * Analyze trend for a specific metric
137
- */
138
- private analyzeTrend;
139
- /**
140
- * Detect anomalies in current metrics
141
- */
142
- private detectAnomalies;
143
- /**
144
- * Check if a metric value is anomalous
145
- */
146
- private checkMetricAnomaly;
147
- /**
148
- * Generate possible causes for anomalies
149
- */
150
- private generatePossibleCauses;
151
- /**
152
- * Create benchmark comparison
153
- */
154
- private createBenchmarkComparison;
155
- /**
156
- * Get current value for a metric
157
- */
158
- private getCurrentMetricValue;
159
- /**
160
- * Calculate overall performance score
161
- */
162
- private calculatePerformanceScore;
163
- /**
164
- * Calculate overall health status
165
- */
166
- private calculateOverallHealth;
167
- }
168
- //# sourceMappingURL=PerformanceAnalytics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PerformanceAnalytics.d.ts","sourceRoot":"","sources":["../../../src/performance/PerformanceAnalytics.ts"],"names":[],"mappings":"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"}