vibe-coder-mcp
Version:
Production-ready MCP server with complete agent integration, multi-transport support, and comprehensive development automation tools for AI-assisted workflows.
89 lines • 2.82 kB
TypeScript
import { AtomicTask } from '../types/task.js';
export interface WatchdogConfig {
taskType: string;
timeoutMinutes: number;
warningThresholdMinutes: number;
maxRetries: number;
escalationDelayMinutes: number;
healthCheckIntervalMinutes: number;
}
export interface TaskMonitor {
taskId: string;
agentId: string;
startTime: Date;
lastHeartbeat: Date;
timeoutAt: Date;
warningAt: Date;
status: 'monitoring' | 'warning' | 'timeout' | 'escalated' | 'recovered';
retryCount: number;
escalationLevel: number;
taskType: string;
estimatedDuration?: number;
}
export interface AgentHealth {
agentId: string;
lastSeen: Date;
consecutiveTimeouts: number;
totalTasksAssigned: number;
totalTasksCompleted: number;
averageCompletionTime: number;
healthScore: number;
status: 'healthy' | 'degraded' | 'unhealthy' | 'offline';
lastHealthCheck: Date;
}
export interface WatchdogStats {
totalTasksMonitored: number;
activeMonitors: number;
timeoutsDetected: number;
escalationsTriggered: number;
recoveredTasks: number;
averageTaskDuration: number;
agentsMonitored: number;
unhealthyAgents: number;
lastStatsUpdate: Date;
}
export type EscalationAction = 'reassign_task' | 'restart_agent' | 'human_intervention' | 'task_cancellation' | 'system_alert';
export interface EscalationProcedure {
level: number;
action: EscalationAction;
delayMinutes: number;
description: string;
autoExecute: boolean;
}
export declare class ExecutionWatchdog {
private static instance;
private configs;
private monitors;
private agentHealth;
private agentOrchestrator;
private taskStreamer;
private feedbackProcessor;
private watchdogTimer?;
private healthCheckTimer?;
private stats;
private escalationProcedures;
private constructor();
static getInstance(): ExecutionWatchdog;
startMonitoring(taskId: string, agentId: string, task: AtomicTask): Promise<void>;
stopMonitoring(taskId: string, completed?: boolean): Promise<void>;
updateTaskHeartbeat(taskId: string): void;
configureTaskType(config: WatchdogConfig): void;
getStats(): WatchdogStats;
getAgentHealth(agentId?: string): AgentHealth[];
getActiveMonitors(): TaskMonitor[];
forceTimeoutCheck(): Promise<void>;
private initializeDefaultConfigs;
private getConfigForTaskType;
private startWatchdog;
private checkTimeouts;
private handleTimeout;
private retryTask;
private escalateTask;
private executeEscalationAction;
private initializeAgentHealth;
private performHealthChecks;
private calculateHealthScore;
private determineHealthStatus;
destroy(): void;
}
//# sourceMappingURL=execution-watchdog.d.ts.map