feat: add zCode Swarm — multi-agent orchestration system

- 6 agent skills: code-review, performance, security, architecture, test, git
- 4 coordinator modes: hierarchical, mesh, gossip, consensus
- Federated memory system (6 namespaces)
- Neural network agent recommendation
- Agent marketplace (plugin discovery/install)
- Real-time dashboard + performance metrics
- CRDT-based sync for decentralized modes
- 22 files, ~1400 lines total

Inspired by ruflo distributed multi-agent patterns.
This commit is contained in:
admin
2026-05-06 07:59:19 +00:00
Unverified
parent 129d4a6def
commit 68cfeb5cba
24 changed files with 1513 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
/**
* Performance Metrics Collector
* Real-time system and swarm performance monitoring
*/
class PerformanceMetricsCollector {
constructor(swarm) {
this.swarm = swarm;
this.metrics = [];
this.collectionInterval = null;
this.maxSamples = 100;
}
startCollection(intervalMs = 60000) {
this.collectionInterval = setInterval(() => {
this.collect();
}, intervalMs);
this.swarm.log('success', 'Performance metrics collection started');
}
stopCollection() {
if (this.collectionInterval) {
clearInterval(this.collectionInterval);
this.collectionInterval = null;
}
}
collect() {
const sample = {
timestamp: Date.now(),
memory: process.memoryUsage(),
cpu: process.cpuUsage(),
uptime: process.uptime(),
agents: this.swarm.getPerformanceReport?.()?.agents || {}
};
this.metrics.push(sample);
if (this.metrics.length > this.maxSamples) {
this.metrics.shift();
}
}
getReport() {
if (this.metrics.length === 0) return { status: 'no_data' };
const latest = this.metrics[this.metrics.length - 1];
const previous = this.metrics.length > 1 ? this.metrics[this.metrics.length - 2] : latest;
const memDiff = latest.memory.heapUsed - previous.memory.heapUsed;
const trend = memDiff > 1000000 ? 'increasing' : memDiff < -1000000 ? 'decreasing' : 'stable';
return {
current: {
heapUsed: `${(latest.memory.heapUsed / 1024 / 1024).toFixed(1)}MB`,
heapTotal: `${(latest.memory.heapTotal / 1024 / 1024).toFixed(1)}MB`,
rss: `${(latest.memory.rss / 1024 / 1024).toFixed(1)}MB`,
uptime: `${Math.floor(latest.uptime)}s`,
cpuUser: `${(latest.cpu.user / 1000000).toFixed(1)}s`,
cpuSystem: `${(latest.cpu.system / 1000000).toFixed(1)}s`
},
trend,
samples: this.metrics.length,
recommendations: this.generateRecommendations(latest)
};
}
generateRecommendations(sample) {
const recs = [];
const heapMB = sample.memory.heapUsed / 1024 / 1024;
if (heapMB > 400) recs.push('⚠️ High memory usage — consider restarting');
if (sample.uptime > 86400) recs.push('🔄 Long uptime — scheduled restart recommended');
if (recs.length === 0) recs.push('✅ System performance within normal range');
return recs;
}
}
module.exports = PerformanceMetricsCollector;