import dataclasses from typing import List, Optional @dataclasses.dataclass class AIZimSearchRequest: search_str: Optional[str] = None zim_id: Optional[int] = None limit: int = 5 offset: int = 0 @dataclasses.dataclass class AIHelpSearchRequest: search_str: Optional[str] = None limit: int = 5 @dataclasses.dataclass class AIManageSettingsRequest: enabled: Optional[bool] = None active_model: Optional[str] = None idle_unload_minutes: Optional[int] = None context_size: Optional[int] = None @dataclasses.dataclass class AISearchResponse: results: list = dataclasses.field(default_factory=list) total: int = 0 @dataclasses.dataclass class AIPagedTextResponse: content: str = '' next_offset: Optional[int] = None total_chars: int = 0 @dataclasses.dataclass class AIListFilesResponse: path: str = '' directories: list = dataclasses.field(default_factory=list) files: list = dataclasses.field(default_factory=list) total: int = 0 next_offset: Optional[int] = None @dataclasses.dataclass class AIFileSearchRequest: search_str: Optional[str] = None kind: Optional[str] = None channel: Optional[str] = None domain: Optional[str] = None author: Optional[str] = None subject: Optional[str] = None tag_names: Optional[List[str]] = None limit: int = 5 offset: int = 0