@claude-flow/plugin-perf-optimizer 3.0.0-alpha.1

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.
@@ -0,0 +1,335 @@
1
+ /**
2
+ * Sparse Inference Bridge for Performance Optimizer
3
+ *
4
+ * Provides efficient trace analysis using sparse inference techniques
5
+ * from ruvector-sparse-inference-wasm for processing large performance traces.
6
+ */
7
+ /**
8
+ * Default sparse encoding configuration
9
+ */
10
+ const DEFAULT_SPARSE_CONFIG = {
11
+ maxDimensions: 1024,
12
+ sparsityRatio: 0.1,
13
+ hashBuckets: 256,
14
+ featureExtraction: 'auto',
15
+ };
16
+ /**
17
+ * Sparse Inference Bridge Implementation
18
+ *
19
+ * Provides efficient trace analysis capabilities:
20
+ * - Sparse encoding of trace spans for memory efficiency
21
+ * - Anomaly detection using sparse representations
22
+ * - Critical path analysis using dependency graphs
23
+ */
24
+ export class PerfSparseBridge {
25
+ name = 'perf-optimizer-sparse';
26
+ version = '0.1.0';
27
+ status = 'unloaded';
28
+ config;
29
+ featureHashes = new Map();
30
+ encodingCache = new Map();
31
+ constructor(config) {
32
+ this.config = { ...DEFAULT_SPARSE_CONFIG, ...config };
33
+ }
34
+ async init() {
35
+ if (this.status === 'ready')
36
+ return;
37
+ if (this.status === 'loading')
38
+ return;
39
+ this.status = 'loading';
40
+ try {
41
+ // Try to load WASM module
42
+ // Dynamic import of optional WASM module - use string literal to avoid type error
43
+ const modulePath = '@claude-flow/ruvector-upstream';
44
+ const wasmModule = await import(/* @vite-ignore */ modulePath).catch(() => null);
45
+ if (wasmModule) {
46
+ // Initialize with WASM module
47
+ this.status = 'ready';
48
+ }
49
+ else {
50
+ // Use mock implementation
51
+ this.initializeFeatureHashes();
52
+ this.status = 'ready';
53
+ }
54
+ }
55
+ catch (error) {
56
+ this.status = 'error';
57
+ throw error;
58
+ }
59
+ }
60
+ async destroy() {
61
+ this.featureHashes.clear();
62
+ this.encodingCache.clear();
63
+ this.status = 'unloaded';
64
+ }
65
+ isReady() {
66
+ return this.status === 'ready';
67
+ }
68
+ /**
69
+ * Encode traces into sparse representation
70
+ *
71
+ * Uses feature hashing and sparse encoding to efficiently
72
+ * represent trace spans for downstream analysis.
73
+ */
74
+ async encodeTraces(spans) {
75
+ if (!this.isReady()) {
76
+ throw new Error('Sparse bridge not initialized');
77
+ }
78
+ // Check cache
79
+ const cacheKey = this.computeCacheKey(spans);
80
+ const cached = this.encodingCache.get(cacheKey);
81
+ if (cached)
82
+ return cached;
83
+ const encoding = new Float32Array(this.config.maxDimensions);
84
+ const nonZeroCount = Math.floor(this.config.maxDimensions * this.config.sparsityRatio);
85
+ for (const span of spans) {
86
+ // Extract features from span
87
+ const features = this.extractSpanFeatures(span);
88
+ // Hash features to sparse dimensions
89
+ for (const [feature, value] of Object.entries(features)) {
90
+ const hash = this.hashFeature(feature);
91
+ const dim = hash % this.config.maxDimensions;
92
+ // Accumulate with collision handling
93
+ encoding[dim] += value;
94
+ }
95
+ }
96
+ // Normalize and apply sparsification
97
+ this.normalizeEncoding(encoding);
98
+ this.sparsify(encoding, nonZeroCount);
99
+ // Cache result
100
+ this.encodingCache.set(cacheKey, encoding);
101
+ if (this.encodingCache.size > 1000) {
102
+ // LRU eviction
103
+ const firstKey = this.encodingCache.keys().next().value;
104
+ if (firstKey)
105
+ this.encodingCache.delete(firstKey);
106
+ }
107
+ return encoding;
108
+ }
109
+ /**
110
+ * Detect anomalies in encoded traces
111
+ *
112
+ * Uses sparse representations to identify outliers and anomalous patterns.
113
+ */
114
+ async detectAnomalies(encoded, threshold) {
115
+ if (!this.isReady()) {
116
+ throw new Error('Sparse bridge not initialized');
117
+ }
118
+ const anomalyIndices = [];
119
+ // Compute statistics
120
+ let sum = 0;
121
+ let sumSq = 0;
122
+ let nonZeroCount = 0;
123
+ for (let i = 0; i < encoded.length; i++) {
124
+ if (encoded[i] !== 0) {
125
+ sum += encoded[i];
126
+ sumSq += encoded[i] * encoded[i];
127
+ nonZeroCount++;
128
+ }
129
+ }
130
+ if (nonZeroCount === 0)
131
+ return anomalyIndices;
132
+ const mean = sum / nonZeroCount;
133
+ const variance = (sumSq / nonZeroCount) - (mean * mean);
134
+ const stdDev = Math.sqrt(Math.max(0, variance));
135
+ // Detect anomalies using z-score
136
+ for (let i = 0; i < encoded.length; i++) {
137
+ if (encoded[i] !== 0) {
138
+ const zScore = Math.abs((encoded[i] - mean) / (stdDev + 1e-8));
139
+ if (zScore > threshold) {
140
+ anomalyIndices.push(i);
141
+ }
142
+ }
143
+ }
144
+ return anomalyIndices;
145
+ }
146
+ /**
147
+ * Analyze critical path in traces
148
+ *
149
+ * Uses dependency analysis to identify the critical path through
150
+ * the trace spans.
151
+ */
152
+ async analyzeCriticalPath(encoded) {
153
+ if (!this.isReady()) {
154
+ throw new Error('Sparse bridge not initialized');
155
+ }
156
+ // Find dimensions with highest values (representing critical operations)
157
+ const indexedValues = [];
158
+ for (let i = 0; i < encoded.length; i++) {
159
+ if (encoded[i] > 0) {
160
+ indexedValues.push({ index: i, value: encoded[i] });
161
+ }
162
+ }
163
+ // Sort by value descending
164
+ indexedValues.sort((a, b) => b.value - a.value);
165
+ // Map back to operation names using reverse hash lookup
166
+ const criticalPath = [];
167
+ const reverseHashes = new Map();
168
+ for (const [feature, hash] of this.featureHashes) {
169
+ const dim = hash % this.config.maxDimensions;
170
+ if (!reverseHashes.has(dim)) {
171
+ reverseHashes.set(dim, feature);
172
+ }
173
+ }
174
+ for (const { index } of indexedValues.slice(0, 10)) {
175
+ const feature = reverseHashes.get(index);
176
+ if (feature) {
177
+ criticalPath.push(feature);
178
+ }
179
+ else {
180
+ criticalPath.push(`operation_${index}`);
181
+ }
182
+ }
183
+ return criticalPath;
184
+ }
185
+ /**
186
+ * Analyze trace patterns for bottleneck detection
187
+ */
188
+ analyzePatterns(spans) {
189
+ const patterns = new Map();
190
+ const hotspots = [];
191
+ const dependencies = new Map();
192
+ // Build span tree
193
+ const spanMap = new Map();
194
+ for (const span of spans) {
195
+ spanMap.set(span.spanId, span);
196
+ }
197
+ // Analyze patterns
198
+ for (const span of spans) {
199
+ // Track operation patterns
200
+ const pattern = `${span.serviceName}:${span.operationName}`;
201
+ patterns.set(pattern, (patterns.get(pattern) ?? 0) + 1);
202
+ // Identify hotspots (slow operations)
203
+ if (span.duration > 100) {
204
+ hotspots.push(span.spanId);
205
+ }
206
+ // Build dependency graph
207
+ if (span.parentSpanId) {
208
+ const parent = spanMap.get(span.parentSpanId);
209
+ if (parent) {
210
+ const parentKey = `${parent.serviceName}:${parent.operationName}`;
211
+ const deps = dependencies.get(pattern) ?? [];
212
+ if (!deps.includes(parentKey)) {
213
+ deps.push(parentKey);
214
+ dependencies.set(pattern, deps);
215
+ }
216
+ }
217
+ }
218
+ }
219
+ return { patterns, hotspots, dependencies };
220
+ }
221
+ // ============================================================================
222
+ // Private Methods
223
+ // ============================================================================
224
+ initializeFeatureHashes() {
225
+ // Pre-compute hashes for common features
226
+ const commonFeatures = [
227
+ 'duration', 'error', 'cpu', 'memory', 'io', 'network',
228
+ 'database', 'cache', 'http', 'grpc', 'sql', 'redis',
229
+ ];
230
+ for (const feature of commonFeatures) {
231
+ this.featureHashes.set(feature, this.hashString(feature));
232
+ }
233
+ }
234
+ extractSpanFeatures(span) {
235
+ const features = {};
236
+ // Duration features
237
+ features[`duration_${this.bucketize(span.duration, [10, 50, 100, 500, 1000])}`] = 1;
238
+ features['duration_raw'] = Math.log1p(span.duration) / 10;
239
+ // Service and operation
240
+ features[`service:${span.serviceName}`] = 1;
241
+ features[`operation:${span.operationName}`] = 1;
242
+ // Status
243
+ features[`status:${span.status}`] = 1;
244
+ if (span.status === 'error') {
245
+ features['has_error'] = 1;
246
+ }
247
+ // Attributes
248
+ for (const [key, value] of Object.entries(span.attributes)) {
249
+ if (typeof value === 'number') {
250
+ features[`attr:${key}`] = Math.tanh(value / 100);
251
+ }
252
+ else if (typeof value === 'string') {
253
+ features[`attr:${key}:${value.slice(0, 20)}`] = 1;
254
+ }
255
+ else if (typeof value === 'boolean') {
256
+ features[`attr:${key}:${value}`] = 1;
257
+ }
258
+ }
259
+ // Events
260
+ if (span.events) {
261
+ features['event_count'] = span.events.length / 10;
262
+ for (const event of span.events) {
263
+ features[`event:${event.name}`] = 1;
264
+ }
265
+ }
266
+ return features;
267
+ }
268
+ hashFeature(feature) {
269
+ // Check cache
270
+ const cached = this.featureHashes.get(feature);
271
+ if (cached !== undefined)
272
+ return cached;
273
+ // Compute hash
274
+ const hash = this.hashString(feature);
275
+ this.featureHashes.set(feature, hash);
276
+ return hash;
277
+ }
278
+ hashString(str) {
279
+ let hash = 0;
280
+ for (let i = 0; i < str.length; i++) {
281
+ const char = str.charCodeAt(i);
282
+ hash = ((hash << 5) - hash) + char;
283
+ hash = hash & hash;
284
+ }
285
+ return Math.abs(hash);
286
+ }
287
+ bucketize(value, thresholds) {
288
+ for (let i = 0; i < thresholds.length; i++) {
289
+ if (value < thresholds[i]) {
290
+ return `lt${thresholds[i]}`;
291
+ }
292
+ }
293
+ return `gte${thresholds[thresholds.length - 1]}`;
294
+ }
295
+ normalizeEncoding(encoding) {
296
+ let norm = 0;
297
+ for (let i = 0; i < encoding.length; i++) {
298
+ norm += encoding[i] * encoding[i];
299
+ }
300
+ norm = Math.sqrt(norm);
301
+ if (norm > 0) {
302
+ for (let i = 0; i < encoding.length; i++) {
303
+ encoding[i] /= norm;
304
+ }
305
+ }
306
+ }
307
+ sparsify(encoding, keepCount) {
308
+ // Find threshold to keep top-k values
309
+ const absValues = Array.from(encoding).map(Math.abs);
310
+ absValues.sort((a, b) => b - a);
311
+ const threshold = absValues[Math.min(keepCount - 1, absValues.length - 1)] ?? 0;
312
+ // Zero out values below threshold
313
+ for (let i = 0; i < encoding.length; i++) {
314
+ if (Math.abs(encoding[i]) < threshold) {
315
+ encoding[i] = 0;
316
+ }
317
+ }
318
+ }
319
+ computeCacheKey(spans) {
320
+ if (spans.length === 0)
321
+ return 'empty';
322
+ if (spans.length > 100) {
323
+ // Sample for large span sets
324
+ return `${spans.length}_${spans[0].traceId}_${spans[spans.length - 1].traceId}`;
325
+ }
326
+ return spans.map(s => s.spanId).join('_');
327
+ }
328
+ }
329
+ /**
330
+ * Create a new sparse bridge instance
331
+ */
332
+ export function createPerfSparseBridge(config) {
333
+ return new PerfSparseBridge(config);
334
+ }
335
+ //# sourceMappingURL=sparse-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sparse-bridge.js","sourceRoot":"","sources":["../../src/bridges/sparse-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * @claude-flow/plugin-perf-optimizer
3
+ *
4
+ * AI-powered performance optimization plugin for Claude Flow V3.
5
+ *
6
+ * Features:
7
+ * - Bottleneck detection using trace analysis
8
+ * - Memory leak detection and analysis
9
+ * - Database query optimization (N+1, missing indexes)
10
+ * - JavaScript bundle optimization
11
+ * - Configuration tuning with SONA learning
12
+ *
13
+ * Uses RuVector WASM packages for high-performance analysis:
14
+ * - ruvector-sparse-inference-wasm: Efficient trace processing
15
+ * - ruvector-fpga-transformer-wasm: Fast configuration optimization
16
+ * - ruvector-gnn-wasm: Dependency chain analysis
17
+ */
18
+ export * from './types.js';
19
+ export { bottleneckDetectTool, memoryAnalyzeTool, queryOptimizeTool, bundleOptimizeTool, configOptimizeTool, perfOptimizerTools, } from './mcp-tools.js';
20
+ export { PerfSparseBridge, createPerfSparseBridge } from './bridges/sparse-bridge.js';
21
+ export { PerfFpgaBridge, createPerfFpgaBridge } from './bridges/fpga-bridge.js';
22
+ export declare const pluginMetadata: {
23
+ name: string;
24
+ version: string;
25
+ description: string;
26
+ category: string;
27
+ tags: string[];
28
+ author: string;
29
+ license: string;
30
+ repository: string;
31
+ engines: {
32
+ 'claude-flow': string;
33
+ node: string;
34
+ };
35
+ capabilities: {
36
+ mcpTools: string[];
37
+ bridges: string[];
38
+ wasmPackages: string[];
39
+ };
40
+ performanceTargets: {
41
+ traceAnalysis: string;
42
+ memoryAnalysis: string;
43
+ queryPatternDetection: string;
44
+ bundleAnalysis: string;
45
+ configOptimization: string;
46
+ };
47
+ supportedFormats: {
48
+ tracing: string[];
49
+ profiling: string[];
50
+ memory: string[];
51
+ bundles: string[];
52
+ };
53
+ };
54
+ export interface PerfOptimizerPluginOptions {
55
+ sparseConfig?: {
56
+ maxDimensions?: number;
57
+ sparsityRatio?: number;
58
+ hashBuckets?: number;
59
+ };
60
+ fpgaConfig?: {
61
+ modelSize?: 'small' | 'medium' | 'large';
62
+ searchIterations?: number;
63
+ explorationRate?: number;
64
+ bayesianOptimization?: boolean;
65
+ };
66
+ bottleneck?: {
67
+ latencyThresholdMs?: number;
68
+ errorRateThreshold?: number;
69
+ cpuThreshold?: number;
70
+ memoryThreshold?: number;
71
+ };
72
+ memory?: {
73
+ leakThresholdMb?: number;
74
+ gcPressureThreshold?: number;
75
+ maxHeapSize?: number;
76
+ };
77
+ query?: {
78
+ slowQueryThresholdMs?: number;
79
+ maxResultSize?: number;
80
+ indexSuggestionEnabled?: boolean;
81
+ };
82
+ bundle?: {
83
+ maxSizeKb?: number;
84
+ treeshakingEnabled?: boolean;
85
+ codeSplittingEnabled?: boolean;
86
+ };
87
+ }
88
+ /**
89
+ * Initialize the performance optimizer plugin
90
+ */
91
+ export declare function initializePlugin(options?: PerfOptimizerPluginOptions): Promise<{
92
+ sparseBridge: InstanceType<typeof import('./bridges/sparse-bridge.js').PerfSparseBridge>;
93
+ fpgaBridge: InstanceType<typeof import('./bridges/fpga-bridge.js').PerfFpgaBridge>;
94
+ tools: typeof import('./mcp-tools.js').perfOptimizerTools;
95
+ }>;
96
+ /**
97
+ * Plugin entry point for Claude Flow plugin loader
98
+ */
99
+ declare const _default: {
100
+ metadata: {
101
+ name: string;
102
+ version: string;
103
+ description: string;
104
+ category: string;
105
+ tags: string[];
106
+ author: string;
107
+ license: string;
108
+ repository: string;
109
+ engines: {
110
+ 'claude-flow': string;
111
+ node: string;
112
+ };
113
+ capabilities: {
114
+ mcpTools: string[];
115
+ bridges: string[];
116
+ wasmPackages: string[];
117
+ };
118
+ performanceTargets: {
119
+ traceAnalysis: string;
120
+ memoryAnalysis: string;
121
+ queryPatternDetection: string;
122
+ bundleAnalysis: string;
123
+ configOptimization: string;
124
+ };
125
+ supportedFormats: {
126
+ tracing: string[];
127
+ profiling: string[];
128
+ memory: string[];
129
+ bundles: string[];
130
+ };
131
+ };
132
+ initialize: typeof initializePlugin;
133
+ };
134
+ export default _default;
135
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C1B,CAAC;AAGF,MAAM,WAAW,0BAA0B;IACzC,YAAY,CAAC,EAAE;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,UAAU,CAAC,EAAE;QACX,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;QACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;IACF,UAAU,CAAC,EAAE;QACX,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,MAAM,CAAC,EAAE;QACP,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;KAClC,CAAC;IACF,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;CACH;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC;IACT,YAAY,EAAE,YAAY,CAAC,cAAc,4BAA4B,EAAE,gBAAgB,CAAC,CAAC;IACzF,UAAU,EAAE,YAAY,CAAC,cAAc,0BAA0B,EAAE,cAAc,CAAC,CAAC;IACnF,KAAK,EAAE,cAAc,gBAAgB,EAAE,kBAAkB,CAAC;CAC3D,CAAC,CAkBD;AAED;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACH,wBAGE"}
package/dist/index.js ADDED
@@ -0,0 +1,96 @@
1
+ /**
2
+ * @claude-flow/plugin-perf-optimizer
3
+ *
4
+ * AI-powered performance optimization plugin for Claude Flow V3.
5
+ *
6
+ * Features:
7
+ * - Bottleneck detection using trace analysis
8
+ * - Memory leak detection and analysis
9
+ * - Database query optimization (N+1, missing indexes)
10
+ * - JavaScript bundle optimization
11
+ * - Configuration tuning with SONA learning
12
+ *
13
+ * Uses RuVector WASM packages for high-performance analysis:
14
+ * - ruvector-sparse-inference-wasm: Efficient trace processing
15
+ * - ruvector-fpga-transformer-wasm: Fast configuration optimization
16
+ * - ruvector-gnn-wasm: Dependency chain analysis
17
+ */
18
+ // Types
19
+ export * from './types.js';
20
+ // MCP Tools
21
+ export { bottleneckDetectTool, memoryAnalyzeTool, queryOptimizeTool, bundleOptimizeTool, configOptimizeTool, perfOptimizerTools, } from './mcp-tools.js';
22
+ // Bridges
23
+ export { PerfSparseBridge, createPerfSparseBridge } from './bridges/sparse-bridge.js';
24
+ export { PerfFpgaBridge, createPerfFpgaBridge } from './bridges/fpga-bridge.js';
25
+ // Plugin metadata
26
+ export const pluginMetadata = {
27
+ name: '@claude-flow/plugin-perf-optimizer',
28
+ version: '3.0.0-alpha.1',
29
+ description: 'AI-powered performance optimization for bottleneck detection, memory analysis, and configuration tuning',
30
+ category: 'performance',
31
+ tags: ['performance', 'optimization', 'tracing', 'memory', 'database', 'bundle'],
32
+ author: 'Claude Flow Team',
33
+ license: 'MIT',
34
+ repository: 'https://github.com/ruvnet/claude-flow',
35
+ engines: {
36
+ 'claude-flow': '>=3.0.0-alpha.1',
37
+ node: '>=18.0.0',
38
+ },
39
+ capabilities: {
40
+ mcpTools: [
41
+ 'perf/bottleneck-detect',
42
+ 'perf/memory-analyze',
43
+ 'perf/query-optimize',
44
+ 'perf/bundle-optimize',
45
+ 'perf/config-optimize',
46
+ ],
47
+ bridges: ['sparse', 'fpga'],
48
+ wasmPackages: [
49
+ 'ruvector-sparse-inference-wasm',
50
+ 'ruvector-fpga-transformer-wasm',
51
+ 'ruvector-gnn-wasm',
52
+ 'micro-hnsw-wasm',
53
+ 'sona',
54
+ ],
55
+ },
56
+ performanceTargets: {
57
+ traceAnalysis: '<5s for 1M spans',
58
+ memoryAnalysis: '<30s for 1GB heap',
59
+ queryPatternDetection: '<1s for 10K queries',
60
+ bundleAnalysis: '<10s for 10MB bundle',
61
+ configOptimization: '<1min convergence',
62
+ },
63
+ supportedFormats: {
64
+ tracing: ['otlp', 'jaeger', 'zipkin', 'chrome_devtools'],
65
+ profiling: ['chrome_cpu_profile', 'nodejs_profile', 'pprof'],
66
+ memory: ['chrome_heap_snapshot', 'nodejs_heap'],
67
+ bundles: ['webpack_stats', 'vite_stats', 'rollup'],
68
+ },
69
+ };
70
+ /**
71
+ * Initialize the performance optimizer plugin
72
+ */
73
+ export async function initializePlugin(options) {
74
+ const { createPerfSparseBridge } = await import('./bridges/sparse-bridge.js');
75
+ const { createPerfFpgaBridge } = await import('./bridges/fpga-bridge.js');
76
+ const { perfOptimizerTools } = await import('./mcp-tools.js');
77
+ const sparseBridge = createPerfSparseBridge(options?.sparseConfig);
78
+ const fpgaBridge = createPerfFpgaBridge(options?.fpgaConfig);
79
+ await Promise.all([
80
+ sparseBridge.init(),
81
+ fpgaBridge.init(),
82
+ ]);
83
+ return {
84
+ sparseBridge,
85
+ fpgaBridge,
86
+ tools: perfOptimizerTools,
87
+ };
88
+ }
89
+ /**
90
+ * Plugin entry point for Claude Flow plugin loader
91
+ */
92
+ export default {
93
+ metadata: pluginMetadata,
94
+ initialize: initializePlugin,
95
+ };
96
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,YAAY;AACZ,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,UAAU;AACV,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,kBAAkB;AAClB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,oCAAoC;IAC1C,OAAO,EAAE,eAAe;IACxB,WAAW,EAAE,yGAAyG;IACtH,QAAQ,EAAE,aAAa;IACvB,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;IAChF,MAAM,EAAE,kBAAkB;IAC1B,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,uCAAuC;IACnD,OAAO,EAAE;QACP,aAAa,EAAE,iBAAiB;QAChC,IAAI,EAAE,UAAU;KACjB;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE;YACR,wBAAwB;YACxB,qBAAqB;YACrB,qBAAqB;YACrB,sBAAsB;YACtB,sBAAsB;SACvB;QACD,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC3B,YAAY,EAAE;YACZ,gCAAgC;YAChC,gCAAgC;YAChC,mBAAmB;YACnB,iBAAiB;YACjB,MAAM;SACP;KACF;IACD,kBAAkB,EAAE;QAClB,aAAa,EAAE,kBAAkB;QACjC,cAAc,EAAE,mBAAmB;QACnC,qBAAqB,EAAE,qBAAqB;QAC5C,cAAc,EAAE,sBAAsB;QACtC,kBAAkB,EAAE,mBAAmB;KACxC;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,CAAC;QACxD,SAAS,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,OAAO,CAAC;QAC5D,MAAM,EAAE,CAAC,sBAAsB,EAAE,aAAa,CAAC;QAC/C,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,CAAC;KACnD;CACF,CAAC;AAsCF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAoC;IAMpC,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAC9E,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAC1E,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE9D,MAAM,YAAY,GAAG,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAE7D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,YAAY,CAAC,IAAI,EAAE;QACnB,UAAU,CAAC,IAAI,EAAE;KAClB,CAAC,CAAC;IAEH,OAAO;QACL,YAAY;QACZ,UAAU;QACV,KAAK,EAAE,kBAAkB;KAC1B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,eAAe;IACb,QAAQ,EAAE,cAAc;IACxB,UAAU,EAAE,gBAAgB;CAC7B,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Performance Optimizer MCP Tools
3
+ *
4
+ * 5 MCP tools for AI-powered performance optimization:
5
+ * 1. perf/bottleneck-detect - Detect performance bottlenecks
6
+ * 2. perf/memory-analyze - Analyze memory usage and leaks
7
+ * 3. perf/query-optimize - Detect and optimize query patterns
8
+ * 4. perf/bundle-optimize - Optimize JavaScript bundles
9
+ * 5. perf/config-optimize - Optimize configuration parameters
10
+ */
11
+ import type { MCPTool } from './types.js';
12
+ export declare const bottleneckDetectTool: MCPTool;
13
+ export declare const memoryAnalyzeTool: MCPTool;
14
+ export declare const queryOptimizeTool: MCPTool;
15
+ export declare const bundleOptimizeTool: MCPTool;
16
+ export declare const configOptimizeTool: MCPTool;
17
+ export declare const perfOptimizerTools: MCPTool[];
18
+ /**
19
+ * Get a tool by name
20
+ */
21
+ export declare function getTool(name: string): MCPTool | undefined;
22
+ /**
23
+ * Get all tool names
24
+ */
25
+ export declare function getToolNames(): string[];
26
+ //# sourceMappingURL=mcp-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-tools.d.ts","sourceRoot":"","sources":["../src/mcp-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,OAAO,EAgBR,MAAM,YAAY,CAAC;AAkGpB,eAAO,MAAM,oBAAoB,EAAE,OA+BlC,CAAC;AAwDF,eAAO,MAAM,iBAAiB,EAAE,OAiB/B,CAAC;AAmEF,eAAO,MAAM,iBAAiB,EAAE,OA4B/B,CAAC;AAsDF,eAAO,MAAM,kBAAkB,EAAE,OAwBhC,CAAC;AAyEF,eAAO,MAAM,kBAAkB,EAAE,OAwBhC,CAAC;AAMF,eAAO,MAAM,kBAAkB,EAAE,OAAO,EAMvC,CAAC;AAgjBF;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEzD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC"}