vibe-coder-mcp
Version:
Production-ready MCP server with complete agent integration, multi-transport support, and comprehensive development automation tools for AI-assisted workflows.
130 lines • 4.62 kB
TypeScript
import { Job } from '../../../services/job-manager/index.js';
import { EventEmitter } from 'events';
export interface TaskJob extends Job {
taskId?: string;
projectId?: string;
operationType: 'decomposition' | 'execution' | 'validation' | 'analysis' | 'codemap' | 'context_enrichment';
priority: 'low' | 'medium' | 'high' | 'critical';
estimatedDuration?: number;
resourceRequirements?: {
memoryMB: number;
cpuWeight: number;
diskSpaceMB?: number;
};
dependencies?: string[];
metadata?: {
sessionId?: string;
userId?: string;
batchId?: string;
retryCount?: number;
maxRetries?: number;
};
}
export interface JobMetrics {
jobId: string;
startTime: number;
endTime?: number;
duration?: number;
resourceUsage: {
peakMemoryMB: number;
averageCpuUsage: number;
diskUsageMB?: number;
};
performanceScore: number;
errorCount: number;
retryCount: number;
}
export interface JobQueueConfig {
maxConcurrentJobs: number;
priorityWeights: Record<string, number>;
retryPolicy: {
maxRetries: number;
backoffMultiplier: number;
initialDelayMs: number;
};
timeoutPolicy: {
defaultTimeoutMs: number;
operationTimeouts: Record<string, number>;
};
resourceLimits: {
maxMemoryMB: number;
maxCpuWeight: number;
maxDiskSpaceMB: number;
};
}
export type JobEventCallback = (job: TaskJob, metrics?: JobMetrics) => void;
export type JobProgressCallback = (jobId: string, progress: number, message?: string) => void;
export declare class JobManagerIntegrationService extends EventEmitter {
private static instance;
private taskJobs;
private jobMetrics;
private jobQueue;
private runningJobs;
private jobSubscriptions;
private progressSubscriptions;
private config;
private userConfig;
private processingInterval?;
private initialized;
private constructor();
private getConfig;
private ensureInitialized;
static getInstance(config?: Partial<JobQueueConfig>): JobManagerIntegrationService;
createTaskJob(toolName: string, params: Record<string, unknown>, options: {
taskId?: string;
projectId?: string;
operationType: TaskJob['operationType'];
priority?: TaskJob['priority'];
estimatedDuration?: number;
resourceRequirements?: TaskJob['resourceRequirements'];
dependencies?: string[];
metadata?: TaskJob['metadata'];
}): Promise<string>;
getTaskJob(jobId: string): TaskJob | null;
getJobMetrics(jobId: string): JobMetrics | null;
updateJobProgress(jobId: string, progress: number, message?: string, resourceUsage?: Partial<JobMetrics['resourceUsage']>): Promise<boolean>;
completeJob(jobId: string, result: unknown, finalMetrics?: Partial<JobMetrics>): Promise<boolean>;
failJob(jobId: string, error: Error, shouldRetry?: boolean): Promise<boolean>;
cancelJob(jobId: string, reason?: string): Promise<boolean>;
getQueueStatus(): {
queueLength: number;
runningJobs: number;
totalJobs: number;
jobsByPriority: Record<string, number>;
jobsByOperation: Record<string, number>;
averageWaitTime: number;
};
getJobStatistics(): {
totalJobs: number;
completedJobs: number;
failedJobs: number;
runningJobs: number;
queuedJobs: number;
averageExecutionTime: number;
averagePerformanceScore: number;
resourceUtilization: {
averageMemoryMB: number;
averageCpuUsage: number;
peakMemoryMB: number;
};
operationStats: Record<string, {
count: number;
averageTime: number;
successRate: number;
}>;
};
subscribeToJob(jobId: string, callback: JobEventCallback): () => void;
subscribeToJobProgress(jobId: string, callback: JobProgressCallback): () => void;
updateConfig(newConfig: Partial<JobQueueConfig>): void;
cleanupOldJobs(maxAgeMs?: number): number;
dispose(): void;
private startJobProcessor;
private processJobQueue;
private areDependenciesSatisfied;
private startJob;
private handleJobTimeout;
private calculatePerformanceScore;
}
export declare const jobManagerIntegration: JobManagerIntegrationService;
export declare function getJobManagerIntegration(config?: Partial<JobQueueConfig>): JobManagerIntegrationService;
//# sourceMappingURL=job-manager-integration.d.ts.map