from __future__ import annotations from typing import Any class StatusIssues: def __init__(self) -> None: self._issues: list[dict[str, Any]] = [] def add_issue(self, severity: str, message: str, fix: str = "") -> None: self._issues.append( { "severity": severity, "message": message, "fix": fix, } ) def check_connection(self, status: str, ws_connected: bool) -> None: if status == "disconnected": self.add_issue("error", "Adapter is disconnected", "Check server URL and credentials") elif status == "reconnecting": self.add_issue("warning", "Adapter is reconnecting", "Network or server may be unstable") elif status == "connected" and not ws_connected: self.add_issue("warning", "Connected but WebSocket may be down") def check_rate_limits(self, recent_429_count: int = 0) -> None: if recent_429_count > 3: self.add_issue( "warning", f"Experiencing rate limiting ({recent_429_count} recent 429s)", "Consider increasing edit_interval_ms or reducing message frequency", ) def get_issues(self) -> list[dict[str, Any]]: return list(self._issues) def clear(self) -> None: self._issues.clear()