import type { RoutineConfig } from "./routines.js"; /** * v1.3.2 §8 — user-authored dynamic schedules. * * The 4 built-in routines stay hardcoded in `ROUTINES[]` (their cron is * resolved from workspace.yaml). This adds an *additive* path: a user drops a * `schedules/.yaml` definition next to its `schedules/.md` prompt, and * the scheduler registers it on top of the built-ins. No built-in is removed * (backward-safe); the registry "dynamic-ization" of the built-ins themselves * is a follow-up. * * A ScheduleDef is shaped to be a superset of RoutineConfig (+ cron + enabled) * so it flows straight into the existing `runRoutineForProduct`. */ export interface ScheduleDef extends RoutineConfig { /** node-cron expression (5/6-field). Validated by `validateScheduleDef`. */ cron: string; enabled: boolean; } export declare function coerceScheduleDef(raw: Record, fallbackId: string): ScheduleDef; /** * Load every `schedules/.yaml` user definition (best-effort: unparsable * files are skipped). Validation is a separate pass (`validateScheduleDef`). */ export declare function loadScheduleDefs(schedulesDir?: string): ScheduleDef[];