vibe-coder-mcp
Version:
Production-ready MCP server with complete agent integration, multi-transport support, and comprehensive development automation tools for AI-assisted workflows.
168 lines • 4.85 kB
TypeScript
export type AgentStatus = 'idle' | 'busy' | 'error' | 'offline' | 'initializing';
export type AgentCapability = 'code_generation' | 'testing' | 'documentation' | 'research' | 'deployment' | 'review' | 'debugging' | 'optimization';
export interface Agent {
id: string;
name: string;
description: string;
status: AgentStatus;
capabilities: AgentCapability[];
currentTask?: string;
taskQueue: string[];
performance: {
tasksCompleted: number;
averageCompletionTime: number;
successRate: number;
lastActiveAt: Date;
};
config: {
maxConcurrentTasks: number;
preferredTaskTypes: string[];
workingHours?: {
start: string;
end: string;
timezone: string;
};
};
communication: {
protocol: 'sentinel' | 'direct' | 'webhook';
endpoint?: string;
apiKey?: string;
timeout: number;
};
metadata: {
createdAt: Date;
lastUpdatedAt: Date;
version: string;
tags: string[];
};
}
export type MessageType = 'task_assignment' | 'task_update' | 'task_completion' | 'task_error' | 'status_request' | 'status_response' | 'heartbeat' | 'shutdown' | 'configuration_update';
export interface AgentMessage {
id: string;
type: MessageType;
from: string;
to: string;
payload: Record<string, unknown>;
priority: 'low' | 'normal' | 'high' | 'urgent';
timestamp: Date;
expiresAt?: Date;
requiresAck: boolean;
correlationId?: string;
retryCount: number;
maxRetries: number;
}
export interface TaskAssignment {
id: string;
taskId: string;
agentId: string;
assignedAt: Date;
expectedCompletionAt: Date;
priority: 'low' | 'normal' | 'high' | 'urgent';
context: {
projectId: string;
epicId: string;
dependencies: string[];
resources: string[];
constraints: string[];
};
status: 'pending' | 'accepted' | 'in_progress' | 'completed' | 'failed' | 'cancelled';
progress: {
percentage: number;
currentStep: string;
estimatedTimeRemaining: number;
lastUpdateAt: Date;
};
results?: {
success: boolean;
output: string;
artifacts: string[];
metrics: Record<string, number>;
logs: string[];
errors: string[];
};
}
export interface CoordinationStrategy {
name: string;
description: string;
loadBalancing: 'round_robin' | 'least_loaded' | 'capability_based' | 'priority_based';
distributionRules: {
maxTasksPerAgent: number;
preferredAgentTypes: Record<string, AgentCapability[]>;
fallbackStrategy: 'queue' | 'reassign' | 'fail';
};
conflictResolution: {
strategy: 'queue' | 'priority' | 'merge' | 'split';
timeout: number;
escalation: boolean;
};
healthMonitoring: {
heartbeatInterval: number;
timeoutThreshold: number;
retryAttempts: number;
failoverEnabled: boolean;
};
}
export interface SentinelProtocolConfig {
version: string;
communication: {
port: number;
host: string;
secure: boolean;
timeout: number;
retryInterval: number;
maxRetries: number;
};
messaging: {
maxMessageSize: number;
compressionEnabled: boolean;
encryptionEnabled: boolean;
batchingEnabled: boolean;
batchSize: number;
};
registration: {
autoRegister: boolean;
registrationTimeout: number;
capabilityValidation: boolean;
authenticationRequired: boolean;
};
monitoring: {
metricsEnabled: boolean;
loggingLevel: 'debug' | 'info' | 'warn' | 'error';
performanceTracking: boolean;
alertingEnabled: boolean;
};
}
export interface OrchestrationResult {
sessionId: string;
assignments: TaskAssignment[];
status: 'pending' | 'in_progress' | 'completed' | 'failed' | 'cancelled';
progress: {
totalTasks: number;
completedTasks: number;
failedTasks: number;
percentage: number;
};
metrics: {
startTime: Date;
endTime?: Date;
totalDuration?: number;
averageTaskTime: number;
throughput: number;
errorRate: number;
};
issues: {
type: 'agent_unavailable' | 'task_failed' | 'timeout' | 'dependency_error';
severity: 'low' | 'medium' | 'high' | 'critical';
description: string;
affectedTasks: string[];
resolution?: string;
}[];
results?: {
success: boolean;
completedTasks: string[];
failedTasks: string[];
artifacts: string[];
logs: string[];
};
}
//# sourceMappingURL=agent.d.ts.map