#!/usr/bin/env python3 """Модели состояния пользователя.""" from typing import Dict, List, Optional, Any from dataclasses import dataclass, field @dataclass class UserState: """Состояние пользователя в диалоге.""" current_menu: str = "main" waiting_for_input: bool = False input_type: Optional[str] = None # "name", "host", "port", "user", "tags", "server_action" parent_menu: Optional[str] = None context: Dict[str, Any] = field(default_factory=dict) working_directory: Optional[str] = None current_server: str = "local" # Имя текущего сервера editing_server: Optional[str] = None # Имя сервера, который редактируем ai_chat_mode: bool = False # Режим чата с ИИ агентом ai_chat_history: List[str] = field(default_factory=list) # История диалога с ИИ messages_since_fact_extract: int = 0 # Счётчик для извлечения фактов class StateManager: """Управление состояниями пользователей.""" def __init__(self): self._states: Dict[int, UserState] = {} def get(self, user_id: int) -> UserState: if user_id not in self._states: self._states[user_id] = UserState() return self._states[user_id] def reset(self, user_id: int): self._states[user_id] = UserState()