(task_schedule: TaskSchedule)
| 90 | |
| 91 | |
| 92 | def _validate_task_schedule(task_schedule: TaskSchedule) -> str: |
| 93 | # Validate cron expression, agent might hallucinate |
| 94 | cron_regex = r"^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|\d+L?|\*(\/\d+)?|L(-\d+)?|\?|[A-Z]{3}(-[A-Z]{3})?) ?){5,7})$" |
| 95 | crontab = task_schedule.to_crontab() |
| 96 | return "" if re.match(cron_regex, crontab) else f"Invalid cron expression: {crontab}" |
| 97 | |
| 98 | |
| 99 | def _task_plan_from_input(plan: Any) -> tuple[TaskPlan | None, str]: |
no test coverage detected