context-forge
Version:
AI orchestration platform with autonomous teams, enhancement planning, migration tools, 25+ slash commands, checkpoints & hooks. Multi-IDE: Claude, Cursor, Windsurf, Cline, Copilot
92 lines • 2.66 kB
TypeScript
import { EventEmitter } from 'events';
import { SelfSchedulingConfig, AgentSession } from '../types/orchestration';
import { TmuxManager } from './tmuxManager';
export interface ScheduleEntry {
id: string;
agentId: string;
sessionName: string;
windowIndex: number;
scheduledTime: Date;
interval: number;
note: string;
status: 'pending' | 'executed' | 'failed' | 'cancelled';
processId?: number;
}
export interface SchedulerStats {
totalScheduled: number;
executed: number;
failed: number;
cancelled: number;
averageInterval: number;
adaptiveAdjustments: number;
}
export declare class SelfSchedulingService extends EventEmitter {
private schedules;
private tmux;
private config;
private stats;
private workloadMetrics;
constructor(config: SelfSchedulingConfig, tmux: TmuxManager);
/**
* Schedule next check-in for an agent
*/
scheduleAgentCheckIn(agentSession: AgentSession, interval?: number, note?: string): Promise<ScheduleEntry>;
/**
* Calculate adaptive interval based on agent workload
*/
private calculateAdaptiveInterval;
/**
* Update agent workload metrics
*/
updateWorkloadMetrics(agentId: string, metrics: {
tasksCompleted: number;
tasksPending: number;
blockers: number;
messagesReceived: number;
}): void;
/**
* Execute schedule using scheduling script
*/
private executeSchedule;
/**
* Cancel a scheduled check-in
*/
cancelSchedule(agentId: string): Promise<boolean>;
/**
* Reschedule an agent with new interval
*/
reschedule(agentSession: AgentSession, newInterval: number, note?: string): Promise<ScheduleEntry>;
/**
* Handle schedule execution (called when schedule fires)
*/
handleScheduleExecution(agentId: string): Promise<void>;
/**
* Get schedule for agent
*/
getAgentSchedule(agentId: string): ScheduleEntry | undefined;
/**
* Get all active schedules
*/
getActiveSchedules(): ScheduleEntry[];
/**
* Update average interval statistic
*/
private updateAverageInterval;
/**
* Get scheduler statistics
*/
getStats(): SchedulerStats;
/**
* Cancel all active schedules
*/
cancelAllSchedules(): Promise<void>;
/**
* Create recovery schedule for crashed agent
*/
createRecoverySchedule(agentSession: AgentSession, error: Error): Promise<void>;
/**
* Generate scheduling script content
*/
generateSchedulingScript(): string;
}
//# sourceMappingURL=selfScheduler.d.ts.map