abstractassistant 0.3.4__py3-none-any.whl → 0.3.5__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.
@@ -186,8 +186,8 @@ class ProviderManager:
186
186
  Returns:
187
187
  Formatted display name
188
188
  """
189
- # Extract the last part of the model name (after /)
190
- display_name = model.split('/')[-1] if '/' in model else model
189
+ # Use the full model name (preserving provider prefix)
190
+ display_name = model
191
191
 
192
192
  # Truncate if too long
193
193
  if len(display_name) > max_length:
@@ -615,6 +615,7 @@ class QtChatBubble(QWidget):
615
615
  self.model_combo.currentTextChanged.connect(self.on_model_changed)
616
616
  self.model_combo.setFixedHeight(28)
617
617
  self.model_combo.setMinimumWidth(140)
618
+ self.model_combo.view().setMinimumWidth(380) # Wider dropdown to show full model names
618
619
  self.model_combo.setStyleSheet("""
619
620
  QComboBox {
620
621
  background: rgba(255, 255, 255, 0.08);
@@ -770,39 +771,38 @@ class QtChatBubble(QWidget):
770
771
  }
771
772
 
772
773
  QComboBox QAbstractItemView {
773
- background: #1a202c;
774
- border: 1px solid #4a5568;
774
+ background: #252525;
775
+ border: 1px solid #404040;
775
776
  border-radius: 8px;
776
- selection-background-color: #4299e1;
777
- color: #e2e8f0;
778
- padding: 4px;
779
- font-family: "Helvetica Neue", "Helvetica", "Segoe UI", Arial, sans-serif;
777
+ selection-background-color: #404040;
778
+ color: #ffffff;
779
+ padding: 6px;
780
+ font-family: "SF Mono", "Monaco", "Menlo", "Consolas", monospace;
780
781
  }
781
-
782
+
782
783
  QComboBox QAbstractItemView::item {
783
- height: 36px;
784
- padding: 8px 12px;
784
+ height: 44px;
785
+ padding: 10px 16px;
785
786
  border: none;
786
- font-size: 12px;
787
- font-weight: 400; /* Changed from 500 to 400 (normal weight) */
788
- color: #e2e8f0;
789
- border-radius: 4px;
790
- margin: 2px;
787
+ font-size: 13px;
788
+ font-weight: 400;
789
+ color: #e8e8e8;
790
+ border-radius: 6px;
791
+ margin: 3px;
792
+ letter-spacing: 0.02em;
791
793
  }
792
-
794
+
793
795
  QComboBox QAbstractItemView::item:selected {
794
- background: #4299e1;
796
+ background: #404040;
795
797
  color: #ffffff;
798
+ font-weight: 500;
799
+ border: 1px solid #0066cc;
796
800
  }
797
-
801
+
798
802
  QComboBox QAbstractItemView::item:hover {
799
- background: #374151;
803
+ background: #333333;
800
804
  }
801
805
 
802
- QComboBox QAbstractItemView::item:selected {
803
- background: #4299e1;
804
- }
805
-
806
806
  /* Labels - Clean Typography */
807
807
  QLabel {
808
808
  color: rgba(255, 255, 255, 0.8);
@@ -986,7 +986,7 @@ class QtChatBubble(QWidget):
986
986
 
987
987
  # Add models to dropdown with display names
988
988
  for model in models:
989
- display_name = self.provider_manager.create_model_display_name(model, max_length=25)
989
+ display_name = self.provider_manager.create_model_display_name(model, max_length=55)
990
990
  self.model_combo.addItem(display_name, model)
991
991
 
992
992
  # Set preferred model
@@ -1014,9 +1014,10 @@ class QtChatBubble(QWidget):
1014
1014
  models = get_available_models_for_provider(self.current_provider)
1015
1015
 
1016
1016
  for model in models:
1017
- display_name = model.split('/')[-1] if '/' in model else model
1018
- if len(display_name) > 25:
1019
- display_name = display_name[:22] + "..."
1017
+ # Use full model name (preserving provider prefix)
1018
+ display_name = model
1019
+ if len(display_name) > 55:
1020
+ display_name = display_name[:52] + "..."
1020
1021
  self.model_combo.addItem(display_name, model)
1021
1022
 
1022
1023
  if self.model_combo.count() > 0:
@@ -2151,8 +2152,8 @@ Please provide the summary in a clear, structured format:"""
2151
2152
  def _create_compacted_session(self, summary: str, recent_messages: list):
2152
2153
  """Create a new session with the summary and recent messages."""
2153
2154
  try:
2154
- # Create new session with summary as enhanced system prompt
2155
- enhanced_system_prompt = f"""You are a helpful AI assistant who has access to tools to help the user.
2155
+ # Create new session with summary embedded in the system prompt.
2156
+ final_system_prompt = f"""You are a helpful AI assistant who has access to tools to help the user.
2156
2157
  Always be a critical and creative thinker who leverage constructive skepticism to progress and evolve its reasoning and answers.
2157
2158
  Always answer in nicely formatted markdown.
2158
2159
 
@@ -2165,7 +2166,7 @@ The following is a summary of our previous conversation:
2165
2166
 
2166
2167
  Continue the conversation naturally, referring to the context above when relevant."""
2167
2168
 
2168
- # Create new session with enhanced system prompt
2169
+ # Create new session with the composed system prompt
2169
2170
  if self.llm_manager:
2170
2171
  # Create new session with custom system prompt
2171
2172
  from abstractcore import BasicSession
@@ -2187,7 +2188,7 @@ Continue the conversation naturally, referring to the context above when relevan
2187
2188
  # Create new session with summary in system prompt
2188
2189
  new_session = BasicSession(
2189
2190
  self.llm_manager.llm,
2190
- system_prompt=enhanced_system_prompt,
2191
+ system_prompt=final_system_prompt,
2191
2192
  tools=tools
2192
2193
  )
2193
2194
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractassistant
3
- Version: 0.3.4
3
+ Version: 0.3.5
4
4
  Summary: A sleek (macOS) system tray application providing instant access to LLMs
5
5
  Author-email: Laurent-Philippe Albou <contact@abstractcore.ai>
6
6
  License-Expression: MIT
@@ -21,14 +21,14 @@ Classifier: Topic :: Desktop Environment
21
21
  Requires-Python: >=3.9
22
22
  Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
- Requires-Dist: abstractcore[all]>=2.5.0
24
+ Requires-Dist: abstractcore[anthropic,lmstudio,ollama,openai,tools]>=2.9.1
25
25
  Requires-Dist: pystray>=0.19.4
26
26
  Requires-Dist: Pillow>=10.0.0
27
27
  Requires-Dist: PyQt5>=5.15.0
28
28
  Requires-Dist: markdown>=3.5.0
29
29
  Requires-Dist: pygments>=2.16.0
30
30
  Requires-Dist: pymdown-extensions>=10.0
31
- Requires-Dist: abstractvoice>=0.5.1
31
+ Requires-Dist: abstractvoice>=0.5.2
32
32
  Requires-Dist: pyperclip>=1.8.2
33
33
  Requires-Dist: plyer>=2.1.0
34
34
  Requires-Dist: tomli>=2.0.0; python_version < "3.11"
@@ -10,8 +10,8 @@ abstractassistant/core/tts_manager.py,sha256=Cxh302EgIycwkWxe7XntmLW-j_WusbJOYRC
10
10
  abstractassistant/ui/__init__.py,sha256=aRNE2pS50nFAX6y--rSGMNYwhz905g14gRd6g4BolYU,13
11
11
  abstractassistant/ui/chat_bubble.py,sha256=bY48b4IeQzOrRN2_sJ5OazhZcJ8IMaBM6R3EexvU30Q,11885
12
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
13
+ abstractassistant/ui/provider_manager.py,sha256=v61bM3yNt5jEbU5yS6J2q32kl6qw8zG-I6vKtx3l0cA,8364
14
+ abstractassistant/ui/qt_bubble.py,sha256=sPeL54bIVVDUsE51U2b_XgtzDVIb-qbkI1IHz26dLlw,115631
15
15
  abstractassistant/ui/toast_manager.py,sha256=1aU4DPo-J45bC61gTEctHq98ZrHIFxRfZa_9Q8KF588,13721
16
16
  abstractassistant/ui/toast_window.py,sha256=BRSwEBlaND5LLipn1HOX0ISWxVH-zOHsYplFkiPaj_g,21727
17
17
  abstractassistant/ui/tts_state_manager.py,sha256=UF_zrfl9wf0hNHBGxevcoKxW5Dh7zXibUSVoSSjGP4o,10565
@@ -19,9 +19,9 @@ abstractassistant/ui/ui_styles.py,sha256=FvE2CVUbHmHu1PKVTBBGyhbt781qh4WjLMrHvil
19
19
  abstractassistant/utils/__init__.py,sha256=7Q3BxyXETkt3tm5trhuLTyL8PoECOK0QiK-0KUVAR2Q,16
20
20
  abstractassistant/utils/icon_generator.py,sha256=SWPgi1V6_8544Zbc2vAfFXAy15H35neyUGCYt2eKoic,16475
21
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,,
22
+ abstractassistant-0.3.5.dist-info/licenses/LICENSE,sha256=QUjFNAE-0yOkW9-Rle2axkpkt9H7xiZ2VbN-VeONhxc,1106
23
+ abstractassistant-0.3.5.dist-info/METADATA,sha256=T58ZbA3OYjIjS9qm1EPaLOMPqcwFrezy4o1-HZYTrUg,11599
24
+ abstractassistant-0.3.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
25
+ abstractassistant-0.3.5.dist-info/entry_points.txt,sha256=MIzeCh0XG6MbhIzBHtkdEjmjxYBsQrGFevq8Y1L8Jkc,118
26
+ abstractassistant-0.3.5.dist-info/top_level.txt,sha256=qZc_LQH3CBxLq2P4B1aHayzkj8hn0euR31edkXQVzDA,18
27
+ abstractassistant-0.3.5.dist-info/RECORD,,