claude-flow
Version:
Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration
154 lines (143 loc) • 4.34 kB
text/typescript
/**
* @claude-flow/plugin-perf-optimizer
*
* AI-powered performance optimization plugin for Claude Flow V3.
*
* Features:
* - Bottleneck detection using trace analysis
* - Memory leak detection and analysis
* - Database query optimization (N+1, missing indexes)
* - JavaScript bundle optimization
* - Configuration tuning with SONA learning
*
* Uses RuVector WASM packages for high-performance analysis:
* - ruvector-sparse-inference-wasm: Efficient trace processing
* - ruvector-fpga-transformer-wasm: Fast configuration optimization
* - ruvector-gnn-wasm: Dependency chain analysis
*/
// Types
export * from './types.js';
// MCP Tools
export {
bottleneckDetectTool,
memoryAnalyzeTool,
queryOptimizeTool,
bundleOptimizeTool,
configOptimizeTool,
perfOptimizerTools,
} from './mcp-tools.js';
// Bridges
export { PerfSparseBridge, createPerfSparseBridge } from './bridges/sparse-bridge.js';
export { PerfFpgaBridge, createPerfFpgaBridge } from './bridges/fpga-bridge.js';
// Plugin metadata
export const pluginMetadata = {
name: '@claude-flow/plugin-perf-optimizer',
version: '3.0.0-alpha.1',
description: 'AI-powered performance optimization for bottleneck detection, memory analysis, and configuration tuning',
category: 'performance',
tags: ['performance', 'optimization', 'tracing', 'memory', 'database', 'bundle'],
author: 'Claude Flow Team',
license: 'MIT',
repository: 'https://github.com/ruvnet/claude-flow',
engines: {
'claude-flow': '>=3.0.0-alpha.1',
node: '>=18.0.0',
},
capabilities: {
mcpTools: [
'perf/bottleneck-detect',
'perf/memory-analyze',
'perf/query-optimize',
'perf/bundle-optimize',
'perf/config-optimize',
],
bridges: ['sparse', 'fpga'],
wasmPackages: [
'ruvector-sparse-inference-wasm',
'ruvector-fpga-transformer-wasm',
'ruvector-gnn-wasm',
'micro-hnsw-wasm',
'sona',
],
},
performanceTargets: {
traceAnalysis: '<5s for 1M spans',
memoryAnalysis: '<30s for 1GB heap',
queryPatternDetection: '<1s for 10K queries',
bundleAnalysis: '<10s for 10MB bundle',
configOptimization: '<1min convergence',
},
supportedFormats: {
tracing: ['otlp', 'jaeger', 'zipkin', 'chrome_devtools'],
profiling: ['chrome_cpu_profile', 'nodejs_profile', 'pprof'],
memory: ['chrome_heap_snapshot', 'nodejs_heap'],
bundles: ['webpack_stats', 'vite_stats', 'rollup'],
},
};
// Plugin initialization
export interface PerfOptimizerPluginOptions {
sparseConfig?: {
maxDimensions?: number;
sparsityRatio?: number;
hashBuckets?: number;
};
fpgaConfig?: {
modelSize?: 'small' | 'medium' | 'large';
searchIterations?: number;
explorationRate?: number;
bayesianOptimization?: boolean;
};
bottleneck?: {
latencyThresholdMs?: number;
errorRateThreshold?: number;
cpuThreshold?: number;
memoryThreshold?: number;
};
memory?: {
leakThresholdMb?: number;
gcPressureThreshold?: number;
maxHeapSize?: number;
};
query?: {
slowQueryThresholdMs?: number;
maxResultSize?: number;
indexSuggestionEnabled?: boolean;
};
bundle?: {
maxSizeKb?: number;
treeshakingEnabled?: boolean;
codeSplittingEnabled?: boolean;
};
}
/**
* Initialize the performance optimizer plugin
*/
export async function initializePlugin(
options?: PerfOptimizerPluginOptions
): Promise<{
sparseBridge: InstanceType<typeof import('./bridges/sparse-bridge.js').PerfSparseBridge>;
fpgaBridge: InstanceType<typeof import('./bridges/fpga-bridge.js').PerfFpgaBridge>;
tools: typeof import('./mcp-tools.js').perfOptimizerTools;
}> {
const { createPerfSparseBridge } = await import('./bridges/sparse-bridge.js');
const { createPerfFpgaBridge } = await import('./bridges/fpga-bridge.js');
const { perfOptimizerTools } = await import('./mcp-tools.js');
const sparseBridge = createPerfSparseBridge(options?.sparseConfig);
const fpgaBridge = createPerfFpgaBridge(options?.fpgaConfig);
await Promise.all([
sparseBridge.init(),
fpgaBridge.init(),
]);
return {
sparseBridge,
fpgaBridge,
tools: perfOptimizerTools,
};
}
/**
* Plugin entry point for Claude Flow plugin loader
*/
export default {
metadata: pluginMetadata,
initialize: initializePlugin,
};