mcp-wordpress 1.1.7 → 1.2.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 (255) hide show
  1. package/README.md +388 -66
  2. package/dist/cache/CacheInvalidation.d.ts +118 -0
  3. package/dist/cache/CacheInvalidation.d.ts.map +1 -0
  4. package/dist/cache/CacheInvalidation.js +349 -0
  5. package/dist/cache/CacheInvalidation.js.map +1 -0
  6. package/dist/cache/CacheManager.d.ts +143 -0
  7. package/dist/cache/CacheManager.d.ts.map +1 -0
  8. package/dist/cache/CacheManager.js +308 -0
  9. package/dist/cache/CacheManager.js.map +1 -0
  10. package/dist/cache/HttpCacheWrapper.d.ts +121 -0
  11. package/dist/cache/HttpCacheWrapper.d.ts.map +1 -0
  12. package/dist/cache/HttpCacheWrapper.js +280 -0
  13. package/dist/cache/HttpCacheWrapper.js.map +1 -0
  14. package/dist/cache/__tests__/CacheInvalidation.test.d.ts +5 -0
  15. package/dist/cache/__tests__/CacheInvalidation.test.d.ts.map +1 -0
  16. package/dist/cache/__tests__/CacheInvalidation.test.js +236 -0
  17. package/dist/cache/__tests__/CacheInvalidation.test.js.map +1 -0
  18. package/dist/cache/__tests__/CacheManager.test.d.ts +5 -0
  19. package/dist/cache/__tests__/CacheManager.test.d.ts.map +1 -0
  20. package/dist/cache/__tests__/CacheManager.test.js +233 -0
  21. package/dist/cache/__tests__/CacheManager.test.js.map +1 -0
  22. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts +5 -0
  23. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts.map +1 -0
  24. package/dist/cache/__tests__/CachedWordPressClient.test.js +228 -0
  25. package/dist/cache/__tests__/CachedWordPressClient.test.js.map +1 -0
  26. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts +5 -0
  27. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts.map +1 -0
  28. package/dist/cache/__tests__/HttpCacheWrapper.test.js +296 -0
  29. package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +1 -0
  30. package/dist/cache/index.d.ts +12 -0
  31. package/dist/cache/index.d.ts.map +1 -0
  32. package/dist/cache/index.js +9 -0
  33. package/dist/cache/index.js.map +1 -0
  34. package/dist/client/CachedWordPressClient.d.ts +160 -0
  35. package/dist/client/CachedWordPressClient.d.ts.map +1 -0
  36. package/dist/client/CachedWordPressClient.js +338 -0
  37. package/dist/client/CachedWordPressClient.js.map +1 -0
  38. package/dist/client/WordPressClient.d.ts +81 -0
  39. package/dist/client/WordPressClient.d.ts.map +1 -0
  40. package/dist/client/WordPressClient.js +354 -0
  41. package/dist/client/WordPressClient.js.map +1 -0
  42. package/dist/config/ConfigurationSchema.d.ts +281 -0
  43. package/dist/config/ConfigurationSchema.d.ts.map +1 -0
  44. package/dist/config/ConfigurationSchema.js +205 -0
  45. package/dist/config/ConfigurationSchema.js.map +1 -0
  46. package/dist/config/ServerConfiguration.d.ts +38 -0
  47. package/dist/config/ServerConfiguration.d.ts.map +1 -0
  48. package/dist/config/ServerConfiguration.js +158 -0
  49. package/dist/config/ServerConfiguration.js.map +1 -0
  50. package/dist/docs/DocumentationGenerator.d.ts +184 -0
  51. package/dist/docs/DocumentationGenerator.d.ts.map +1 -0
  52. package/dist/docs/DocumentationGenerator.js +735 -0
  53. package/dist/docs/DocumentationGenerator.js.map +1 -0
  54. package/dist/docs/MarkdownFormatter.d.ts +84 -0
  55. package/dist/docs/MarkdownFormatter.d.ts.map +1 -0
  56. package/dist/docs/MarkdownFormatter.js +448 -0
  57. package/dist/docs/MarkdownFormatter.js.map +1 -0
  58. package/dist/docs/index.d.ts +8 -0
  59. package/dist/docs/index.d.ts.map +1 -0
  60. package/dist/docs/index.js +7 -0
  61. package/dist/docs/index.js.map +1 -0
  62. package/dist/index.d.ts +1 -4
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +12 -212
  65. package/dist/index.js.map +1 -1
  66. package/dist/performance/AnomalyDetector.d.ts +63 -0
  67. package/dist/performance/AnomalyDetector.d.ts.map +1 -0
  68. package/dist/performance/AnomalyDetector.js +222 -0
  69. package/dist/performance/AnomalyDetector.js.map +1 -0
  70. package/dist/performance/BenchmarkAnalyzer.d.ts +67 -0
  71. package/dist/performance/BenchmarkAnalyzer.d.ts.map +1 -0
  72. package/dist/performance/BenchmarkAnalyzer.js +301 -0
  73. package/dist/performance/BenchmarkAnalyzer.js.map +1 -0
  74. package/dist/performance/MetricsCollector.d.ts +139 -0
  75. package/dist/performance/MetricsCollector.d.ts.map +1 -0
  76. package/dist/performance/MetricsCollector.js +320 -0
  77. package/dist/performance/MetricsCollector.js.map +1 -0
  78. package/dist/performance/PerformanceAnalytics.d.ts +162 -0
  79. package/dist/performance/PerformanceAnalytics.d.ts.map +1 -0
  80. package/dist/performance/PerformanceAnalytics.js +554 -0
  81. package/dist/performance/PerformanceAnalytics.js.map +1 -0
  82. package/dist/performance/PerformanceMonitor.d.ts +202 -0
  83. package/dist/performance/PerformanceMonitor.d.ts.map +1 -0
  84. package/dist/performance/PerformanceMonitor.js +478 -0
  85. package/dist/performance/PerformanceMonitor.js.map +1 -0
  86. package/dist/performance/TrendAnalyzer.d.ts +69 -0
  87. package/dist/performance/TrendAnalyzer.d.ts.map +1 -0
  88. package/dist/performance/TrendAnalyzer.js +203 -0
  89. package/dist/performance/TrendAnalyzer.js.map +1 -0
  90. package/dist/performance/index.d.ts +11 -0
  91. package/dist/performance/index.d.ts.map +1 -0
  92. package/dist/performance/index.js +8 -0
  93. package/dist/performance/index.js.map +1 -0
  94. package/dist/security/InputValidator.d.ts +215 -0
  95. package/dist/security/InputValidator.d.ts.map +1 -0
  96. package/dist/security/InputValidator.js +278 -0
  97. package/dist/security/InputValidator.js.map +1 -0
  98. package/dist/security/SecurityConfig.d.ts +129 -0
  99. package/dist/security/SecurityConfig.d.ts.map +1 -0
  100. package/dist/security/SecurityConfig.js +262 -0
  101. package/dist/security/SecurityConfig.js.map +1 -0
  102. package/dist/server/ConnectionTester.d.ts +24 -0
  103. package/dist/server/ConnectionTester.d.ts.map +1 -0
  104. package/dist/server/ConnectionTester.js +61 -0
  105. package/dist/server/ConnectionTester.js.map +1 -0
  106. package/dist/server/ToolRegistry.d.ts +46 -0
  107. package/dist/server/ToolRegistry.d.ts.map +1 -0
  108. package/dist/server/ToolRegistry.js +148 -0
  109. package/dist/server/ToolRegistry.js.map +1 -0
  110. package/dist/tools/BaseToolClass.d.ts +76 -0
  111. package/dist/tools/BaseToolClass.d.ts.map +1 -0
  112. package/dist/tools/BaseToolClass.js +104 -0
  113. package/dist/tools/BaseToolClass.js.map +1 -0
  114. package/dist/tools/BaseToolManager.d.ts +26 -0
  115. package/dist/tools/BaseToolManager.d.ts.map +1 -0
  116. package/dist/tools/BaseToolManager.js +56 -0
  117. package/dist/tools/BaseToolManager.js.map +1 -0
  118. package/dist/tools/base.d.ts +37 -0
  119. package/dist/tools/base.d.ts.map +1 -0
  120. package/dist/tools/base.js +60 -0
  121. package/dist/tools/base.js.map +1 -0
  122. package/dist/tools/cache.d.ts +260 -0
  123. package/dist/tools/cache.d.ts.map +1 -0
  124. package/dist/tools/cache.js +237 -0
  125. package/dist/tools/cache.js.map +1 -0
  126. package/dist/tools/index.d.ts +2 -0
  127. package/dist/tools/index.d.ts.map +1 -1
  128. package/dist/tools/index.js +2 -0
  129. package/dist/tools/index.js.map +1 -1
  130. package/dist/tools/performance.d.ts +63 -0
  131. package/dist/tools/performance.d.ts.map +1 -0
  132. package/dist/tools/performance.js +865 -0
  133. package/dist/tools/performance.js.map +1 -0
  134. package/dist/types/client.d.ts +1 -0
  135. package/dist/types/client.d.ts.map +1 -1
  136. package/dist/types/client.js.map +1 -1
  137. package/dist/utils/toolWrapper.d.ts +4 -0
  138. package/dist/utils/toolWrapper.d.ts.map +1 -1
  139. package/dist/utils/toolWrapper.js +11 -0
  140. package/dist/utils/toolWrapper.js.map +1 -1
  141. package/dist/utils/validation.d.ts +68 -0
  142. package/dist/utils/validation.d.ts.map +1 -0
  143. package/dist/utils/validation.js +185 -0
  144. package/dist/utils/validation.js.map +1 -0
  145. package/docs/CACHING.md +340 -0
  146. package/docs/DOCKER.md +451 -0
  147. package/docs/PERFORMANCE_MONITORING.md +471 -0
  148. package/docs/SECURITY_TESTING.md +393 -0
  149. package/docs/api/README.md +200 -0
  150. package/docs/api/categories/auth.md +40 -0
  151. package/docs/api/categories/cache.md +41 -0
  152. package/docs/api/categories/comment.md +44 -0
  153. package/docs/api/categories/media.md +43 -0
  154. package/docs/api/categories/page.md +43 -0
  155. package/docs/api/categories/performance.md +44 -0
  156. package/docs/api/categories/post.md +43 -0
  157. package/docs/api/categories/site.md +43 -0
  158. package/docs/api/categories/taxonomy.md +47 -0
  159. package/docs/api/categories/user.md +43 -0
  160. package/docs/api/openapi.json +3305 -0
  161. package/docs/api/summary.json +12 -0
  162. package/docs/api/tools/wp_approve_comment.md +98 -0
  163. package/docs/api/tools/wp_cache_clear.md +120 -0
  164. package/docs/api/tools/wp_cache_info.md +119 -0
  165. package/docs/api/tools/wp_cache_stats.md +119 -0
  166. package/docs/api/tools/wp_cache_warm.md +119 -0
  167. package/docs/api/tools/wp_create_application_password.md +102 -0
  168. package/docs/api/tools/wp_create_category.md +102 -0
  169. package/docs/api/tools/wp_create_comment.md +128 -0
  170. package/docs/api/tools/wp_create_page.md +135 -0
  171. package/docs/api/tools/wp_create_post.md +147 -0
  172. package/docs/api/tools/wp_create_tag.md +101 -0
  173. package/docs/api/tools/wp_create_user.md +135 -0
  174. package/docs/api/tools/wp_delete_application_password.md +101 -0
  175. package/docs/api/tools/wp_delete_category.md +100 -0
  176. package/docs/api/tools/wp_delete_comment.md +101 -0
  177. package/docs/api/tools/wp_delete_media.md +108 -0
  178. package/docs/api/tools/wp_delete_page.md +108 -0
  179. package/docs/api/tools/wp_delete_post.md +117 -0
  180. package/docs/api/tools/wp_delete_tag.md +100 -0
  181. package/docs/api/tools/wp_delete_user.md +108 -0
  182. package/docs/api/tools/wp_get_application_passwords.md +103 -0
  183. package/docs/api/tools/wp_get_auth_status.md +101 -0
  184. package/docs/api/tools/wp_get_category.md +103 -0
  185. package/docs/api/tools/wp_get_comment.md +103 -0
  186. package/docs/api/tools/wp_get_current_user.md +101 -0
  187. package/docs/api/tools/wp_get_media.md +103 -0
  188. package/docs/api/tools/wp_get_page.md +103 -0
  189. package/docs/api/tools/wp_get_page_revisions.md +103 -0
  190. package/docs/api/tools/wp_get_post.md +112 -0
  191. package/docs/api/tools/wp_get_post_revisions.md +103 -0
  192. package/docs/api/tools/wp_get_site_settings.md +108 -0
  193. package/docs/api/tools/wp_get_tag.md +103 -0
  194. package/docs/api/tools/wp_get_user.md +103 -0
  195. package/docs/api/tools/wp_list_categories.md +111 -0
  196. package/docs/api/tools/wp_list_comments.md +111 -0
  197. package/docs/api/tools/wp_list_media.md +145 -0
  198. package/docs/api/tools/wp_list_pages.md +145 -0
  199. package/docs/api/tools/wp_list_posts.md +156 -0
  200. package/docs/api/tools/wp_list_tags.md +110 -0
  201. package/docs/api/tools/wp_list_users.md +111 -0
  202. package/docs/api/tools/wp_performance_alerts.md +162 -0
  203. package/docs/api/tools/wp_performance_benchmark.md +160 -0
  204. package/docs/api/tools/wp_performance_export.md +162 -0
  205. package/docs/api/tools/wp_performance_history.md +161 -0
  206. package/docs/api/tools/wp_performance_optimize.md +162 -0
  207. package/docs/api/tools/wp_performance_stats.md +160 -0
  208. package/docs/api/tools/wp_search_site.md +99 -0
  209. package/docs/api/tools/wp_spam_comment.md +98 -0
  210. package/docs/api/tools/wp_switch_auth_method.md +122 -0
  211. package/docs/api/tools/wp_test_auth.md +96 -0
  212. package/docs/api/tools/wp_update_category.md +102 -0
  213. package/docs/api/tools/wp_update_comment.md +127 -0
  214. package/docs/api/tools/wp_update_media.md +129 -0
  215. package/docs/api/tools/wp_update_page.md +135 -0
  216. package/docs/api/tools/wp_update_post.md +144 -0
  217. package/docs/api/tools/wp_update_site_settings.md +127 -0
  218. package/docs/api/tools/wp_update_tag.md +102 -0
  219. package/docs/api/tools/wp_update_user.md +134 -0
  220. package/docs/api/tools/wp_upload_media.md +131 -0
  221. package/docs/api/types/WordPressPost.md +39 -0
  222. package/docs/contract-testing.md +183 -0
  223. package/docs/developer/NPM_AUTH_SETUP.md +3 -3
  224. package/docs/wordpress-rest-api-authentication-troubleshooting.md +218 -0
  225. package/package.json +84 -64
  226. package/src/cache/CacheInvalidation.ts +421 -0
  227. package/src/cache/CacheManager.ts +391 -0
  228. package/src/cache/HttpCacheWrapper.ts +372 -0
  229. package/src/cache/__tests__/CacheInvalidation.test.ts +299 -0
  230. package/src/cache/__tests__/CacheManager.test.ts +300 -0
  231. package/src/cache/__tests__/CachedWordPressClient.test.ts +304 -0
  232. package/src/cache/__tests__/HttpCacheWrapper.test.ts +359 -0
  233. package/src/cache/index.ts +26 -0
  234. package/src/client/CachedWordPressClient.ts +442 -0
  235. package/src/config/ConfigurationSchema.ts +246 -0
  236. package/src/config/ServerConfiguration.ts +215 -0
  237. package/src/docs/DocumentationGenerator.ts +952 -0
  238. package/src/docs/MarkdownFormatter.ts +494 -0
  239. package/src/docs/index.ts +21 -0
  240. package/src/index.ts +14 -274
  241. package/src/performance/MetricsCollector.ts +447 -0
  242. package/src/performance/PerformanceAnalytics.ts +762 -0
  243. package/src/performance/PerformanceMonitor.ts +649 -0
  244. package/src/performance/index.ts +28 -0
  245. package/src/security/InputValidator.ts +319 -0
  246. package/src/security/SecurityConfig.ts +301 -0
  247. package/src/server/ConnectionTester.ts +74 -0
  248. package/src/server/ToolRegistry.ts +194 -0
  249. package/src/tools/BaseToolManager.ts +66 -0
  250. package/src/tools/cache.ts +259 -0
  251. package/src/tools/index.ts +2 -0
  252. package/src/tools/performance.ts +948 -0
  253. package/src/types/client.ts +1 -0
  254. package/src/utils/toolWrapper.ts +11 -0
  255. package/src/utils/validation.ts +259 -0
@@ -0,0 +1,301 @@
1
+ /**
2
+ * Benchmark Analysis for Performance Metrics
3
+ * Compares current performance against industry standards
4
+ */
5
+ /**
6
+ * Analyzes performance against industry benchmarks
7
+ */
8
+ export class BenchmarkAnalyzer {
9
+ // Performance benchmarks (based on industry standards)
10
+ benchmarks = {
11
+ responseTime: {
12
+ excellent: 200, // <200ms
13
+ good: 500, // 200-500ms
14
+ average: 1000, // 500ms-1s
15
+ below_average: 2000, // 1-2s
16
+ poor: Infinity // >2s
17
+ },
18
+ cacheHitRate: {
19
+ excellent: 0.95, // >95%
20
+ good: 0.85, // 85-95%
21
+ average: 0.70, // 70-85%
22
+ below_average: 0.50, // 50-70%
23
+ poor: 0 // <50%
24
+ },
25
+ errorRate: {
26
+ excellent: 0.001, // <0.1%
27
+ good: 0.01, // 0.1-1%
28
+ average: 0.02, // 1-2%
29
+ below_average: 0.05, // 2-5%
30
+ poor: Infinity // >5%
31
+ },
32
+ memoryUsage: {
33
+ excellent: 50, // <50%
34
+ good: 70, // 50-70%
35
+ average: 80, // 70-80%
36
+ below_average: 90, // 80-90%
37
+ poor: 100 // >90%
38
+ },
39
+ throughput: {
40
+ excellent: 1000, // >1000 req/s
41
+ good: 500, // 500-1000 req/s
42
+ average: 100, // 100-500 req/s
43
+ below_average: 50, // 50-100 req/s
44
+ poor: 0 // <50 req/s
45
+ }
46
+ };
47
+ /**
48
+ * Compare current metrics against benchmarks
49
+ */
50
+ compareToBenchmarks(metrics) {
51
+ const comparisons = [];
52
+ // Response Time
53
+ if (metrics.requests?.averageResponseTime !== undefined) {
54
+ comparisons.push(this.createBenchmarkComparison('responseTime', 'Response Time', metrics.requests.averageResponseTime, false // Lower is better
55
+ ));
56
+ }
57
+ // Cache Hit Rate
58
+ if (metrics.cache?.hitRate !== undefined) {
59
+ comparisons.push(this.createBenchmarkComparison('cacheHitRate', 'Cache Hit Rate', metrics.cache.hitRate, true // Higher is better
60
+ ));
61
+ }
62
+ // Error Rate
63
+ if (metrics.requests?.total && metrics.requests.total > 0) {
64
+ const errorRate = metrics.requests.failed / metrics.requests.total;
65
+ comparisons.push(this.createBenchmarkComparison('errorRate', 'Error Rate', errorRate, false // Lower is better
66
+ ));
67
+ }
68
+ // Memory Usage
69
+ if (metrics.system?.memoryUsage !== undefined) {
70
+ comparisons.push(this.createBenchmarkComparison('memoryUsage', 'Memory Usage', metrics.system.memoryUsage, false // Lower is better
71
+ ));
72
+ }
73
+ // Throughput
74
+ if (metrics.requests?.requestsPerSecond !== undefined) {
75
+ comparisons.push(this.createBenchmarkComparison('throughput', 'Throughput', metrics.requests.requestsPerSecond, true // Higher is better
76
+ ));
77
+ }
78
+ return comparisons;
79
+ }
80
+ /**
81
+ * Create a benchmark comparison for a specific metric
82
+ */
83
+ createBenchmarkComparison(metricKey, category, currentValue, higherIsBetter) {
84
+ const thresholds = this.benchmarks[metricKey];
85
+ const status = this.determineStatus(currentValue, thresholds, higherIsBetter);
86
+ const percentile = this.calculatePercentile(currentValue, thresholds, higherIsBetter);
87
+ const benchmarkValue = this.getBenchmarkValue(status, thresholds);
88
+ const improvement = this.calculateImprovement(currentValue, status, thresholds, higherIsBetter);
89
+ return {
90
+ category,
91
+ currentValue,
92
+ benchmarkValue,
93
+ percentile,
94
+ status,
95
+ improvement
96
+ };
97
+ }
98
+ /**
99
+ * Determine performance status based on thresholds
100
+ */
101
+ determineStatus(value, thresholds, higherIsBetter) {
102
+ if (higherIsBetter) {
103
+ if (value >= thresholds.excellent)
104
+ return 'excellent';
105
+ if (value >= thresholds.good)
106
+ return 'good';
107
+ if (value >= thresholds.average)
108
+ return 'average';
109
+ if (value >= thresholds.below_average)
110
+ return 'below_average';
111
+ return 'poor';
112
+ }
113
+ else {
114
+ if (value <= thresholds.excellent)
115
+ return 'excellent';
116
+ if (value <= thresholds.good)
117
+ return 'good';
118
+ if (value <= thresholds.average)
119
+ return 'average';
120
+ if (value <= thresholds.below_average)
121
+ return 'below_average';
122
+ return 'poor';
123
+ }
124
+ }
125
+ /**
126
+ * Calculate percentile ranking
127
+ */
128
+ calculatePercentile(value, thresholds, higherIsBetter) {
129
+ const values = [
130
+ thresholds.poor,
131
+ thresholds.below_average,
132
+ thresholds.average,
133
+ thresholds.good,
134
+ thresholds.excellent
135
+ ];
136
+ if (higherIsBetter) {
137
+ values.reverse();
138
+ }
139
+ // Find position in sorted array
140
+ let position = 0;
141
+ for (let i = 0; i < values.length; i++) {
142
+ if (higherIsBetter ? value >= values[i] : value <= values[i]) {
143
+ position = i + 1;
144
+ }
145
+ }
146
+ return Math.round((position / values.length) * 100);
147
+ }
148
+ /**
149
+ * Get the benchmark value for a given status
150
+ */
151
+ getBenchmarkValue(status, thresholds) {
152
+ switch (status) {
153
+ case 'excellent': return thresholds.excellent;
154
+ case 'good': return thresholds.good;
155
+ case 'average': return thresholds.average;
156
+ case 'below_average': return thresholds.below_average;
157
+ case 'poor': return thresholds.poor === Infinity ? thresholds.below_average * 2 : thresholds.poor;
158
+ default: return thresholds.average;
159
+ }
160
+ }
161
+ /**
162
+ * Calculate improvement needed to reach next tier
163
+ */
164
+ calculateImprovement(currentValue, status, thresholds, higherIsBetter) {
165
+ let targetValue;
166
+ switch (status) {
167
+ case 'poor':
168
+ targetValue = thresholds.below_average;
169
+ break;
170
+ case 'below_average':
171
+ targetValue = thresholds.average;
172
+ break;
173
+ case 'average':
174
+ targetValue = thresholds.good;
175
+ break;
176
+ case 'good':
177
+ targetValue = thresholds.excellent;
178
+ break;
179
+ case 'excellent':
180
+ return 0; // Already at top tier
181
+ default:
182
+ targetValue = thresholds.good;
183
+ }
184
+ if (higherIsBetter) {
185
+ return Math.max(0, targetValue - currentValue);
186
+ }
187
+ else {
188
+ return Math.max(0, currentValue - targetValue);
189
+ }
190
+ }
191
+ /**
192
+ * Generate benchmark report
193
+ */
194
+ generateBenchmarkReport(comparisons) {
195
+ if (comparisons.length === 0) {
196
+ return 'No benchmark data available.';
197
+ }
198
+ const report = ['📊 Performance Benchmark Analysis\n'];
199
+ for (const comparison of comparisons) {
200
+ const statusEmoji = this.getStatusEmoji(comparison.status);
201
+ const improvementText = comparison.improvement > 0
202
+ ? ` (${comparison.improvement.toFixed(2)} improvement needed)`
203
+ : ' (optimal)';
204
+ report.push(`${statusEmoji} ${comparison.category}: ${comparison.status.toUpperCase()}`, ` Current: ${comparison.currentValue.toFixed(2)}`, ` Benchmark: ${comparison.benchmarkValue.toFixed(2)}`, ` Percentile: ${comparison.percentile}th${improvementText}`, '');
205
+ }
206
+ // Add overall assessment
207
+ const excellentCount = comparisons.filter(c => c.status === 'excellent').length;
208
+ const goodCount = comparisons.filter(c => c.status === 'good').length;
209
+ const avgCount = comparisons.filter(c => c.status === 'average').length;
210
+ const belowCount = comparisons.filter(c => c.status === 'below_average').length;
211
+ const poorCount = comparisons.filter(c => c.status === 'poor').length;
212
+ let overallAssessment = '';
213
+ if (excellentCount + goodCount >= comparisons.length * 0.8) {
214
+ overallAssessment = '🎉 Overall Performance: EXCELLENT - Your system is performing very well!';
215
+ }
216
+ else if (excellentCount + goodCount + avgCount >= comparisons.length * 0.7) {
217
+ overallAssessment = '✅ Overall Performance: GOOD - Most metrics are performing adequately.';
218
+ }
219
+ else if (belowCount + poorCount >= comparisons.length * 0.5) {
220
+ overallAssessment = '⚠️ Overall Performance: NEEDS ATTENTION - Several metrics require optimization.';
221
+ }
222
+ else {
223
+ overallAssessment = '🔧 Overall Performance: AVERAGE - Room for improvement in key areas.';
224
+ }
225
+ report.push(overallAssessment);
226
+ return report.join('\n');
227
+ }
228
+ /**
229
+ * Get emoji for performance status
230
+ */
231
+ getStatusEmoji(status) {
232
+ switch (status) {
233
+ case 'excellent': return '🟢';
234
+ case 'good': return '🔵';
235
+ case 'average': return '🟡';
236
+ case 'below_average': return '🟠';
237
+ case 'poor': return '🔴';
238
+ default: return '⚪';
239
+ }
240
+ }
241
+ /**
242
+ * Get recommendations based on benchmark results
243
+ */
244
+ getRecommendations(comparisons) {
245
+ const recommendations = [];
246
+ for (const comparison of comparisons) {
247
+ if (comparison.status === 'poor' || comparison.status === 'below_average') {
248
+ recommendations.push(...this.getMetricRecommendations(comparison));
249
+ }
250
+ }
251
+ return recommendations;
252
+ }
253
+ /**
254
+ * Get specific recommendations for a metric
255
+ */
256
+ getMetricRecommendations(comparison) {
257
+ const category = comparison.category.toLowerCase();
258
+ if (category.includes('response time')) {
259
+ return [
260
+ 'Optimize database queries and add proper indexing',
261
+ 'Implement or improve caching strategies',
262
+ 'Consider using a CDN for static assets',
263
+ 'Optimize WordPress plugins and themes'
264
+ ];
265
+ }
266
+ if (category.includes('cache hit rate')) {
267
+ return [
268
+ 'Review cache configuration and increase cache size',
269
+ 'Implement better cache warming strategies',
270
+ 'Optimize cache key design and expiration policies',
271
+ 'Consider implementing multiple cache layers'
272
+ ];
273
+ }
274
+ if (category.includes('error rate')) {
275
+ return [
276
+ 'Review application logs and fix recurring errors',
277
+ 'Implement better error handling and recovery',
278
+ 'Monitor external service dependencies',
279
+ 'Add health checks and monitoring alerts'
280
+ ];
281
+ }
282
+ if (category.includes('memory usage')) {
283
+ return [
284
+ 'Identify and fix memory leaks',
285
+ 'Optimize data structures and algorithms',
286
+ 'Implement proper garbage collection strategies',
287
+ 'Consider increasing available memory resources'
288
+ ];
289
+ }
290
+ if (category.includes('throughput')) {
291
+ return [
292
+ 'Scale horizontally with load balancing',
293
+ 'Optimize application performance and reduce overhead',
294
+ 'Implement connection pooling and async processing',
295
+ 'Consider upgrading hardware resources'
296
+ ];
297
+ }
298
+ return ['Review and optimize this metric based on specific requirements'];
299
+ }
300
+ }
301
+ //# sourceMappingURL=BenchmarkAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BenchmarkAnalyzer.js","sourceRoot":"","sources":["../../src/performance/BenchmarkAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Real-time Metrics Collector for WordPress MCP Server
3
+ * Integrates with existing client and cache systems
4
+ */
5
+ import { PerformanceMonitor, PerformanceMetrics } from './PerformanceMonitor.js';
6
+ import type { CacheStats } from '../cache/CacheManager.js';
7
+ import type { ClientStats } from '../types/client.js';
8
+ export interface CollectorConfig {
9
+ enableRealTime: boolean;
10
+ collectInterval: number;
11
+ enableToolTracking: boolean;
12
+ enableRequestInterception: boolean;
13
+ enableCacheIntegration: boolean;
14
+ enableSystemMetrics: boolean;
15
+ }
16
+ export interface RequestMetadata {
17
+ toolName?: string;
18
+ siteId?: string;
19
+ endpoint: string;
20
+ method: string;
21
+ startTime: number;
22
+ fromCache: boolean;
23
+ }
24
+ export interface ToolExecutionContext {
25
+ toolName: string;
26
+ parameters: any;
27
+ startTime: number;
28
+ siteId: string | undefined;
29
+ }
30
+ /**
31
+ * Metrics Collector - Central hub for all performance data
32
+ */
33
+ export declare class MetricsCollector {
34
+ private monitor;
35
+ private config;
36
+ private activeRequests;
37
+ private activeTools;
38
+ private clientInstances;
39
+ private cacheManagers;
40
+ constructor(monitor: PerformanceMonitor, config?: Partial<CollectorConfig>);
41
+ /**
42
+ * Register a WordPress client for monitoring
43
+ */
44
+ registerClient(siteId: string, client: any): void;
45
+ /**
46
+ * Register a cache manager for monitoring
47
+ */
48
+ registerCacheManager(siteId: string, cacheManager: any): void;
49
+ /**
50
+ * Start tracking a tool execution
51
+ */
52
+ startToolExecution(toolName: string, parameters: any, siteId?: string): string;
53
+ /**
54
+ * End tool execution and record metrics
55
+ */
56
+ endToolExecution(executionId: string, success: boolean, error?: Error): void;
57
+ /**
58
+ * Record a raw request (bypass tool tracking)
59
+ */
60
+ recordRawRequest(responseTime: number, success: boolean, endpoint: string, fromCache?: boolean): void;
61
+ /**
62
+ * Collect current metrics from all sources
63
+ */
64
+ collectCurrentMetrics(): PerformanceMetrics;
65
+ /**
66
+ * Get aggregated cache statistics
67
+ */
68
+ getAggregatedCacheStats(): CacheStats;
69
+ /**
70
+ * Get aggregated client statistics
71
+ */
72
+ getAggregatedClientStats(): ClientStats;
73
+ /**
74
+ * Get performance summary for specific site
75
+ */
76
+ getSiteMetrics(siteId: string): {
77
+ cache?: CacheStats;
78
+ client?: ClientStats;
79
+ isActive: boolean;
80
+ };
81
+ /**
82
+ * Generate performance comparison between sites
83
+ */
84
+ compareSitePerformance(): {
85
+ sites: string[];
86
+ comparison: Record<string, {
87
+ responseTime: number;
88
+ cacheHitRate: number;
89
+ errorRate: number;
90
+ requestCount: number;
91
+ ranking: number;
92
+ }>;
93
+ bestPerforming: string;
94
+ worstPerforming: string;
95
+ };
96
+ /**
97
+ * Generate optimization suggestions
98
+ */
99
+ generateOptimizationSuggestions(): {
100
+ critical: string[];
101
+ recommended: string[];
102
+ optional: string[];
103
+ };
104
+ /**
105
+ * Export detailed performance report
106
+ */
107
+ exportDetailedReport(): {
108
+ timestamp: string;
109
+ overview: PerformanceMetrics;
110
+ siteComparison: any;
111
+ aggregatedStats: {
112
+ cache: CacheStats;
113
+ client: ClientStats;
114
+ };
115
+ optimizations: any;
116
+ alerts: any[];
117
+ };
118
+ /**
119
+ * Start real-time metric collection
120
+ */
121
+ private startRealTimeCollection;
122
+ /**
123
+ * Update cache metrics in performance monitor
124
+ */
125
+ private updateCacheMetrics;
126
+ /**
127
+ * Update client metrics in performance monitor
128
+ */
129
+ private updateClientMetrics;
130
+ /**
131
+ * Intercept client requests for automatic tracking
132
+ */
133
+ private interceptClientRequests;
134
+ /**
135
+ * Stop all monitoring and cleanup
136
+ */
137
+ stop(): void;
138
+ }
139
+ //# sourceMappingURL=MetricsCollector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricsCollector.d.ts","sourceRoot":"","sources":["../../src/performance/MetricsCollector.ts"],"names":[],"mappings":"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"}