abstractassistant 0.3.1__tar.gz → 0.3.3__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 (68) hide show
  1. abstractassistant-0.3.3/ACKNOWLEDGMENTS.md +164 -0
  2. abstractassistant-0.3.3/CHANGELOG.md +210 -0
  3. abstractassistant-0.3.3/CONTRIBUTING.md +389 -0
  4. abstractassistant-0.3.3/MANIFEST.in +30 -0
  5. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/PKG-INFO +21 -21
  6. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/README.md +20 -20
  7. abstractassistant-0.3.1/setup_macos_app.py → abstractassistant-0.3.3/abstractassistant/create_app_bundle.py +114 -42
  8. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/chat_bubble.py +15 -2
  9. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/history_dialog.py +18 -0
  10. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/qt_bubble.py +25 -12
  11. abstractassistant-0.3.3/abstractassistant.egg-info/SOURCES.txt +32 -0
  12. abstractassistant-0.3.3/docs/architecture.md +317 -0
  13. abstractassistant-0.3.3/docs/getting-started.md +394 -0
  14. abstractassistant-0.3.3/docs/installation.md +464 -0
  15. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/pyproject.toml +2 -4
  16. abstractassistant-0.3.1/abstractassistant/create_app_bundle.py +0 -53
  17. abstractassistant-0.3.1/abstractassistant.egg-info/PKG-INFO +0 -297
  18. abstractassistant-0.3.1/abstractassistant.egg-info/SOURCES.txt +0 -58
  19. abstractassistant-0.3.1/abstractassistant.egg-info/dependency_links.txt +0 -1
  20. abstractassistant-0.3.1/abstractassistant.egg-info/entry_points.txt +0 -3
  21. abstractassistant-0.3.1/abstractassistant.egg-info/requires.txt +0 -20
  22. abstractassistant-0.3.1/abstractassistant.egg-info/top_level.txt +0 -2
  23. abstractassistant-0.3.1/tests/test_abstractcore.py +0 -56
  24. abstractassistant-0.3.1/tests/test_app.py +0 -86
  25. abstractassistant-0.3.1/tests/test_bubble.py +0 -132
  26. abstractassistant-0.3.1/tests/test_bubble_manual.py +0 -79
  27. abstractassistant-0.3.1/tests/test_complete_voice_integration.py +0 -432
  28. abstractassistant-0.3.1/tests/test_complete_working.py +0 -171
  29. abstractassistant-0.3.1/tests/test_corrected_logic.py +0 -249
  30. abstractassistant-0.3.1/tests/test_double_click_fix.py +0 -206
  31. abstractassistant-0.3.1/tests/test_final_app_demo.py +0 -257
  32. abstractassistant-0.3.1/tests/test_final_verification.py +0 -216
  33. abstractassistant-0.3.1/tests/test_final_voice_mode.py +0 -304
  34. abstractassistant-0.3.1/tests/test_fixed_app.py +0 -261
  35. abstractassistant-0.3.1/tests/test_fixed_integration.py +0 -290
  36. abstractassistant-0.3.1/tests/test_full_voice_mode.py +0 -372
  37. abstractassistant-0.3.1/tests/test_integration.py +0 -266
  38. abstractassistant-0.3.1/tests/test_qt_bubble.py +0 -49
  39. abstractassistant-0.3.1/tests/test_qt_threading.py +0 -73
  40. abstractassistant-0.3.1/tests/test_real_application.py +0 -166
  41. abstractassistant-0.3.1/tests/test_reason_values.py +0 -208
  42. abstractassistant-0.3.1/tests/test_safe_startup.py +0 -119
  43. abstractassistant-0.3.1/tests/test_safe_voice_controls.py +0 -223
  44. abstractassistant-0.3.1/tests/test_simple.py +0 -105
  45. abstractassistant-0.3.1/tests/test_system_tray.py +0 -160
  46. abstractassistant-0.3.1/tests/test_timestamp_clicks.py +0 -53
  47. abstractassistant-0.3.1/tests/test_voice_double_click.py +0 -222
  48. abstractassistant-0.3.1/tests/test_voice_features.py +0 -271
  49. abstractassistant-0.3.1/tests/test_voice_timing.py +0 -199
  50. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/LICENSE +0 -0
  51. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/__init__.py +0 -0
  52. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/app.py +0 -0
  53. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/cli.py +0 -0
  54. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/config.py +0 -0
  55. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/core/__init__.py +0 -0
  56. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/core/llm_manager.py +0 -0
  57. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/core/tts_manager.py +0 -0
  58. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/__init__.py +0 -0
  59. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/provider_manager.py +0 -0
  60. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/toast_manager.py +0 -0
  61. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/toast_window.py +0 -0
  62. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/tts_state_manager.py +0 -0
  63. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/ui_styles.py +0 -0
  64. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/utils/__init__.py +0 -0
  65. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/utils/icon_generator.py +0 -0
  66. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/utils/markdown_renderer.py +0 -0
  67. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/web_server.py +0 -0
  68. {abstractassistant-0.3.1 → abstractassistant-0.3.3}/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,210 @@
1
+ # Changelog
2
+
3
+ All notable changes to AbstractAssistant will be documented in this file.
4
+
5
+
6
+ ## [0.3.3] - 2025-10-24
7
+
8
+ ### Changed
9
+ - **Keyboard Behavior**: Reversed Enter/Shift+Enter behavior for more intuitive message sending
10
+ - `Enter`: Send message (previously required Shift+Enter)
11
+ - `Shift+Enter`: Add new line without sending (previously just Enter)
12
+ - Updated both Qt and Tkinter chat interfaces for consistency
13
+ - Improved user experience with standard chat application behavior
14
+
15
+ ### Fixed
16
+ - **macOS App Bundle**: Consolidated and improved app bundle creation system
17
+ - Merged `setup_macos_app.py` functionality into `create_app_bundle.py` for cleaner architecture
18
+ - Enhanced Python environment discovery in launch script for better reliability
19
+ - Improved custom icon preservation logic to prevent overwriting user icons
20
+ - Fixed app bundle creation for various Python installation methods (pyenv, system, conda)
21
+ - Removed redundant files and streamlined packaging structure
22
+
23
+ ### Improved
24
+ - **Documentation**: Updated all documentation to reflect current features and behavior
25
+ - Fixed keyboard shortcuts documentation across all guides
26
+ - Updated installation instructions with correct app bundle creation commands
27
+ - Verified consistency of Python version requirements (3.9+) across all docs
28
+ - Corrected outdated references to deprecated modules
29
+
30
+ ### Removed
31
+ - **Code Cleanup**: Removed deprecated `setup_macos_app.py` after consolidation
32
+ - All functionality moved to `abstractassistant/create_app_bundle.py`
33
+ - Updated PyPI packaging to exclude development artifacts
34
+ - Cleaner project structure with single app bundle creation entry point
35
+
36
+ ## [0.3.0] - 2025-10-22
37
+
38
+ ### Fixed
39
+ - **CRITICAL: Session Persistence**: Completely eliminated unwanted session clearing that was destroying chat history
40
+ - Sessions now persist when switching providers or models
41
+ - TTS mode switching preserves chat history
42
+ - Error handling preserves sessions instead of creating new ones
43
+ - System tray actions require user confirmation and cannot bypass session control
44
+ - Only explicit "Clear" button action in UI destroys sessions
45
+ - Separated LLM initialization from session management
46
+ - Added `update_session_mode()` method for history-preserving mode switches
47
+ - Fixed automatic session loading that bypassed user control
48
+ - Bulletproof session control: NO internal process can clear sessions
49
+ - **UI Layout**: Fixed window resizing when adding/removing file attachments
50
+ - Window now dynamically resizes to accommodate file attachment widget
51
+ - Base size: 630x196, expands to 630x224 when files are attached (compact)
52
+ - Voice mode properly adjusts: 630x120 base, 630x148 with attachments
53
+ - Maintains proper positioning relative to system tray after resize
54
+ - **Session Clearing**: Clear session now also clears attached files
55
+ - When user clicks "Clear" button, both messages and attached files are cleared
56
+ - Updated confirmation dialog to mention attached files will be removed
57
+ - Ensures complete session reset including file attachments
58
+ - **File Chip Styling**: Made file attachment chips more compact and space-efficient
59
+ - Reduced font size from 10px to 8px for better space utilization
60
+ - Decreased border radius from 10px to 6px for tighter appearance
61
+ - Minimized padding and margins throughout (50% reduction)
62
+ - Smaller remove buttons (16x16 → 12x12) for cleaner look
63
+ - Window expansion reduced from +40px to +28px (30% space savings)
64
+ - **UI Cleanup**: Removed unwanted voice control panel extension
65
+ - Eliminated the play/pause control panel that sometimes appeared at bottom
66
+ - Cleaner interface without unnecessary UI extensions
67
+ - Voice controls still available through existing TTS toggle button
68
+ - **File Attachment Persistence & Visual Indicators**: Enhanced file handling for better user experience
69
+ - Files now remain attached after sending messages, allowing for easy reuse in follow-up messages
70
+ - Added visual file attachment indicators (📎) in chat history dialog showing file count per message
71
+ - Enhanced message history structure to track file attachments per message
72
+ - Clear session now properly clears both messages and file attachment tracking
73
+ - Improved file workflow: attach once, use multiple times until manually removed
74
+
75
+ ## [0.2.8] - 2025-10-21
76
+
77
+ ### Added
78
+ - **macOS App Bundle**: Native macOS application bundle (`.app`) with Dock integration and system tray support
79
+ - **Automated App Creation**: `create-app-bundle` command to generate macOS app bundle post-installation
80
+ - **Streamlined Installation**: `install.py` script for one-command macOS setup with app bundle creation
81
+ - **Neural Network Icon**: Beautiful AI-inspired icon automatically generated and converted to `.icns` format
82
+
83
+ ### Improved
84
+ - **Cross-Environment Compatibility**: Robust Python environment detection supporting pyenv, anaconda, homebrew, and system Python
85
+ - **Portable Launch Script**: Smart Python discovery that works across different users and system configurations
86
+ - **Error Handling**: User-friendly dialog boxes for installation and launch issues
87
+ - **Documentation**: Updated installation guides for macOS App Bundle workflow
88
+
89
+ ### Fixed
90
+ - **Python Environment Detection**: Resolved issues with finding correct Python installation in GUI launch context
91
+ - **Development vs Production**: Launch script now correctly uses installed package instead of development version
92
+ - **PATH Resolution**: Fixed Python executable discovery when launched from Dock vs terminal
93
+
94
+ ### Technical
95
+ - Added `MacOSAppBundleGenerator` class for programmatic app bundle creation
96
+ - Enhanced `setup_macos_app.py` with comprehensive Python environment detection
97
+ - Updated `pyproject.toml` to include app bundle creation tools as console scripts
98
+ - Improved launch script with fallback mechanisms for different Python installations
99
+ - Added proper `Info.plist` configuration for macOS app bundle standards
100
+
101
+ ### Installation
102
+ ```bash
103
+ # Simple one-command installation for macOS users
104
+ python install.py
105
+
106
+ # Or manual installation
107
+ pip install abstractassistant
108
+ create-app-bundle
109
+ ```
110
+
111
+ ### Usage
112
+ - Launch from **Applications folder** or **Dock**
113
+ - Look for neural network icon in **menu bar** (system tray)
114
+ - All existing CLI options remain available
115
+
116
+ ## [0.2.5] - 2025-10-21
117
+
118
+ ### Added
119
+ - **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.
120
+ - **Clickable Messages**: Click any message bubble in the history panel to copy its content to clipboard. A subtle flash confirms the copy.
121
+
122
+ ### Improved
123
+ - **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.
124
+ - **Markdown Rendering**: Headers, paragraphs, and lists now use minimal spacing to display more content without scrolling.
125
+
126
+ ### Updated
127
+ - **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).
128
+
129
+ ### Technical
130
+ - Added `ClickableBubble` widget with visual feedback for clipboard operations
131
+ - Enhanced `LLMManager` and `LLMWorker` to handle media file attachments
132
+ - File chips display with type-specific icons and individual remove buttons
133
+ - Improved markdown processor with tighter vertical spacing
134
+
135
+ ## [1.1.0] - 2024-10-16
136
+
137
+ ### 🌐 Major UI Overhaul: Beautiful Web Interface
138
+
139
+ #### Added
140
+ - **Modern Web Interface**: Complete replacement of Qt/Tkinter with beautiful HTML/CSS/JavaScript
141
+ - **Glassmorphism Design**: Stunning visual effects with backdrop blur and transparency
142
+ - **WebSocket Communication**: Real-time bidirectional communication between web UI and Python backend
143
+ - **Responsive Design**: Works perfectly on desktop and mobile browsers
144
+ - **Advanced Settings Panel**: Theme selection, temperature control, and token limit configuration
145
+ - **Smooth Animations**: Professional transitions and loading states
146
+ - **Dark/Light Themes**: Automatic system theme detection with manual override
147
+
148
+ #### Enhanced
149
+ - **Web Server**: Full aiohttp-based server with WebSocket support
150
+ - **Real-time Status**: Live updates for connection status and processing state
151
+ - **Modern Typography**: Inter font family for professional appearance
152
+ - **Gradient Buttons**: Beautiful send button with hover effects
153
+ - **Message Bubbles**: Elegant chat interface with markdown rendering
154
+
155
+ #### Technical Improvements
156
+ - Added `aiohttp` and `websockets` dependencies
157
+ - Created `WebServer` class with async/await support
158
+ - Fallback to simple HTTP server if aiohttp unavailable
159
+ - Updated system tray to launch web interface instead of Qt bubble
160
+ - Maintained backward compatibility with existing configuration
161
+
162
+ ## [1.0.0] - 2024-10-15
163
+
164
+ ### Added
165
+ - **System Tray Integration**: Native macOS menu bar icon with neural network-inspired design
166
+ - **Modern Chat Bubble UI**: Glassy, translucent interface with 1/6th screen size
167
+ - **Multi-Provider Support**: OpenAI, Anthropic, and Ollama integration via AbstractCore
168
+ - **Toast Notifications**: Elegant collapsible notifications with markdown rendering
169
+ - **TOML Configuration**: Modern configuration management with validation
170
+ - **CLI Interface**: `abstractassistant` command with multiple options
171
+ - **Real-time Status**: Token counting and execution status display
172
+ - **Copy to Clipboard**: One-click result sharing
173
+ - **Keyboard Shortcuts**: Cmd+Enter to send, Escape to close
174
+ - **Error Handling**: Graceful fallbacks and user-friendly error messages
175
+ - **Debug Mode**: Comprehensive debugging and logging capabilities
176
+
177
+ ### Features
178
+ - **Universal LLM Support**: Works with any provider supported by AbstractCore
179
+ - **Session Management**: Persistent conversation memory
180
+ - **Modern Design**: Dark theme with glassy effects and smooth animations
181
+ - **Performance Optimized**: Threaded operations and efficient resource usage
182
+ - **Cross-Platform Foundation**: Built for future Windows/Linux support
183
+
184
+ ### Technical
185
+ - **Modular Architecture**: Clean separation of concerns
186
+ - **Robust Error Handling**: Comprehensive exception management
187
+ - **Configuration Validation**: Type-safe configuration with defaults
188
+ - **Package Structure**: Proper Python package with CLI entry points
189
+ - **Development Mode**: Editable installation support
190
+
191
+ ### CLI Commands
192
+ ```bash
193
+ abstractassistant # Launch with default settings
194
+ abstractassistant --provider openai # Set provider
195
+ abstractassistant --model gpt-4o # Set model
196
+ abstractassistant --debug # Debug mode
197
+ abstractassistant --config custom.toml # Custom config
198
+ ```
199
+
200
+ ### Configuration
201
+ - TOML-based configuration with validation
202
+ - Environment variable support for API keys
203
+ - Customizable UI themes and behavior
204
+ - Provider and model defaults
205
+
206
+ ### Dependencies
207
+ - AbstractCore 2.4.0+ for universal LLM support
208
+ - CustomTkinter for modern UI components
209
+ - pystray for cross-platform system tray
210
+ - TOML libraries for configuration management