"""Dispatch léger du contrat enrichi de /finalize côté agent.""" from __future__ import annotations import logging from typing import Any, Dict logger = logging.getLogger(__name__) def dispatch_finalize_result(ui: Any, payload: Dict[str, Any], replay_name: str) -> None: """Router le résultat de /finalize vers la bonne surface UI agent.""" if not isinstance(payload, dict): return replay_request = payload.get("replay_request") or {} replay_launch = payload.get("replay_launch") or {} if replay_launch.get("status") == "started": logger.info("Replay direct déjà lancé par le serveur après finalize") return if not payload.get("replay_ready") or not replay_request: return if replay_launch.get("status") == "failed": logger.warning( "Auto-replay serveur échoué après finalize, proposition manuelle" ) if ui is None or not hasattr(ui, "offer_finalize_replay"): logger.info("UI indisponible pour proposer un test immédiat") return ui.offer_finalize_replay( replay_request, replay_name or "la tâche que vous venez d'enregistrer", )