"""Supervisor agent.""" from __future__ import annotations from app.common.enums import DecisionMode from app.common.types import PolyGuardState from app.models.policy.uncertainty import estimate_uncertainty class SupervisorAgent: name = "SupervisorAgent" def run(self, state: PolyGuardState, dosing_active: bool) -> dict: uncertainty = estimate_uncertainty(state) if uncertainty > 0.72: mode = DecisionMode.REVIEW elif state.sub_environment.value == "PRECISION_DOSING": mode = DecisionMode.DOSE_OPT elif dosing_active: mode = DecisionMode.DOSE_OPT else: mode = DecisionMode.REGIMEN_OPT return {"mode": mode.value, "uncertainty": uncertainty, "sub_environment": state.sub_environment.value}