""" ECHO future prediction module. """ from env.models import Task def _clamp(value: float, lower: float, upper: float) -> float: return max(lower, min(upper, value)) def predict_future(task: Task, current_time: int, max_deadline: float = 20.0) -> dict[str, float]: capped_deadline = max(max_deadline, 1.0) future_risk = _clamp(task.risk * (1.0 + 0.1 * current_time), 0.0, 1.0) deadline_pressure = 1.0 - (_clamp(task.deadline, 0.0, capped_deadline) / capped_deadline) return { "future_risk": round(future_risk, 4), "deadline_pressure": round(_clamp(deadline_pressure, 0.0, 1.0), 4), } class ECHO: """ Environment change oracle for future risk and deadline pressure. """ def __init__(self, max_deadline: float = 20.0): self.max_deadline = max_deadline def predict(self, task: Task, current_time: int) -> Task: values = predict_future(task, current_time=current_time, max_deadline=self.max_deadline) task.future_risk = values["future_risk"] task.deadline_pressure = values["deadline_pressure"] return task