claude-flow-tbowman01
Version:
Enterprise-grade AI agent orchestration with ruv-swarm integration (Alpha Release)
101 lines • 3.13 kB
TypeScript
import { EventEmitter } from 'node:events';
interface AgentMetrics {
id: string;
name: string;
status: 'idle' | 'running' | 'completed' | 'failed' | 'stalled';
currentTask?: string;
startTime?: number;
endTime?: number;
duration?: number;
cpuUsage?: number;
memoryUsage?: number;
taskCount: number;
successCount: number;
failureCount: number;
averageTaskDuration: number;
lastActivity: number;
outputSize?: number;
errorRate: number;
}
interface SystemMetrics {
timestamp: number;
cpuUsage: number;
memoryUsage: number;
totalMemory: number;
freeMemory: number;
loadAverage: number[];
activeAgents: number;
totalTasks: number;
completedTasks: number;
failedTasks: number;
pendingTasks: number;
averageTaskDuration: number;
throughput: number;
}
interface Alert {
id: string;
timestamp: number;
level: 'info' | 'warning' | 'error' | 'critical';
type: 'agent_failure' | 'high_cpu' | 'high_memory' | 'stalled_agent' | 'low_throughput' | 'error_rate';
message: string;
details?: any;
}
interface MonitoringConfig {
updateInterval: number;
metricsRetention: number;
cpuThreshold: number;
memoryThreshold: number;
stallTimeout: number;
errorRateThreshold: number;
throughputThreshold: number;
enableAlerts: boolean;
enableHistory: boolean;
historyPath?: string;
}
export declare class SwarmMonitor extends EventEmitter {
private logger;
private config;
private agentMetrics;
private systemMetrics;
private alerts;
private monitoringInterval?;
private startTime;
private taskStartTimes;
private taskCompletionTimes;
private lastThroughputCheck;
private tasksInLastMinute;
constructor(config?: Partial<MonitoringConfig>);
start(): Promise<void>;
stop(): void;
registerAgent(agentId: string, name: string): void;
unregisterAgent(agentId: string): void;
taskStarted(agentId: string, taskId: string, taskDescription?: string): void;
taskCompleted(agentId: string, taskId: string, outputSize?: number): void;
taskFailed(agentId: string, taskId: string, error: string): void;
private collectMetrics;
private getCPUUsage;
private getMemoryInfo;
private checkThresholds;
private createAlert;
private cleanOldMetrics;
private saveHistory;
getSystemMetrics(): SystemMetrics | undefined;
getAgentMetrics(agentId?: string): AgentMetrics | AgentMetrics[] | undefined;
getAlerts(since?: number): Alert[];
getHistoricalMetrics(hours?: number): SystemMetrics[];
getSummary(): {
uptime: number;
totalAgents: number;
activeAgents: number;
totalTasks: number;
completedTasks: number;
failedTasks: number;
successRate: number;
averageDuration: number;
currentThroughput: number;
alerts: number;
};
exportMetrics(filepath: string): Promise<void>;
}
export type { AgentMetrics, SystemMetrics, Alert, MonitoringConfig };
//# sourceMappingURL=swarm-monitor.d.ts.map