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,203 +0,0 @@
1
- /**
2
- * Performance Monitoring System for WordPress MCP Server
3
- * Collects, analyzes, and reports performance metrics
4
- */
5
- export interface PerformanceMetrics {
6
- requests: {
7
- total: number;
8
- successful: number;
9
- failed: number;
10
- averageResponseTime: number;
11
- minResponseTime: number;
12
- maxResponseTime: number;
13
- requestsPerSecond: number;
14
- p50ResponseTime: number;
15
- p95ResponseTime: number;
16
- p99ResponseTime: number;
17
- };
18
- cache: {
19
- hits: number;
20
- misses: number;
21
- hitRate: number;
22
- totalSize: number;
23
- memoryUsageMB: number;
24
- evictions: number;
25
- averageCacheTime: number;
26
- };
27
- system: {
28
- cpuUsage: number;
29
- memoryUsage: number;
30
- uptime: number;
31
- activeConnections: number;
32
- concurrentRequests: number;
33
- };
34
- wordpress: {
35
- authSuccessRate: number;
36
- apiVersion: string;
37
- siteHealth: "healthy" | "warning" | "critical";
38
- averageDbResponseTime: number;
39
- pluginCompatibility: number;
40
- };
41
- tools: {
42
- mostUsedTool: string;
43
- toolUsageCount: Record<string, number>;
44
- toolPerformance: Record<string, {
45
- averageTime: number;
46
- successRate: number;
47
- callCount: number;
48
- }>;
49
- };
50
- }
51
- export interface PerformanceAlert {
52
- id: string;
53
- timestamp: number;
54
- severity: "info" | "warning" | "error" | "critical";
55
- category: "performance" | "cache" | "system" | "wordpress";
56
- message: string;
57
- metric: string;
58
- threshold: number;
59
- actualValue: number;
60
- suggestion?: string;
61
- }
62
- export interface PerformanceConfig {
63
- collectInterval: number;
64
- retentionPeriod: number;
65
- alertThresholds: {
66
- responseTime: number;
67
- errorRate: number;
68
- cacheHitRate: number;
69
- memoryUsage: number;
70
- cpuUsage: number;
71
- };
72
- enableRealTimeMonitoring: boolean;
73
- enableHistoricalData: boolean;
74
- enableAlerts: boolean;
75
- }
76
- /**
77
- * Core Performance Monitor class
78
- */
79
- export declare class PerformanceMonitor {
80
- private metrics;
81
- private historicalData;
82
- private alerts;
83
- private config;
84
- private startTime;
85
- private responseTimes;
86
- private collectionTimer?;
87
- constructor(config?: Partial<PerformanceConfig>);
88
- /**
89
- * Initialize empty metrics structure
90
- */
91
- private initializeMetrics;
92
- /**
93
- * Record a request performance metric
94
- */
95
- recordRequest(responseTime: number, success: boolean, toolName?: string): void;
96
- /**
97
- * Update cache metrics from cache manager
98
- */
99
- updateCacheMetrics(cacheStats: Record<string, unknown>): void;
100
- /**
101
- * Update system metrics
102
- */
103
- updateSystemMetrics(): void;
104
- /**
105
- * Get current performance metrics
106
- */
107
- getMetrics(): PerformanceMetrics;
108
- /**
109
- * Get historical performance data
110
- */
111
- getHistoricalData(startTime?: number, endTime?: number): PerformanceMetrics[];
112
- /**
113
- * Get performance alerts
114
- */
115
- getAlerts(severity?: string): PerformanceAlert[];
116
- /**
117
- * Clear alerts
118
- */
119
- clearAlerts(): void;
120
- /**
121
- * Generate performance insights
122
- */
123
- generateInsights(): {
124
- summary: string;
125
- recommendations: string[];
126
- trends: string[];
127
- health: "excellent" | "good" | "warning" | "critical";
128
- };
129
- /**
130
- * Export performance data
131
- */
132
- exportData(format?: "json" | "csv"): string;
133
- /**
134
- * Start automatic metric collection
135
- * Note: This uses setInterval and is not called in test environments to avoid Jest timer issues
136
- */
137
- private startCollection;
138
- /**
139
- * Stop metric collection
140
- */
141
- stop(): void;
142
- /**
143
- * Record tool usage and performance
144
- */
145
- private recordToolUsage;
146
- /**
147
- * Update response time metrics with percentiles
148
- */
149
- private updateResponseTimeMetrics;
150
- /**
151
- * Get percentile value from sorted array
152
- */
153
- private getPercentile;
154
- /**
155
- * Estimate cache memory usage
156
- */
157
- private estimateCacheMemoryUsage;
158
- /**
159
- * Get CPU usage (simplified)
160
- */
161
- private getCpuUsage;
162
- /**
163
- * Check for performance alerts
164
- */
165
- private checkPerformanceAlerts;
166
- /**
167
- * Add performance alert
168
- */
169
- private addAlert;
170
- /**
171
- * Calculate overall system health
172
- */
173
- private calculateOverallHealth;
174
- /**
175
- * Generate performance summary
176
- */
177
- private generateSummary;
178
- /**
179
- * Generate performance recommendations
180
- */
181
- private generateRecommendations;
182
- /**
183
- * Generate trend analysis
184
- */
185
- private generateTrends;
186
- /**
187
- * Check if values are increasing
188
- */
189
- private isIncreasing;
190
- /**
191
- * Check if values are decreasing
192
- */
193
- private isDecreasing;
194
- /**
195
- * Convert data to CSV format
196
- */
197
- private convertToCSV;
198
- /**
199
- * Clean up old historical data
200
- */
201
- private cleanupOldData;
202
- }
203
- //# sourceMappingURL=PerformanceMonitor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PerformanceMonitor.d.ts","sourceRoot":"","sources":["../../../src/performance/PerformanceMonitor.ts"],"names":[],"mappings":"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"}
@@ -1,478 +0,0 @@
1
- /**
2
- * Performance Monitoring System for WordPress MCP Server
3
- * Collects, analyzes, and reports performance metrics
4
- */
5
- import { ConfigHelpers } from "../config/Config.js";
6
- /**
7
- * Core Performance Monitor class
8
- */
9
- export class PerformanceMonitor {
10
- metrics;
11
- historicalData = [];
12
- alerts = [];
13
- config;
14
- startTime;
15
- responseTimes = [];
16
- collectionTimer;
17
- constructor(config = {}) {
18
- this.startTime = Date.now();
19
- this.config = {
20
- collectInterval: 30000, // 30 seconds
21
- retentionPeriod: 24 * 60 * 60 * 1000, // 24 hours
22
- alertThresholds: {
23
- responseTime: 2000, // 2 seconds
24
- errorRate: 0.05, // 5%
25
- cacheHitRate: 0.8, // 80%
26
- memoryUsage: 80, // 80%
27
- cpuUsage: 80, // 80%
28
- },
29
- enableRealTimeMonitoring: true,
30
- enableHistoricalData: true,
31
- enableAlerts: true,
32
- ...config,
33
- };
34
- this.metrics = this.initializeMetrics();
35
- // Don't start collection in test environment to avoid timer issues
36
- if (this.config.enableRealTimeMonitoring && !ConfigHelpers.isTest()) {
37
- this.startCollection();
38
- }
39
- }
40
- /**
41
- * Initialize empty metrics structure
42
- */
43
- initializeMetrics() {
44
- return {
45
- requests: {
46
- total: 0,
47
- successful: 0,
48
- failed: 0,
49
- averageResponseTime: 0,
50
- minResponseTime: 0,
51
- maxResponseTime: 0,
52
- requestsPerSecond: 0,
53
- p50ResponseTime: 0,
54
- p95ResponseTime: 0,
55
- p99ResponseTime: 0,
56
- },
57
- cache: {
58
- hits: 0,
59
- misses: 0,
60
- hitRate: 0,
61
- totalSize: 0,
62
- memoryUsageMB: 0,
63
- evictions: 0,
64
- averageCacheTime: 0,
65
- },
66
- system: {
67
- cpuUsage: 0,
68
- memoryUsage: 0,
69
- uptime: 0,
70
- activeConnections: 0,
71
- concurrentRequests: 0,
72
- },
73
- wordpress: {
74
- authSuccessRate: 0,
75
- apiVersion: "v2",
76
- siteHealth: "healthy",
77
- averageDbResponseTime: 0,
78
- pluginCompatibility: 100,
79
- },
80
- tools: {
81
- mostUsedTool: "",
82
- toolUsageCount: {},
83
- toolPerformance: {},
84
- },
85
- };
86
- }
87
- /**
88
- * Record a request performance metric
89
- */
90
- recordRequest(responseTime, success, toolName) {
91
- this.metrics.requests.total++;
92
- if (success) {
93
- this.metrics.requests.successful++;
94
- }
95
- else {
96
- this.metrics.requests.failed++;
97
- }
98
- // Track response times
99
- this.responseTimes.push(responseTime);
100
- this.updateResponseTimeMetrics();
101
- // Track tool usage
102
- if (toolName) {
103
- this.recordToolUsage(toolName, responseTime, success);
104
- }
105
- // Check for alerts
106
- if (this.config.enableAlerts) {
107
- this.checkPerformanceAlerts();
108
- }
109
- }
110
- /**
111
- * Update cache metrics from cache manager
112
- */
113
- updateCacheMetrics(cacheStats) {
114
- this.metrics.cache = {
115
- hits: cacheStats.hits || 0,
116
- misses: cacheStats.misses || 0,
117
- hitRate: cacheStats.hitRate || 0,
118
- totalSize: cacheStats.totalSize || 0,
119
- memoryUsageMB: this.estimateCacheMemoryUsage(cacheStats.totalSize || 0),
120
- evictions: cacheStats.evictions || 0,
121
- averageCacheTime: 0.5, // Sub-millisecond average
122
- };
123
- }
124
- /**
125
- * Update system metrics
126
- */
127
- updateSystemMetrics() {
128
- const memUsage = process.memoryUsage();
129
- this.metrics.system = {
130
- cpuUsage: this.getCpuUsage(),
131
- memoryUsage: Math.round((memUsage.heapUsed / memUsage.heapTotal) * 100),
132
- uptime: Date.now() - this.startTime,
133
- activeConnections: 1, // Will be updated by connection manager
134
- concurrentRequests: 0, // Will be updated by request manager
135
- };
136
- }
137
- /**
138
- * Get current performance metrics
139
- */
140
- getMetrics() {
141
- this.updateSystemMetrics();
142
- return { ...this.metrics };
143
- }
144
- /**
145
- * Get historical performance data
146
- */
147
- getHistoricalData(startTime, endTime) {
148
- if (!this.config.enableHistoricalData) {
149
- return [];
150
- }
151
- let data = [...this.historicalData];
152
- if (startTime) {
153
- data = data.filter((m) => m.system.uptime >= startTime);
154
- }
155
- if (endTime) {
156
- data = data.filter((m) => m.system.uptime <= endTime);
157
- }
158
- return data;
159
- }
160
- /**
161
- * Get performance alerts
162
- */
163
- getAlerts(severity) {
164
- if (severity) {
165
- return this.alerts.filter((alert) => alert.severity === severity);
166
- }
167
- return [...this.alerts];
168
- }
169
- /**
170
- * Clear alerts
171
- */
172
- clearAlerts() {
173
- this.alerts = [];
174
- }
175
- /**
176
- * Generate performance insights
177
- */
178
- generateInsights() {
179
- const current = this.getMetrics();
180
- const health = this.calculateOverallHealth(current);
181
- return {
182
- summary: this.generateSummary(current),
183
- recommendations: this.generateRecommendations(current),
184
- trends: this.generateTrends(),
185
- health,
186
- };
187
- }
188
- /**
189
- * Export performance data
190
- */
191
- exportData(format = "json") {
192
- const data = {
193
- currentMetrics: this.getMetrics(),
194
- historicalData: this.getHistoricalData(),
195
- alerts: this.getAlerts(),
196
- config: this.config,
197
- generatedAt: new Date().toISOString(),
198
- };
199
- if (format === "csv") {
200
- return this.convertToCSV([data]);
201
- }
202
- return JSON.stringify(data, null, 2);
203
- }
204
- /**
205
- * Start automatic metric collection
206
- * Note: This uses setInterval and is not called in test environments to avoid Jest timer issues
207
- */
208
- startCollection() {
209
- this.collectionTimer = setInterval(() => {
210
- const snapshot = this.getMetrics();
211
- if (this.config.enableHistoricalData) {
212
- this.historicalData.push(snapshot);
213
- this.cleanupOldData();
214
- }
215
- }, this.config.collectInterval);
216
- }
217
- /**
218
- * Stop metric collection
219
- */
220
- stop() {
221
- if (this.collectionTimer) {
222
- clearInterval(this.collectionTimer);
223
- }
224
- }
225
- /**
226
- * Record tool usage and performance
227
- */
228
- recordToolUsage(toolName, responseTime, success) {
229
- // Update usage count
230
- this.metrics.tools.toolUsageCount[toolName] = (this.metrics.tools.toolUsageCount[toolName] || 0) + 1;
231
- // Update performance metrics
232
- if (!this.metrics.tools.toolPerformance[toolName]) {
233
- this.metrics.tools.toolPerformance[toolName] = {
234
- averageTime: responseTime,
235
- successRate: success ? 1 : 0,
236
- callCount: 1,
237
- };
238
- }
239
- else {
240
- const perf = this.metrics.tools.toolPerformance[toolName];
241
- const totalCalls = perf.callCount + 1;
242
- // Update average time
243
- perf.averageTime = (perf.averageTime * perf.callCount + responseTime) / totalCalls;
244
- // Update success rate
245
- const totalSuccess = perf.successRate * perf.callCount + (success ? 1 : 0);
246
- perf.successRate = totalSuccess / totalCalls;
247
- perf.callCount = totalCalls;
248
- }
249
- // Update most used tool
250
- const usageCounts = this.metrics.tools.toolUsageCount;
251
- this.metrics.tools.mostUsedTool = Object.keys(usageCounts).reduce((a, b) => usageCounts[a] > usageCounts[b] ? a : b);
252
- }
253
- /**
254
- * Update response time metrics with percentiles
255
- */
256
- updateResponseTimeMetrics() {
257
- if (this.responseTimes.length === 0)
258
- return;
259
- const sorted = [...this.responseTimes].sort((a, b) => a - b);
260
- const total = this.metrics.requests.total;
261
- this.metrics.requests.averageResponseTime =
262
- this.responseTimes.reduce((sum, time) => sum + time, 0) / this.responseTimes.length;
263
- this.metrics.requests.minResponseTime = sorted[0];
264
- this.metrics.requests.maxResponseTime = sorted[sorted.length - 1];
265
- // Calculate percentiles
266
- this.metrics.requests.p50ResponseTime = this.getPercentile(sorted, 0.5);
267
- this.metrics.requests.p95ResponseTime = this.getPercentile(sorted, 0.95);
268
- this.metrics.requests.p99ResponseTime = this.getPercentile(sorted, 0.99);
269
- // Calculate requests per second
270
- const uptime = (Date.now() - this.startTime) / 1000;
271
- this.metrics.requests.requestsPerSecond = total / uptime;
272
- // Limit response time history to prevent memory growth
273
- if (this.responseTimes.length > 10000) {
274
- this.responseTimes = this.responseTimes.slice(-5000);
275
- }
276
- }
277
- /**
278
- * Get percentile value from sorted array
279
- */
280
- getPercentile(sorted, percentile) {
281
- const index = Math.ceil(sorted.length * percentile) - 1;
282
- return sorted[Math.max(0, index)];
283
- }
284
- /**
285
- * Estimate cache memory usage
286
- */
287
- estimateCacheMemoryUsage(totalSize) {
288
- // Rough estimate: ~1KB per cache entry
289
- return (totalSize * 1024) / (1024 * 1024); // Convert to MB
290
- }
291
- /**
292
- * Get CPU usage (simplified)
293
- */
294
- getCpuUsage() {
295
- // Simplified CPU usage estimation
296
- // In production, use more sophisticated monitoring
297
- return Math.round(Math.random() * 20 + 10); // 10-30% placeholder
298
- }
299
- /**
300
- * Check for performance alerts
301
- */
302
- checkPerformanceAlerts() {
303
- const thresholds = this.config.alertThresholds;
304
- // Response time alert
305
- if (this.metrics.requests.averageResponseTime > thresholds.responseTime) {
306
- this.addAlert("warning", "performance", `High response time: ${this.metrics.requests.averageResponseTime}ms`, "averageResponseTime", thresholds.responseTime, this.metrics.requests.averageResponseTime, "Consider enabling caching or optimizing queries");
307
- }
308
- // Error rate alert
309
- const errorRate = this.metrics.requests.failed / this.metrics.requests.total;
310
- if (errorRate > thresholds.errorRate) {
311
- this.addAlert("error", "performance", `High error rate: ${Math.round(errorRate * 100)}%`, "errorRate", thresholds.errorRate, errorRate, "Check WordPress connectivity and authentication");
312
- }
313
- // Cache hit rate alert
314
- if (this.metrics.cache.hitRate < thresholds.cacheHitRate) {
315
- this.addAlert("warning", "cache", `Low cache hit rate: ${Math.round(this.metrics.cache.hitRate * 100)}%`, "cacheHitRate", thresholds.cacheHitRate, this.metrics.cache.hitRate, "Consider cache warming or adjusting TTL values");
316
- }
317
- }
318
- /**
319
- * Add performance alert
320
- */
321
- addAlert(severity, category, message, metric, threshold, actualValue, suggestion) {
322
- const alert = {
323
- id: `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
324
- timestamp: Date.now(),
325
- severity,
326
- category,
327
- message,
328
- metric,
329
- threshold,
330
- actualValue,
331
- ...(suggestion && { suggestion }),
332
- };
333
- this.alerts.push(alert);
334
- // Limit alert history
335
- if (this.alerts.length > 1000) {
336
- this.alerts = this.alerts.slice(-500);
337
- }
338
- }
339
- /**
340
- * Calculate overall system health
341
- */
342
- calculateOverallHealth(metrics) {
343
- let score = 100;
344
- // Response time impact
345
- if (metrics.requests.averageResponseTime > 3000)
346
- score -= 30;
347
- else if (metrics.requests.averageResponseTime > 1000)
348
- score -= 15;
349
- // Error rate impact
350
- const errorRate = metrics.requests.failed / metrics.requests.total;
351
- if (errorRate > 0.1)
352
- score -= 40;
353
- else if (errorRate > 0.05)
354
- score -= 20;
355
- // Cache performance impact
356
- if (metrics.cache.hitRate < 0.5)
357
- score -= 25;
358
- else if (metrics.cache.hitRate < 0.8)
359
- score -= 10;
360
- // System resource impact
361
- if (metrics.system.memoryUsage > 90)
362
- score -= 20;
363
- else if (metrics.system.memoryUsage > 80)
364
- score -= 10;
365
- if (score >= 90)
366
- return "excellent";
367
- if (score >= 75)
368
- return "good";
369
- if (score >= 50)
370
- return "warning";
371
- return "critical";
372
- }
373
- /**
374
- * Generate performance summary
375
- */
376
- generateSummary(metrics) {
377
- const errorRate = metrics.requests.total > 0 ? ((metrics.requests.failed / metrics.requests.total) * 100).toFixed(1) : "0";
378
- return (`Performance Summary: ${metrics.requests.total} requests processed with ${errorRate}% error rate. ` +
379
- `Average response time: ${metrics.requests.averageResponseTime.toFixed(0)}ms. ` +
380
- `Cache hit rate: ${(metrics.cache.hitRate * 100).toFixed(1)}%. ` +
381
- `System uptime: ${Math.round(metrics.system.uptime / 1000 / 60)} minutes.`);
382
- }
383
- /**
384
- * Generate performance recommendations
385
- */
386
- generateRecommendations(metrics) {
387
- const recommendations = [];
388
- if (metrics.requests.averageResponseTime > 1000) {
389
- recommendations.push("Enable caching to reduce response times");
390
- }
391
- if (metrics.cache.hitRate < 0.8) {
392
- recommendations.push("Warm cache with frequently accessed data");
393
- }
394
- if (metrics.system.memoryUsage > 80) {
395
- recommendations.push("Consider increasing memory allocation or cache size limits");
396
- }
397
- const errorRate = metrics.requests.failed / metrics.requests.total;
398
- if (errorRate > 0.05) {
399
- recommendations.push("Review error logs and improve error handling");
400
- }
401
- return recommendations;
402
- }
403
- /**
404
- * Generate trend analysis
405
- */
406
- generateTrends() {
407
- if (this.historicalData.length < 2) {
408
- return ["Insufficient data for trend analysis"];
409
- }
410
- const trends = [];
411
- const recent = this.historicalData.slice(-5);
412
- // Response time trend
413
- const responseTimes = recent.map((d) => d.requests.averageResponseTime);
414
- if (this.isIncreasing(responseTimes)) {
415
- trends.push("Response times are increasing");
416
- }
417
- else if (this.isDecreasing(responseTimes)) {
418
- trends.push("Response times are improving");
419
- }
420
- // Cache hit rate trend
421
- const hitRates = recent.map((d) => d.cache.hitRate);
422
- if (this.isIncreasing(hitRates)) {
423
- trends.push("Cache performance is improving");
424
- }
425
- else if (this.isDecreasing(hitRates)) {
426
- trends.push("Cache performance is declining");
427
- }
428
- return trends;
429
- }
430
- /**
431
- * Check if values are increasing
432
- */
433
- isIncreasing(values) {
434
- for (let i = 1; i < values.length; i++) {
435
- if (values[i] <= values[i - 1])
436
- return false;
437
- }
438
- return true;
439
- }
440
- /**
441
- * Check if values are decreasing
442
- */
443
- isDecreasing(values) {
444
- for (let i = 1; i < values.length; i++) {
445
- if (values[i] >= values[i - 1])
446
- return false;
447
- }
448
- return true;
449
- }
450
- /**
451
- * Convert data to CSV format
452
- */
453
- convertToCSV(data) {
454
- // Simplified CSV conversion for metrics
455
- const reportData = data[0];
456
- const metrics = reportData?.currentMetrics;
457
- const csv = [
458
- "Metric,Value",
459
- `Total Requests,${metrics.requests.total}`,
460
- `Successful Requests,${metrics.requests.successful}`,
461
- `Failed Requests,${metrics.requests.failed}`,
462
- `Average Response Time,${metrics.requests.averageResponseTime}`,
463
- `Cache Hit Rate,${metrics.cache.hitRate}`,
464
- `Cache Size,${metrics.cache.totalSize}`,
465
- `Memory Usage,${metrics.system.memoryUsage}%`,
466
- `Uptime,${metrics.system.uptime}ms`,
467
- ];
468
- return csv.join("\n");
469
- }
470
- /**
471
- * Clean up old historical data
472
- */
473
- cleanupOldData() {
474
- const cutoff = Date.now() - this.config.retentionPeriod;
475
- this.historicalData = this.historicalData.filter((data) => data.system.uptime > cutoff);
476
- }
477
- }
478
- //# sourceMappingURL=PerformanceMonitor.js.map