abstractassistant 0.3.4__py3-none-any.whl → 0.4.0__py3-none-any.whl

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.
@@ -0,0 +1,168 @@
1
+ Metadata-Version: 2.4
2
+ Name: abstractassistant
3
+ Version: 0.4.0
4
+ Summary: A sleek (macOS) system tray application providing instant access to LLMs
5
+ Author-email: Laurent-Philippe Albou <contact@abstractcore.ai>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/lpalbou/abstractassistant
8
+ Project-URL: Repository, https://github.com/lpalbou/abstractassistant
9
+ Project-URL: Issues, https://github.com/lpalbou/abstractassistant/issues
10
+ Keywords: ai,llm,macos,system-tray,assistant
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: End Users/Desktop
13
+ Classifier: Operating System :: MacOS
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Classifier: Topic :: Desktop Environment
21
+ Requires-Python: >=3.10
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ Requires-Dist: abstractagent>=0.3.0
25
+ Requires-Dist: tomli>=2.0.0; python_version < "3.11"
26
+ Requires-Dist: tomli-w>=1.0.0
27
+ Requires-Dist: pystray>=0.19.4
28
+ Requires-Dist: Pillow>=10.0.0
29
+ Requires-Dist: PyQt5>=5.15.0
30
+ Requires-Dist: markdown>=3.5.0
31
+ Requires-Dist: pygments>=2.16.0
32
+ Requires-Dist: pymdown-extensions>=10.0
33
+ Requires-Dist: pyperclip>=1.8.2
34
+ Requires-Dist: plyer>=2.1.0
35
+ Provides-Extra: lite
36
+ Provides-Extra: full
37
+ Requires-Dist: abstractvoice>=0.6.0; extra == "full"
38
+ Requires-Dist: abstractcore[anthropic,lmstudio,media,ollama,openai,tokens]>=2.11.0; extra == "full"
39
+ Provides-Extra: dev
40
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
41
+ Requires-Dist: black>=23.0.0; extra == "dev"
42
+ Requires-Dist: isort>=5.12.0; extra == "dev"
43
+ Requires-Dist: mypy>=1.5.0; extra == "dev"
44
+ Dynamic: license-file
45
+
46
+ # AbstractAssistant
47
+
48
+ One-click, tray-accessible agent host for AbstractFramework.
49
+
50
+ AbstractAssistant runs **agentic** loops (ReAct/CodeAct/MemAct) on top of:
51
+ - **AbstractAgent** (agent patterns)
52
+ - **AbstractRuntime** (durable runs, waits, ledgers)
53
+ - **AbstractCore** (provider/tool normalization)
54
+ - Optional: **AbstractVoice** (STT/TTS)
55
+
56
+ Docs:
57
+ - `docs/getting-started.md`
58
+ - `docs/architecture.md`
59
+
60
+ ## Install profiles
61
+
62
+ - `abstractassistant` (default) == `lite`: tray UI + agent backend (no voice)
63
+ - `abstractassistant[full]`: voice (STT/TTS) + broader provider/media extras
64
+
65
+ ```bash
66
+ pip install "abstractassistant"
67
+ # or
68
+ pip install "abstractassistant[full]"
69
+ ```
70
+
71
+ ## Quick start
72
+
73
+ Tray (macOS):
74
+ ```bash
75
+ assistant tray
76
+ ```
77
+
78
+ Alias:
79
+ ```bash
80
+ abstractassistant tray
81
+ ```
82
+
83
+ Terminal (one turn):
84
+ ```bash
85
+ assistant run --prompt "What is in this repo and where do I start?"
86
+ ```
87
+
88
+ Provider/model override:
89
+ ```bash
90
+ assistant run --provider ollama --model qwen3:4b-instruct --prompt "Summarize my changes"
91
+ ```
92
+
93
+ ## Tool approvals (important)
94
+
95
+ AbstractAssistant enforces a durable tool boundary:
96
+ - read-only / known-safe tools can auto-run
97
+ - anything else pauses and requires approval (tray dialog or terminal prompt)
98
+
99
+ This aligns with the framework’s durability + safety model: tools are executed by the host, not persisted as callables inside run state.
100
+
101
+ ## Data & durability
102
+
103
+ By default, assistant state is stored in `~/.abstractassistant/` (configurable via `--data-dir`):
104
+ - `session.json`: fast UI snapshot (transcript + last run id)
105
+ - `runtime/`: run store + ledger + artifacts (source of truth)
106
+
107
+ ## Development
108
+
109
+ ```bash
110
+ pip install -e ".[dev,lite]"
111
+ python -m pytest -q
112
+ assistant tray --debug
113
+ ```
114
+ - **📱 Unobtrusive**: Lives quietly in your menu bar until needed
115
+ - **🔊 Conversational**: Optional voice mode for natural AI interactions
116
+
117
+ ## 📚 Documentation
118
+
119
+ | Guide | Description |
120
+ |-------|------------|
121
+ | [📖 Installation Guide](docs/installation.md) | Complete setup instructions, prerequisites, and troubleshooting |
122
+ | [🎯 Getting Started Guide](docs/getting-started.md) | Step-by-step usage guide with all features explained |
123
+ | [🏗️ Architecture Guide](docs/architecture.md) | Technical documentation and development information |
124
+
125
+ ## 📋 Requirements
126
+
127
+ - **macOS**: 10.14+ (Mojave or later)
128
+ - **Python**: 3.9+
129
+ - **Qt Framework**: PyQt5, PySide2, or PyQt6 (automatically detected)
130
+ - **Dependencies**: [AbstractCore](https://github.com/lpalbou/abstractcore) and [AbstractVoice](https://github.com/lpalbou/abstractvoice) (automatically installed)
131
+
132
+ ## 🤝 Contributing
133
+
134
+ Contributions welcome! Please read the architecture documentation and follow the established patterns:
135
+
136
+ - **Clean Code**: Follow PEP 8 and use type hints
137
+ - **Modular Design**: Keep components focused and reusable
138
+ - **Modern UI/UX**: Maintain the sleek, native feel
139
+ - **Error Handling**: Always include graceful fallbacks
140
+ - **Documentation**: Update docs for any new features
141
+
142
+ ## 📄 License
143
+
144
+ MIT License - see LICENSE file for details.
145
+
146
+ ## 🙏 Acknowledgments
147
+
148
+ AbstractAssistant is built on excellent open-source projects:
149
+
150
+ ### Core Dependencies
151
+ - **[AbstractCore](https://github.com/lpalbou/abstractcore)**: Universal LLM interface - enables seamless multi-provider support
152
+ - **[AbstractVoice](https://github.com/lpalbou/abstractvoice)**: High-quality text-to-speech engine with natural voice synthesis
153
+
154
+ ### Framework & UI
155
+ - **[PyQt5/PySide2/PyQt6](https://www.qt.io/)**: Cross-platform GUI framework for the modern interface
156
+ - **[pystray](https://github.com/moses-palmer/pystray)**: Cross-platform system tray integration
157
+ - **[Pillow](https://python-pillow.org/)**: Image processing for dynamic icon generation
158
+
159
+ ### Part of the AbstractX Ecosystem
160
+ AbstractAssistant integrates seamlessly with other AbstractX projects:
161
+ - 🧠 **[AbstractCore](https://github.com/lpalbou/abstractcore)**: Universal LLM provider interface
162
+ - 🗣️ **[AbstractVoice](https://github.com/lpalbou/abstractvoice)**: Advanced text-to-speech capabilities
163
+
164
+ See [ACKNOWLEDGMENTS.md](ACKNOWLEDGMENTS.md) for complete attribution.
165
+
166
+ ---
167
+
168
+ **Built with ❤️ for macOS users who want AI at their fingertips**
@@ -0,0 +1,32 @@
1
+ abstractassistant/__init__.py,sha256=homfqMDh6sX2nBROtk6-y72jnrStPph8gEOeT0OjKyU,35
2
+ abstractassistant/app.py,sha256=k55op9nSMa_ACjdaFBevvajuSKEXA0YNXoyEzihszp0,42676
3
+ abstractassistant/cli.py,sha256=5EaJyELhmGg7zIn3eBjFSbLe77m3_dywywLBiiPBKXo,6495
4
+ abstractassistant/config.py,sha256=KodfPYTpHtavJyne-h-B-r3kbEt1uusSY8GknGLtDL8,5809
5
+ abstractassistant/create_app_bundle.py,sha256=lJJsdnjl-WSdQVn8uFp7c_3cJkx8liZbK2C7elOCG1A,14215
6
+ abstractassistant/web_server.py,sha256=_pqMzy13qfim9BMBqQJQifWyX7UQXFD_sZeiu4ZBt40,12816
7
+ abstractassistant/core/__init__.py,sha256=TETStgToTe7QSsCZgRHDk2oSErlLJoeGN0sFg4Yx2_c,15
8
+ abstractassistant/core/agent_host.py,sha256=jylmHmxgNlmfQMq90mkOMTw5AUxW2PJ8-umEv-bNyO4,25223
9
+ abstractassistant/core/llm_manager.py,sha256=Uqj3WtbQ5xq_iWXUjqGVSoJyzjTJfAlVitlXlgKEuHM,13873
10
+ abstractassistant/core/session_index.py,sha256=gUjErkD5F9vJ45YCJ07gRAIBsiKwPcFkI5X-AbALf1E,9711
11
+ abstractassistant/core/session_store.py,sha256=bR6ghmp2_D946uZ0SrcJiFbeeO80XmfXxnM5npGwZOg,2685
12
+ abstractassistant/core/tool_policy.py,sha256=n2BeGo7BQKQFDCqCBSf7Rx_YEpvNZM30mx9x8Pgrr7E,1700
13
+ abstractassistant/core/transcript_summary.py,sha256=NprTGD0xAJ1aZz3qIfHNuf3XQo3U9U_FUhiz11Lbbqo,15341
14
+ abstractassistant/core/tts_manager.py,sha256=Cxh302EgIycwkWxe7XntmLW-j_WusbJOYRCs3Jms3CU,9892
15
+ abstractassistant/ui/__init__.py,sha256=aRNE2pS50nFAX6y--rSGMNYwhz905g14gRd6g4BolYU,13
16
+ abstractassistant/ui/chat_bubble.py,sha256=bY48b4IeQzOrRN2_sJ5OazhZcJ8IMaBM6R3EexvU30Q,11885
17
+ abstractassistant/ui/history_dialog.py,sha256=2WlOPYyIVeBvJyzyMADrqL1Dx5Cf8gUA_LFbi2QyKlQ,57918
18
+ abstractassistant/ui/provider_manager.py,sha256=v61bM3yNt5jEbU5yS6J2q32kl6qw8zG-I6vKtx3l0cA,8364
19
+ abstractassistant/ui/qt_bubble.py,sha256=DK4FDi8QoTHDj55qNvPkJOyqF3qxZjF5Zujz3ni_Qq4,184058
20
+ abstractassistant/ui/toast_manager.py,sha256=1aU4DPo-J45bC61gTEctHq98ZrHIFxRfZa_9Q8KF588,13721
21
+ abstractassistant/ui/toast_window.py,sha256=BRSwEBlaND5LLipn1HOX0ISWxVH-zOHsYplFkiPaj_g,21727
22
+ abstractassistant/ui/tts_state_manager.py,sha256=UF_zrfl9wf0hNHBGxevcoKxW5Dh7zXibUSVoSSjGP4o,10565
23
+ abstractassistant/ui/ui_styles.py,sha256=FvE2CVUbHmHu1PKVTBBGyhbt781qh4WjLMrHviln39s,13120
24
+ abstractassistant/utils/__init__.py,sha256=7Q3BxyXETkt3tm5trhuLTyL8PoECOK0QiK-0KUVAR2Q,16
25
+ abstractassistant/utils/icon_generator.py,sha256=SWPgi1V6_8544Zbc2vAfFXAy15H35neyUGCYt2eKoic,16475
26
+ abstractassistant/utils/markdown_renderer.py,sha256=u5tVIhulSwRYADiqJcZNoHhU8e6pJVgzrwZRd61Bov0,12585
27
+ abstractassistant-0.4.0.dist-info/licenses/LICENSE,sha256=QUjFNAE-0yOkW9-Rle2axkpkt9H7xiZ2VbN-VeONhxc,1106
28
+ abstractassistant-0.4.0.dist-info/METADATA,sha256=xlnv65TOWp4ZHvvEDKzMfI6KAGicbzF1cG-YnkY-FRY,6014
29
+ abstractassistant-0.4.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
30
+ abstractassistant-0.4.0.dist-info/entry_points.txt,sha256=nXLvwelHBy1uQHcl-HeraHwvxeE9EQj-sSNlRe6nUf0,165
31
+ abstractassistant-0.4.0.dist-info/top_level.txt,sha256=qZc_LQH3CBxLq2P4B1aHayzkj8hn0euR31edkXQVzDA,18
32
+ abstractassistant-0.4.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,3 +1,4 @@
1
1
  [console_scripts]
2
+ abstractassistant = abstractassistant.cli:main
2
3
  assistant = abstractassistant.cli:main
3
4
  create-app-bundle = abstractassistant.create_app_bundle:main
@@ -1,297 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: abstractassistant
3
- Version: 0.3.4
4
- Summary: A sleek (macOS) system tray application providing instant access to LLMs
5
- Author-email: Laurent-Philippe Albou <contact@abstractcore.ai>
6
- License-Expression: MIT
7
- Project-URL: Homepage, https://github.com/lpalbou/abstractassistant
8
- Project-URL: Repository, https://github.com/lpalbou/abstractassistant
9
- Project-URL: Issues, https://github.com/lpalbou/abstractassistant/issues
10
- Keywords: ai,llm,macos,system-tray,assistant
11
- Classifier: Development Status :: 4 - Beta
12
- Classifier: Intended Audience :: End Users/Desktop
13
- Classifier: Operating System :: MacOS
14
- Classifier: Programming Language :: Python :: 3
15
- Classifier: Programming Language :: Python :: 3.9
16
- Classifier: Programming Language :: Python :: 3.10
17
- Classifier: Programming Language :: Python :: 3.11
18
- Classifier: Programming Language :: Python :: 3.12
19
- Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
- Classifier: Topic :: Desktop Environment
21
- Requires-Python: >=3.9
22
- Description-Content-Type: text/markdown
23
- License-File: LICENSE
24
- Requires-Dist: abstractcore[all]>=2.5.0
25
- Requires-Dist: pystray>=0.19.4
26
- Requires-Dist: Pillow>=10.0.0
27
- Requires-Dist: PyQt5>=5.15.0
28
- Requires-Dist: markdown>=3.5.0
29
- Requires-Dist: pygments>=2.16.0
30
- Requires-Dist: pymdown-extensions>=10.0
31
- Requires-Dist: abstractvoice>=0.5.1
32
- Requires-Dist: pyperclip>=1.8.2
33
- Requires-Dist: plyer>=2.1.0
34
- Requires-Dist: tomli>=2.0.0; python_version < "3.11"
35
- Requires-Dist: tomli-w>=1.0.0
36
- Provides-Extra: dev
37
- Requires-Dist: pytest>=7.0.0; extra == "dev"
38
- Requires-Dist: black>=23.0.0; extra == "dev"
39
- Requires-Dist: isort>=5.12.0; extra == "dev"
40
- Requires-Dist: mypy>=1.5.0; extra == "dev"
41
- Dynamic: license-file
42
-
43
- # AbstractAssistant 🤖
44
-
45
- Philosophy : *your AI assistant, always here and available in one click*
46
-
47
- A sleek macOS system tray application providing instant access to Large Language Models with a modern Qt-based interface. Built with Python and powered by [AbstractCore](https://github.com/lpalbou/abstractcore) and [AbstractVoice](https://github.com/lpalbou/abstractvoice).
48
-
49
- ## 📦 Installation & Links
50
-
51
- - **📋 GitHub Repository**: [https://github.com/lpalbou/abstractassistant](https://github.com/lpalbou/abstractassistant)
52
- - **🐍 PyPI Package**: [https://pypi.org/project/abstractassistant/](https://pypi.org/project/abstractassistant/)
53
- - **📚 Documentation**: See [docs/](docs/) folder for detailed guides
54
-
55
- ## ✨ Features
56
-
57
- - **🎯 System Tray Integration**: Quick access from macOS menu bar - always at your fingertips
58
- - **💬 Modern Qt Interface**: Clean, iPhone Messages-style chat bubble with dark theme
59
- - **🔊 Voice Support**: Text-to-Speech integration with [AbstractVoice](https://github.com/lpalbou/abstractvoice) for conversational AI
60
- - **🔄 Multi-Provider Support**: Seamlessly switch between LMStudio, Ollama, OpenAI, Anthropic, MLX, HuggingFace via [AbstractCore](https://github.com/lpalbou/abstractcore)
61
- - **📊 Real-time Status**: Live token counting, provider/model selection, and animated status indicators
62
- - **💾 Session Management**: Save, load, and view conversation history with markdown rendering
63
- - **⚙️ Smart Controls**: Provider/model dropdowns, TTS toggle, and session buttons
64
- - **🎨 Professional Design**: Rounded corners, smooth animations, and native macOS feel
65
-
66
- ## 🚀 Quick Start
67
-
68
- ### 1. Installation
69
-
70
- #### 🍎 macOS Users (Recommended)
71
- ```bash
72
- # Install AbstractAssistant
73
- pip install abstractassistant
74
-
75
- # Create native macOS app bundle
76
- create-app-bundle
77
- ```
78
-
79
- This will:
80
- - Install AbstractAssistant from PyPI with all dependencies
81
- - Create a native macOS app bundle in `/Applications`
82
- - Add AbstractAssistant to your Dock with a beautiful neural network icon
83
- - Enable launch from Spotlight, Finder, and Dock
84
-
85
- #### 🔧 Standard Installation
86
- ```bash
87
- # Install from PyPI (terminal access only)
88
- pip install abstractassistant
89
- ```
90
-
91
- For detailed installation instructions including prerequisites and voice setup, see **[📖 Installation Guide](docs/installation.md)**.
92
-
93
- ### 2. First Launch
94
-
95
- #### 🍎 macOS App Bundle Users
96
- - **Dock**: Click the AbstractAssistant icon in your Dock
97
- - **Spotlight**: Search for "AbstractAssistant" and press Enter
98
- - **Finder**: Open `/Applications/AbstractAssistant.app`
99
-
100
- #### 🔧 Terminal Users
101
- ```bash
102
- # Launch the assistant
103
- assistant
104
-
105
- # Create macOS app bundle after installation
106
- create-app-bundle
107
- ```
108
-
109
- ### 3. Start Using
110
- 1. **Find the Icon**: Look for AbstractAssistant in your macOS menu bar (top-right)
111
- 2. **Click to Open**: Click the icon to open the chat bubble
112
- 3. **Start Chatting**: Type your message and send!
113
-
114
- For a complete walkthrough of all features, see **[🎯 Getting Started Guide](docs/getting-started.md)**.
115
-
116
- ### 📋 Prerequisites
117
- - **macOS**: 10.14+ (Mojave or later)
118
- - **Python**: 3.9+
119
- - **Models**: Local (LMStudio/Ollama) or API keys (OpenAI/Anthropic)
120
-
121
- See **[⚙️ Installation Guide](docs/installation.md)** for detailed setup instructions.
122
-
123
- ## 🎮 Usage Overview
124
-
125
- AbstractAssistant provides a clean, intuitive interface for AI conversations:
126
-
127
- ### 🖱️ Main Interface
128
- - **Chat Bubble**: Modern iPhone Messages-style interface
129
- - **Provider/Model Selection**: Easy switching between AI providers
130
- - **Voice Support**: Optional text-to-speech for responses
131
- - **Session Management**: Save, load, and view conversation history
132
-
133
- ### 🎙️ Voice Features
134
- - **Text-to-Speech**: Powered by [AbstractVoice](https://github.com/lpalbou/abstractvoice)
135
- - **High-Quality Speech**: Natural-sounding voice synthesis
136
- - **Simple Controls**: One-click enable/disable
137
-
138
- ### 🔧 System Integration
139
- - **System Tray**: Always accessible from macOS menu bar
140
- - **Native Feel**: Designed for macOS with smooth animations
141
- - **Lightweight**: Minimal resource usage when idle
142
-
143
- **👉 For detailed usage instructions, see [🎯 Getting Started Guide](docs/getting-started.md)**
144
-
145
- ## ⚙️ Configuration
146
-
147
- Create a `config.toml` file to customize settings:
148
-
149
- ```toml
150
- [ui]
151
- theme = "dark"
152
- always_on_top = true
153
-
154
- [llm]
155
- default_provider = "lmstudio"
156
- default_model = "qwen/qwen3-next-80b"
157
- max_tokens = 128000
158
- temperature = 0.7
159
-
160
- [system_tray]
161
- icon_size = 64
162
- ```
163
-
164
- ### API Keys Setup
165
-
166
- Set your API keys as environment variables:
167
-
168
- ```bash
169
- # For OpenAI
170
- export OPENAI_API_KEY="your_openai_key_here"
171
-
172
- # For Anthropic
173
- export ANTHROPIC_API_KEY="your_anthropic_key_here"
174
-
175
- # For local models (LMStudio, Ollama), no API key needed
176
- ```
177
-
178
- ## 🏗️ Architecture
179
-
180
- AbstractAssistant is built on a modern, modular architecture:
181
-
182
- - **[AbstractCore](https://github.com/lpalbou/abstractcore)**: Universal LLM provider interface
183
- - **[AbstractVoice](https://github.com/lpalbou/abstractvoice)**: High-quality text-to-speech engine
184
- - **Qt Interface**: Cross-platform GUI (PyQt5/PySide2/PyQt6 support)
185
- - **System Integration**: Native macOS system tray with `pystray`
186
- - **Session Management**: Persistent conversation history and settings
187
-
188
- **👉 For technical details, see [🏗️ Architecture Guide](docs/architecture.md)**
189
-
190
- ## 🔧 Development
191
-
192
- ### Running from Source
193
-
194
- ```bash
195
- # Clone the repository
196
- git clone https://github.com/lpalbou/abstractassistant.git
197
- cd abstractassistant
198
-
199
- # Create virtual environment
200
- python3 -m venv .venv
201
- source .venv/bin/activate
202
-
203
- # Install in development mode
204
- pip install -e .
205
-
206
- # Run with debug mode
207
- assistant --debug
208
- ```
209
-
210
- ### Project Structure
211
-
212
- ```
213
- abstractassistant/
214
- ├── pyproject.toml # Package configuration
215
- ├── requirements.txt # Dependencies
216
- ├── config.toml # Default configuration
217
- ├── abstractassistant/ # Main package
218
- │ ├── cli.py # CLI entry point
219
- │ ├── app.py # Main application
220
- │ ├── config.py # Configuration management
221
- │ ├── core/ # Business logic
222
- │ │ ├── llm_manager.py # LLM provider management
223
- │ │ └── tts_manager.py # Voice/TTS integration
224
- │ ├── ui/ # User interface
225
- │ │ ├── qt_bubble.py # Main Qt chat interface
226
- │ │ └── toast_window.py # Notification system
227
- │ └── utils/ # Utilities
228
- │ ├── icon_generator.py # Dynamic icon creation
229
- │ └── markdown_renderer.py # Markdown processing
230
- └── docs/ # Documentation
231
- ├── architecture.md # Technical documentation
232
- ├── installation.md # Installation guide
233
- └── getting-started.md # Usage guide
234
- ```
235
-
236
- ## 🌟 Why AbstractAssistant?
237
-
238
- - **🎯 Focused**: Designed specifically for quick AI interactions
239
- - **🎨 Beautiful**: Modern Qt interface with native macOS feel
240
- - **⚡ Fast**: Instant access without opening heavy applications
241
- - **🔄 Flexible**: Support for multiple AI providers in one interface
242
- - **🛡️ Robust**: Built with error handling and graceful fallbacks
243
- - **📱 Unobtrusive**: Lives quietly in your menu bar until needed
244
- - **🔊 Conversational**: Optional voice mode for natural AI interactions
245
-
246
- ## 📚 Documentation
247
-
248
- | Guide | Description |
249
- |-------|------------|
250
- | [📖 Installation Guide](docs/installation.md) | Complete setup instructions, prerequisites, and troubleshooting |
251
- | [🎯 Getting Started Guide](docs/getting-started.md) | Step-by-step usage guide with all features explained |
252
- | [🏗️ Architecture Guide](docs/architecture.md) | Technical documentation and development information |
253
-
254
- ## 📋 Requirements
255
-
256
- - **macOS**: 10.14+ (Mojave or later)
257
- - **Python**: 3.9+
258
- - **Qt Framework**: PyQt5, PySide2, or PyQt6 (automatically detected)
259
- - **Dependencies**: [AbstractCore](https://github.com/lpalbou/abstractcore) and [AbstractVoice](https://github.com/lpalbou/abstractvoice) (automatically installed)
260
-
261
- ## 🤝 Contributing
262
-
263
- Contributions welcome! Please read the architecture documentation and follow the established patterns:
264
-
265
- - **Clean Code**: Follow PEP 8 and use type hints
266
- - **Modular Design**: Keep components focused and reusable
267
- - **Modern UI/UX**: Maintain the sleek, native feel
268
- - **Error Handling**: Always include graceful fallbacks
269
- - **Documentation**: Update docs for any new features
270
-
271
- ## 📄 License
272
-
273
- MIT License - see LICENSE file for details.
274
-
275
- ## 🙏 Acknowledgments
276
-
277
- AbstractAssistant is built on excellent open-source projects:
278
-
279
- ### Core Dependencies
280
- - **[AbstractCore](https://github.com/lpalbou/abstractcore)**: Universal LLM interface - enables seamless multi-provider support
281
- - **[AbstractVoice](https://github.com/lpalbou/abstractvoice)**: High-quality text-to-speech engine with natural voice synthesis
282
-
283
- ### Framework & UI
284
- - **[PyQt5/PySide2/PyQt6](https://www.qt.io/)**: Cross-platform GUI framework for the modern interface
285
- - **[pystray](https://github.com/moses-palmer/pystray)**: Cross-platform system tray integration
286
- - **[Pillow](https://python-pillow.org/)**: Image processing for dynamic icon generation
287
-
288
- ### Part of the AbstractX Ecosystem
289
- AbstractAssistant integrates seamlessly with other AbstractX projects:
290
- - 🧠 **[AbstractCore](https://github.com/lpalbou/abstractcore)**: Universal LLM provider interface
291
- - 🗣️ **[AbstractVoice](https://github.com/lpalbou/abstractvoice)**: Advanced text-to-speech capabilities
292
-
293
- See [ACKNOWLEDGMENTS.md](ACKNOWLEDGMENTS.md) for complete attribution.
294
-
295
- ---
296
-
297
- **Built with ❤️ for macOS users who want AI at their fingertips**
@@ -1,27 +0,0 @@
1
- abstractassistant/__init__.py,sha256=homfqMDh6sX2nBROtk6-y72jnrStPph8gEOeT0OjKyU,35
2
- abstractassistant/app.py,sha256=yGFszbaqja_Y1ejSMcVYIcq8f1qdeZpVTb032geI-ZE,40374
3
- abstractassistant/cli.py,sha256=SQPxQCLjX-LOlhSEvG302D0AOyxlxo5QM2imxr9wxmc,4385
4
- abstractassistant/config.py,sha256=KodfPYTpHtavJyne-h-B-r3kbEt1uusSY8GknGLtDL8,5809
5
- abstractassistant/create_app_bundle.py,sha256=lJJsdnjl-WSdQVn8uFp7c_3cJkx8liZbK2C7elOCG1A,14215
6
- abstractassistant/web_server.py,sha256=_pqMzy13qfim9BMBqQJQifWyX7UQXFD_sZeiu4ZBt40,12816
7
- abstractassistant/core/__init__.py,sha256=TETStgToTe7QSsCZgRHDk2oSErlLJoeGN0sFg4Yx2_c,15
8
- abstractassistant/core/llm_manager.py,sha256=hJun-nDfRv9zxv_3tfrHAmVYSYT96E-0zDJB2TiaSeQ,19226
9
- abstractassistant/core/tts_manager.py,sha256=Cxh302EgIycwkWxe7XntmLW-j_WusbJOYRCs3Jms3CU,9892
10
- abstractassistant/ui/__init__.py,sha256=aRNE2pS50nFAX6y--rSGMNYwhz905g14gRd6g4BolYU,13
11
- abstractassistant/ui/chat_bubble.py,sha256=bY48b4IeQzOrRN2_sJ5OazhZcJ8IMaBM6R3EexvU30Q,11885
12
- abstractassistant/ui/history_dialog.py,sha256=lVyNrZVu73CZo593DvnuWU1iCpmZybTCFTjlu4RrqBM,39701
13
- abstractassistant/ui/provider_manager.py,sha256=9IM-BxIs6lUlk6cDCBi7oZFMXmn4CFMlxh0s-_vhzXY,8403
14
- abstractassistant/ui/qt_bubble.py,sha256=kCgj1zqWKxxvVFAroz8NDh1GtcobyhatlrcXT9PhYOI,115598
15
- abstractassistant/ui/toast_manager.py,sha256=1aU4DPo-J45bC61gTEctHq98ZrHIFxRfZa_9Q8KF588,13721
16
- abstractassistant/ui/toast_window.py,sha256=BRSwEBlaND5LLipn1HOX0ISWxVH-zOHsYplFkiPaj_g,21727
17
- abstractassistant/ui/tts_state_manager.py,sha256=UF_zrfl9wf0hNHBGxevcoKxW5Dh7zXibUSVoSSjGP4o,10565
18
- abstractassistant/ui/ui_styles.py,sha256=FvE2CVUbHmHu1PKVTBBGyhbt781qh4WjLMrHviln39s,13120
19
- abstractassistant/utils/__init__.py,sha256=7Q3BxyXETkt3tm5trhuLTyL8PoECOK0QiK-0KUVAR2Q,16
20
- abstractassistant/utils/icon_generator.py,sha256=SWPgi1V6_8544Zbc2vAfFXAy15H35neyUGCYt2eKoic,16475
21
- abstractassistant/utils/markdown_renderer.py,sha256=u5tVIhulSwRYADiqJcZNoHhU8e6pJVgzrwZRd61Bov0,12585
22
- abstractassistant-0.3.4.dist-info/licenses/LICENSE,sha256=QUjFNAE-0yOkW9-Rle2axkpkt9H7xiZ2VbN-VeONhxc,1106
23
- abstractassistant-0.3.4.dist-info/METADATA,sha256=CXoP8mvao4NdI9qmyght-lTppQvuX3IgveQT7Ku0DVE,11564
24
- abstractassistant-0.3.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
25
- abstractassistant-0.3.4.dist-info/entry_points.txt,sha256=MIzeCh0XG6MbhIzBHtkdEjmjxYBsQrGFevq8Y1L8Jkc,118
26
- abstractassistant-0.3.4.dist-info/top_level.txt,sha256=qZc_LQH3CBxLq2P4B1aHayzkj8hn0euR31edkXQVzDA,18
27
- abstractassistant-0.3.4.dist-info/RECORD,,