/** * CronMaestro — 自然语言定时调度引擎 * * 将自然语言时间表达式转换为 Cron 任务 * * 参考: OpenClaw Heartbeat + Cron */ export interface ScheduledTask { id: string; /** 原始自然语言描述 */ description: string; /** 解析后的 Cron 表达式 */ cronExpression: string; /** 要执行的指令 */ instruction: string; /** 创建时间 */ createdAt: string; /** 最后执行时间 */ lastRunAt?: string; /** 下次执行时间 */ nextRunAt?: string; /** 执行次数 */ runCount: number; /** 状态 */ status: "active" | "paused" | "completed" | "error"; /** 最多执行次数(0=无限) */ maxRuns: number; /** 最后执行结果 */ lastResult?: string; } export interface CronMaestroConfig { /** 任务持久化路径 */ dataPath: string; /** 检查间隔(ms) */ checkInterval: number; /** 任务执行回调 */ onExecute?: (task: ScheduledTask) => Promise; } export declare class CronMaestro { private config; private tasks; private timer; constructor(config?: Partial); /** * 将自然语言时间表达式解析为 Cron 表达式 */ parseNaturalLanguage(text: string): { cronExpression: string | null; matched: string; description: string; }; /** * 创建定时任务(自然语言) */ createTask(naturalTime: string, instruction: string, options?: { maxRuns?: number; }): ScheduledTask | null; /** * 直接用 Cron 表达式创建任务 */ createTaskWithCron(cronExpression: string, instruction: string, description?: string): ScheduledTask; /** 暂停任务 */ pauseTask(id: string): boolean; /** 恢复任务 */ resumeTask(id: string): boolean; /** 删除任务 */ deleteTask(id: string): boolean; /** 获取任务 */ getTask(id: string): ScheduledTask | undefined; /** 列出所有任务 */ listTasks(status?: ScheduledTask["status"]): ScheduledTask[]; /** * 启动调度循环 */ start(): void; /** 停止调度 */ stop(): void; /** 单次检查 — 执行到期的任务 */ private tick; /** 执行单个任务 */ private executeTask; /** * 简易 Cron 解析 — 获取下次执行时间 * 格式: minute hour dayOfMonth month dayOfWeek */ getNextRunTime(cronExpr: string): Date | null; /** * 匹配 Cron 字段 */ private matchField; getStatus(): { totalTasks: number; active: number; paused: number; completed: number; isRunning: boolean; }; private load; private save; } //# sourceMappingURL=cron-maestro.d.ts.map