abstractassistant 0.3.2__tar.gz → 0.3.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. abstractassistant-0.3.4/ACKNOWLEDGMENTS.md +164 -0
  2. abstractassistant-0.3.4/CHANGELOG.md +226 -0
  3. abstractassistant-0.3.4/CONTRIBUTING.md +389 -0
  4. abstractassistant-0.3.4/MANIFEST.in +30 -0
  5. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/PKG-INFO +21 -21
  6. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/README.md +20 -20
  7. abstractassistant-0.3.2/setup_macos_app.py → abstractassistant-0.3.4/abstractassistant/create_app_bundle.py +114 -42
  8. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/ui/chat_bubble.py +15 -2
  9. abstractassistant-0.3.4/abstractassistant/ui/history_dialog.py +1026 -0
  10. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/ui/qt_bubble.py +434 -8
  11. abstractassistant-0.3.4/abstractassistant.egg-info/SOURCES.txt +31 -0
  12. abstractassistant-0.3.4/docs/architecture.md +317 -0
  13. abstractassistant-0.3.4/docs/getting-started.md +394 -0
  14. abstractassistant-0.3.4/docs/installation.md +464 -0
  15. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/pyproject.toml +2 -4
  16. abstractassistant-0.3.2/abstractassistant/create_app_bundle.py +0 -53
  17. abstractassistant-0.3.2/abstractassistant/ui/history_dialog.py +0 -502
  18. abstractassistant-0.3.2/abstractassistant.egg-info/PKG-INFO +0 -297
  19. abstractassistant-0.3.2/abstractassistant.egg-info/SOURCES.txt +0 -58
  20. abstractassistant-0.3.2/abstractassistant.egg-info/dependency_links.txt +0 -1
  21. abstractassistant-0.3.2/abstractassistant.egg-info/entry_points.txt +0 -3
  22. abstractassistant-0.3.2/abstractassistant.egg-info/requires.txt +0 -20
  23. abstractassistant-0.3.2/abstractassistant.egg-info/top_level.txt +0 -2
  24. abstractassistant-0.3.2/tests/test_abstractcore.py +0 -56
  25. abstractassistant-0.3.2/tests/test_app.py +0 -86
  26. abstractassistant-0.3.2/tests/test_bubble.py +0 -132
  27. abstractassistant-0.3.2/tests/test_bubble_manual.py +0 -79
  28. abstractassistant-0.3.2/tests/test_complete_voice_integration.py +0 -432
  29. abstractassistant-0.3.2/tests/test_complete_working.py +0 -171
  30. abstractassistant-0.3.2/tests/test_corrected_logic.py +0 -249
  31. abstractassistant-0.3.2/tests/test_double_click_fix.py +0 -206
  32. abstractassistant-0.3.2/tests/test_final_app_demo.py +0 -257
  33. abstractassistant-0.3.2/tests/test_final_verification.py +0 -216
  34. abstractassistant-0.3.2/tests/test_final_voice_mode.py +0 -304
  35. abstractassistant-0.3.2/tests/test_fixed_app.py +0 -261
  36. abstractassistant-0.3.2/tests/test_fixed_integration.py +0 -290
  37. abstractassistant-0.3.2/tests/test_full_voice_mode.py +0 -372
  38. abstractassistant-0.3.2/tests/test_integration.py +0 -266
  39. abstractassistant-0.3.2/tests/test_qt_bubble.py +0 -49
  40. abstractassistant-0.3.2/tests/test_qt_threading.py +0 -73
  41. abstractassistant-0.3.2/tests/test_real_application.py +0 -166
  42. abstractassistant-0.3.2/tests/test_reason_values.py +0 -208
  43. abstractassistant-0.3.2/tests/test_safe_startup.py +0 -119
  44. abstractassistant-0.3.2/tests/test_safe_voice_controls.py +0 -223
  45. abstractassistant-0.3.2/tests/test_simple.py +0 -105
  46. abstractassistant-0.3.2/tests/test_system_tray.py +0 -160
  47. abstractassistant-0.3.2/tests/test_timestamp_clicks.py +0 -53
  48. abstractassistant-0.3.2/tests/test_voice_double_click.py +0 -222
  49. abstractassistant-0.3.2/tests/test_voice_features.py +0 -271
  50. abstractassistant-0.3.2/tests/test_voice_timing.py +0 -199
  51. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/LICENSE +0 -0
  52. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/__init__.py +0 -0
  53. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/app.py +0 -0
  54. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/cli.py +0 -0
  55. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/config.py +0 -0
  56. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/core/__init__.py +0 -0
  57. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/core/llm_manager.py +0 -0
  58. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/core/tts_manager.py +0 -0
  59. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/ui/__init__.py +0 -0
  60. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/ui/provider_manager.py +0 -0
  61. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/ui/toast_manager.py +0 -0
  62. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/ui/toast_window.py +0 -0
  63. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/ui/tts_state_manager.py +0 -0
  64. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/ui/ui_styles.py +0 -0
  65. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/utils/__init__.py +0 -0
  66. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/utils/icon_generator.py +0 -0
  67. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/utils/markdown_renderer.py +0 -0
  68. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/abstractassistant/web_server.py +0 -0
  69. {abstractassistant-0.3.2 → abstractassistant-0.3.4}/setup.cfg +0 -0
@@ -0,0 +1,164 @@
1
+ # Acknowledgments
2
+
3
+ AbstractAssistant would not be possible without the incredible work of the open-source community and the following libraries and projects:
4
+
5
+ ## Core Foundation
6
+
7
+ ### [AbstractCore](https://www.abstractcore.ai/)
8
+ **The heart of AbstractAssistant's multi-provider LLM support**
9
+
10
+ AbstractCore provides the universal interface that makes it possible to seamlessly switch between different AI providers. Without AbstractCore, this project would require implementing separate integrations for each LLM provider.
11
+
12
+ - **What it provides**: Universal LLM interface, provider discovery, model management, session handling
13
+ - **Why it's essential**: Enables support for 6+ LLM providers and 100+ models through a single, consistent API
14
+ - **License**: MIT License
15
+ - **Repository**: [AbstractCore on GitHub](https://github.com/lpalbou/abstractcore)
16
+
17
+ *Special thanks to the AbstractCore team for creating such a robust and extensible foundation for AI applications.*
18
+
19
+ ## Voice and Audio
20
+
21
+ ### [AbstractVoice](https://github.com/lpalbou/abstractvoice)
22
+ **High-quality Text-to-Speech integration**
23
+
24
+ AbstractVoice provides the conversational AI capabilities that make AbstractAssistant truly interactive. The VITS model integration delivers natural-sounding speech synthesis.
25
+
26
+ - **What it provides**: TTS engine, voice activity detection, speech-to-text capabilities
27
+ - **Features used**: Text-to-speech with speed control, model fallbacks, threading support
28
+ - **License**: MIT License
29
+
30
+ ### [Coqui TTS](https://github.com/coqui-ai/TTS)
31
+ **Advanced Text-to-Speech engine**
32
+
33
+ The underlying TTS engine that powers AbstractVoice's high-quality speech synthesis.
34
+
35
+ - **What it provides**: Neural text-to-speech models, voice cloning, multilingual support
36
+ - **License**: MPL 2.0 License
37
+
38
+ ### [OpenAI Whisper](https://github.com/openai/whisper)
39
+ **Robust automatic speech recognition**
40
+
41
+ Used by AbstractVoice for potential future speech-to-text features.
42
+
43
+ - **What it provides**: Multilingual speech recognition, robust audio processing
44
+ - **License**: MIT License
45
+
46
+ ### [PyAudio](https://people.csail.mit.edu/hubert/pyaudio/)
47
+ **Cross-platform audio I/O**
48
+
49
+ Enables audio input/output for voice features.
50
+
51
+ - **What it provides**: Audio stream handling, cross-platform audio support
52
+ - **License**: MIT License
53
+
54
+ ## User Interface
55
+
56
+ ### [Qt Framework](https://www.qt.io/) (PyQt5/PySide2/PyQt6)
57
+ **Modern, native GUI framework**
58
+
59
+ Qt provides the foundation for AbstractAssistant's sleek, native-feeling interface. The automatic detection of PyQt5, PySide2, or PyQt6 ensures compatibility across different environments.
60
+
61
+ - **What it provides**: Native GUI widgets, cross-platform compatibility, modern styling
62
+ - **Features used**: Custom widgets, layouts, styling, threading, event handling
63
+ - **License**:
64
+ - PyQt5/PyQt6: GPL v3 / Commercial License
65
+ - PySide2/PySide6: LGPL v3 / Commercial License
66
+
67
+ ### [pystray](https://github.com/moses-palmer/pystray)
68
+ **Cross-platform system tray support**
69
+
70
+ Enables AbstractAssistant to live in the macOS menu bar with native integration.
71
+
72
+ - **What it provides**: System tray icon management, context menus, click handling
73
+ - **License**: LGPL v3 License
74
+
75
+ ## Image Processing
76
+
77
+ ### [Pillow (PIL Fork)](https://python-pillow.org/)
78
+ **Powerful image processing library**
79
+
80
+ Used for dynamic system tray icon generation with animations and status indicators.
81
+
82
+ - **What it provides**: Image creation, manipulation, format support
83
+ - **Features used**: Dynamic icon generation, image compositing, color manipulation
84
+ - **License**: HPND License
85
+
86
+ ## Utilities and Support
87
+
88
+ ### [pyperclip](https://github.com/asweigart/pyperclip)
89
+ **Cross-platform clipboard operations**
90
+
91
+ Enables copy-to-clipboard functionality for AI responses.
92
+
93
+ - **What it provides**: Clipboard read/write operations
94
+ - **License**: BSD 3-Clause License
95
+
96
+ ### [plyer](https://github.com/kivy/plyer)
97
+ **Cross-platform native features**
98
+
99
+ Provides access to platform-specific notification systems.
100
+
101
+ - **What it provides**: Native notifications, platform abstraction
102
+ - **License**: MIT License
103
+
104
+ ### [markdown](https://python-markdown.github.io/)
105
+ **Markdown processing**
106
+
107
+ Enables rich text rendering in the history dialog and notifications.
108
+
109
+ - **What it provides**: Markdown to HTML conversion, extensions support
110
+ - **License**: BSD 3-Clause License
111
+
112
+ ### [Pygments](https://pygments.org/)
113
+ **Syntax highlighting**
114
+
115
+ Provides code syntax highlighting in markdown-rendered content.
116
+
117
+ - **What it provides**: Code syntax highlighting, multiple language support
118
+ - **License**: BSD 2-Clause License
119
+
120
+ ## Configuration and Data
121
+
122
+ ### [tomli](https://github.com/hukkin/tomli) / [tomli-w](https://github.com/hukkin/tomli-w)
123
+ **TOML configuration file support**
124
+
125
+ Enables clean, human-readable configuration files.
126
+
127
+ - **What it provides**: TOML parsing and writing
128
+ - **License**: MIT License
129
+
130
+ ## Development Tools
131
+
132
+ ### [setuptools](https://setuptools.pypa.io/)
133
+ **Python packaging**
134
+
135
+ Modern Python packaging and distribution.
136
+
137
+ - **License**: MIT License
138
+
139
+ ## Special Recognition
140
+
141
+ ### The Python Community
142
+ The entire Python ecosystem that makes rapid development of sophisticated applications possible.
143
+
144
+ ### macOS Integration
145
+ Apple's excellent developer documentation and APIs that enable seamless system integration.
146
+
147
+ ### Open Source Contributors
148
+ All the maintainers, contributors, and users of the above projects who make open-source software development possible.
149
+
150
+ ---
151
+
152
+ ## License Compatibility
153
+
154
+ AbstractAssistant is released under the MIT License, which is compatible with all the dependencies listed above. Users should be aware of the specific licensing terms of each dependency, particularly:
155
+
156
+ - **Qt-based components** (PyQt5/PyQt6) are available under GPL v3 or commercial license
157
+ - **PySide2/PySide6** are available under LGPL v3 or commercial license
158
+ - All other dependencies use permissive licenses (MIT, BSD, etc.)
159
+
160
+ For commercial use, consider the licensing implications of Qt-based components.
161
+
162
+ ---
163
+
164
+ **Thank you to all the developers and maintainers who make projects like AbstractAssistant possible!** 🙏
@@ -0,0 +1,226 @@
1
+ # Changelog
2
+
3
+ All notable changes to AbstractAssistant will be documented in this file.
4
+
5
+
6
+ ## [0.3.4] - 2025-10-27
7
+
8
+ ### Improved
9
+ - **Chat History Management**: Enhanced message deletion and history dialog handling
10
+ - Streamlined message deletion process with improved error handling
11
+ - Removed excessive debug output for cleaner user experience
12
+ - Enhanced widget management for better performance in history dialog
13
+ - Improved UI consistency during message operations
14
+ - Better error handling and widget lifecycle management
15
+
16
+ ### Fixed
17
+ - **Code Cleanup**: Removed debug print statements that cluttered console output
18
+ - Cleaner codebase with reduced unnecessary logging
19
+ - Maintained UI integrity during message deletions
20
+ - Enhanced performance through optimized widget management
21
+
22
+ ## [0.3.3] - 2025-10-24
23
+
24
+ ### Changed
25
+ - **Keyboard Behavior**: Reversed Enter/Shift+Enter behavior for more intuitive message sending
26
+ - `Enter`: Send message (previously required Shift+Enter)
27
+ - `Shift+Enter`: Add new line without sending (previously just Enter)
28
+ - Updated both Qt and Tkinter chat interfaces for consistency
29
+ - Improved user experience with standard chat application behavior
30
+
31
+ ### Fixed
32
+ - **macOS App Bundle**: Consolidated and improved app bundle creation system
33
+ - Merged `setup_macos_app.py` functionality into `create_app_bundle.py` for cleaner architecture
34
+ - Enhanced Python environment discovery in launch script for better reliability
35
+ - Improved custom icon preservation logic to prevent overwriting user icons
36
+ - Fixed app bundle creation for various Python installation methods (pyenv, system, conda)
37
+ - Removed redundant files and streamlined packaging structure
38
+
39
+ ### Improved
40
+ - **Documentation**: Updated all documentation to reflect current features and behavior
41
+ - Fixed keyboard shortcuts documentation across all guides
42
+ - Updated installation instructions with correct app bundle creation commands
43
+ - Verified consistency of Python version requirements (3.9+) across all docs
44
+ - Corrected outdated references to deprecated modules
45
+
46
+ ### Removed
47
+ - **Code Cleanup**: Removed deprecated `setup_macos_app.py` after consolidation
48
+ - All functionality moved to `abstractassistant/create_app_bundle.py`
49
+ - Updated PyPI packaging to exclude development artifacts
50
+ - Cleaner project structure with single app bundle creation entry point
51
+
52
+ ## [0.3.0] - 2025-10-22
53
+
54
+ ### Fixed
55
+ - **CRITICAL: Session Persistence**: Completely eliminated unwanted session clearing that was destroying chat history
56
+ - Sessions now persist when switching providers or models
57
+ - TTS mode switching preserves chat history
58
+ - Error handling preserves sessions instead of creating new ones
59
+ - System tray actions require user confirmation and cannot bypass session control
60
+ - Only explicit "Clear" button action in UI destroys sessions
61
+ - Separated LLM initialization from session management
62
+ - Added `update_session_mode()` method for history-preserving mode switches
63
+ - Fixed automatic session loading that bypassed user control
64
+ - Bulletproof session control: NO internal process can clear sessions
65
+ - **UI Layout**: Fixed window resizing when adding/removing file attachments
66
+ - Window now dynamically resizes to accommodate file attachment widget
67
+ - Base size: 630x196, expands to 630x224 when files are attached (compact)
68
+ - Voice mode properly adjusts: 630x120 base, 630x148 with attachments
69
+ - Maintains proper positioning relative to system tray after resize
70
+ - **Session Clearing**: Clear session now also clears attached files
71
+ - When user clicks "Clear" button, both messages and attached files are cleared
72
+ - Updated confirmation dialog to mention attached files will be removed
73
+ - Ensures complete session reset including file attachments
74
+ - **File Chip Styling**: Made file attachment chips more compact and space-efficient
75
+ - Reduced font size from 10px to 8px for better space utilization
76
+ - Decreased border radius from 10px to 6px for tighter appearance
77
+ - Minimized padding and margins throughout (50% reduction)
78
+ - Smaller remove buttons (16x16 → 12x12) for cleaner look
79
+ - Window expansion reduced from +40px to +28px (30% space savings)
80
+ - **UI Cleanup**: Removed unwanted voice control panel extension
81
+ - Eliminated the play/pause control panel that sometimes appeared at bottom
82
+ - Cleaner interface without unnecessary UI extensions
83
+ - Voice controls still available through existing TTS toggle button
84
+ - **File Attachment Persistence & Visual Indicators**: Enhanced file handling for better user experience
85
+ - Files now remain attached after sending messages, allowing for easy reuse in follow-up messages
86
+ - Added visual file attachment indicators (📎) in chat history dialog showing file count per message
87
+ - Enhanced message history structure to track file attachments per message
88
+ - Clear session now properly clears both messages and file attachment tracking
89
+ - Improved file workflow: attach once, use multiple times until manually removed
90
+
91
+ ## [0.2.8] - 2025-10-21
92
+
93
+ ### Added
94
+ - **macOS App Bundle**: Native macOS application bundle (`.app`) with Dock integration and system tray support
95
+ - **Automated App Creation**: `create-app-bundle` command to generate macOS app bundle post-installation
96
+ - **Streamlined Installation**: `install.py` script for one-command macOS setup with app bundle creation
97
+ - **Neural Network Icon**: Beautiful AI-inspired icon automatically generated and converted to `.icns` format
98
+
99
+ ### Improved
100
+ - **Cross-Environment Compatibility**: Robust Python environment detection supporting pyenv, anaconda, homebrew, and system Python
101
+ - **Portable Launch Script**: Smart Python discovery that works across different users and system configurations
102
+ - **Error Handling**: User-friendly dialog boxes for installation and launch issues
103
+ - **Documentation**: Updated installation guides for macOS App Bundle workflow
104
+
105
+ ### Fixed
106
+ - **Python Environment Detection**: Resolved issues with finding correct Python installation in GUI launch context
107
+ - **Development vs Production**: Launch script now correctly uses installed package instead of development version
108
+ - **PATH Resolution**: Fixed Python executable discovery when launched from Dock vs terminal
109
+
110
+ ### Technical
111
+ - Added `MacOSAppBundleGenerator` class for programmatic app bundle creation
112
+ - Enhanced `setup_macos_app.py` with comprehensive Python environment detection
113
+ - Updated `pyproject.toml` to include app bundle creation tools as console scripts
114
+ - Improved launch script with fallback mechanisms for different Python installations
115
+ - Added proper `Info.plist` configuration for macOS app bundle standards
116
+
117
+ ### Installation
118
+ ```bash
119
+ # Simple one-command installation for macOS users
120
+ python install.py
121
+
122
+ # Or manual installation
123
+ pip install abstractassistant
124
+ create-app-bundle
125
+ ```
126
+
127
+ ### Usage
128
+ - Launch from **Applications folder** or **Dock**
129
+ - Look for neural network icon in **menu bar** (system tray)
130
+ - All existing CLI options remain available
131
+
132
+ ## [0.2.5] - 2025-10-21
133
+
134
+ ### Added
135
+ - **File Attachments**: Click the 📎 button to attach images, PDFs, Office docs, or data files to your messages. The AI can now analyze documents, images, spreadsheets, and more.
136
+ - **Clickable Messages**: Click any message bubble in the history panel to copy its content to clipboard. A subtle flash confirms the copy.
137
+
138
+ ### Improved
139
+ - **Chat History Layout**: Reduced text size (17px → 14px), increased bubble width (320px → 400px), and tightened spacing throughout for better readability and more efficient use of screen space.
140
+ - **Markdown Rendering**: Headers, paragraphs, and lists now use minimal spacing to display more content without scrolling.
141
+
142
+ ### Updated
143
+ - **AbstractCore 2.4.5**: Upgraded from 2.4.2 to leverage universal media handling system with support for images, PDFs, Office documents (DOCX, XLSX, PPTX), and data files (CSV, JSON).
144
+
145
+ ### Technical
146
+ - Added `ClickableBubble` widget with visual feedback for clipboard operations
147
+ - Enhanced `LLMManager` and `LLMWorker` to handle media file attachments
148
+ - File chips display with type-specific icons and individual remove buttons
149
+ - Improved markdown processor with tighter vertical spacing
150
+
151
+ ## [1.1.0] - 2024-10-16
152
+
153
+ ### 🌐 Major UI Overhaul: Beautiful Web Interface
154
+
155
+ #### Added
156
+ - **Modern Web Interface**: Complete replacement of Qt/Tkinter with beautiful HTML/CSS/JavaScript
157
+ - **Glassmorphism Design**: Stunning visual effects with backdrop blur and transparency
158
+ - **WebSocket Communication**: Real-time bidirectional communication between web UI and Python backend
159
+ - **Responsive Design**: Works perfectly on desktop and mobile browsers
160
+ - **Advanced Settings Panel**: Theme selection, temperature control, and token limit configuration
161
+ - **Smooth Animations**: Professional transitions and loading states
162
+ - **Dark/Light Themes**: Automatic system theme detection with manual override
163
+
164
+ #### Enhanced
165
+ - **Web Server**: Full aiohttp-based server with WebSocket support
166
+ - **Real-time Status**: Live updates for connection status and processing state
167
+ - **Modern Typography**: Inter font family for professional appearance
168
+ - **Gradient Buttons**: Beautiful send button with hover effects
169
+ - **Message Bubbles**: Elegant chat interface with markdown rendering
170
+
171
+ #### Technical Improvements
172
+ - Added `aiohttp` and `websockets` dependencies
173
+ - Created `WebServer` class with async/await support
174
+ - Fallback to simple HTTP server if aiohttp unavailable
175
+ - Updated system tray to launch web interface instead of Qt bubble
176
+ - Maintained backward compatibility with existing configuration
177
+
178
+ ## [1.0.0] - 2024-10-15
179
+
180
+ ### Added
181
+ - **System Tray Integration**: Native macOS menu bar icon with neural network-inspired design
182
+ - **Modern Chat Bubble UI**: Glassy, translucent interface with 1/6th screen size
183
+ - **Multi-Provider Support**: OpenAI, Anthropic, and Ollama integration via AbstractCore
184
+ - **Toast Notifications**: Elegant collapsible notifications with markdown rendering
185
+ - **TOML Configuration**: Modern configuration management with validation
186
+ - **CLI Interface**: `abstractassistant` command with multiple options
187
+ - **Real-time Status**: Token counting and execution status display
188
+ - **Copy to Clipboard**: One-click result sharing
189
+ - **Keyboard Shortcuts**: Cmd+Enter to send, Escape to close
190
+ - **Error Handling**: Graceful fallbacks and user-friendly error messages
191
+ - **Debug Mode**: Comprehensive debugging and logging capabilities
192
+
193
+ ### Features
194
+ - **Universal LLM Support**: Works with any provider supported by AbstractCore
195
+ - **Session Management**: Persistent conversation memory
196
+ - **Modern Design**: Dark theme with glassy effects and smooth animations
197
+ - **Performance Optimized**: Threaded operations and efficient resource usage
198
+ - **Cross-Platform Foundation**: Built for future Windows/Linux support
199
+
200
+ ### Technical
201
+ - **Modular Architecture**: Clean separation of concerns
202
+ - **Robust Error Handling**: Comprehensive exception management
203
+ - **Configuration Validation**: Type-safe configuration with defaults
204
+ - **Package Structure**: Proper Python package with CLI entry points
205
+ - **Development Mode**: Editable installation support
206
+
207
+ ### CLI Commands
208
+ ```bash
209
+ abstractassistant # Launch with default settings
210
+ abstractassistant --provider openai # Set provider
211
+ abstractassistant --model gpt-4o # Set model
212
+ abstractassistant --debug # Debug mode
213
+ abstractassistant --config custom.toml # Custom config
214
+ ```
215
+
216
+ ### Configuration
217
+ - TOML-based configuration with validation
218
+ - Environment variable support for API keys
219
+ - Customizable UI themes and behavior
220
+ - Provider and model defaults
221
+
222
+ ### Dependencies
223
+ - AbstractCore 2.4.0+ for universal LLM support
224
+ - CustomTkinter for modern UI components
225
+ - pystray for cross-platform system tray
226
+ - TOML libraries for configuration management