feat(core): Add step-based progress tracking, task metadata and enhanced TaskManager scheduling/metadata APIs

This commit is contained in:
2025-09-06 13:36:04 +00:00
parent 6c9b975029
commit 9784a5eacf
12 changed files with 1191 additions and 140 deletions

View File

@@ -0,0 +1,39 @@
import type { ITaskStep } from './taskbuffer.classes.taskstep.js';
export interface ITaskMetadata {
name: string;
version?: string;
status: 'idle' | 'running' | 'completed' | 'failed';
steps: ITaskStep[];
currentStep?: string;
currentProgress: number; // 0-100
lastRun?: Date;
nextRun?: Date; // For scheduled tasks
runCount: number;
averageDuration?: number;
cronSchedule?: string;
buffered?: boolean;
bufferMax?: number;
timeout?: number;
}
export interface ITaskExecutionReport {
taskName: string;
startTime: number;
endTime: number;
duration: number;
steps: ITaskStep[];
stepsCompleted: string[];
progress: number;
result?: any;
error?: Error;
}
export interface IScheduledTaskInfo {
name: string;
schedule: string;
nextRun: Date;
lastRun?: Date;
steps?: ITaskStep[];
metadata?: ITaskMetadata;
}