agentcrew-ai 0.8.13__py3-none-any.whl → 0.9.1__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.
Files changed (55) hide show
  1. AgentCrew/__init__.py +1 -1
  2. AgentCrew/app.py +46 -634
  3. AgentCrew/main_docker.py +1 -30
  4. AgentCrew/modules/a2a/common/client/card_resolver.py +27 -8
  5. AgentCrew/modules/a2a/server.py +5 -0
  6. AgentCrew/modules/a2a/task_manager.py +1 -0
  7. AgentCrew/modules/agents/local_agent.py +2 -2
  8. AgentCrew/modules/chat/message/command_processor.py +33 -8
  9. AgentCrew/modules/chat/message/conversation.py +18 -1
  10. AgentCrew/modules/chat/message/handler.py +5 -1
  11. AgentCrew/modules/code_analysis/service.py +50 -7
  12. AgentCrew/modules/code_analysis/tool.py +9 -8
  13. AgentCrew/modules/console/completers.py +5 -1
  14. AgentCrew/modules/console/console_ui.py +23 -11
  15. AgentCrew/modules/console/conversation_browser/__init__.py +9 -0
  16. AgentCrew/modules/console/conversation_browser/browser.py +84 -0
  17. AgentCrew/modules/console/conversation_browser/browser_input_handler.py +279 -0
  18. AgentCrew/modules/console/{conversation_browser.py → conversation_browser/browser_ui.py} +249 -163
  19. AgentCrew/modules/console/conversation_handler.py +34 -1
  20. AgentCrew/modules/console/display_handlers.py +127 -7
  21. AgentCrew/modules/console/visual_mode/__init__.py +5 -0
  22. AgentCrew/modules/console/visual_mode/viewer.py +41 -0
  23. AgentCrew/modules/console/visual_mode/viewer_input_handler.py +315 -0
  24. AgentCrew/modules/console/visual_mode/viewer_ui.py +608 -0
  25. AgentCrew/modules/gui/components/command_handler.py +137 -29
  26. AgentCrew/modules/gui/components/menu_components.py +8 -7
  27. AgentCrew/modules/gui/themes/README.md +30 -14
  28. AgentCrew/modules/gui/themes/__init__.py +2 -1
  29. AgentCrew/modules/gui/themes/atom_light.yaml +1287 -0
  30. AgentCrew/modules/gui/themes/catppuccin.yaml +1276 -0
  31. AgentCrew/modules/gui/themes/dracula.yaml +1262 -0
  32. AgentCrew/modules/gui/themes/nord.yaml +1267 -0
  33. AgentCrew/modules/gui/themes/saigontech.yaml +1268 -0
  34. AgentCrew/modules/gui/themes/style_provider.py +78 -264
  35. AgentCrew/modules/gui/themes/theme_loader.py +379 -0
  36. AgentCrew/modules/gui/themes/unicorn.yaml +1276 -0
  37. AgentCrew/modules/gui/widgets/configs/global_settings.py +4 -4
  38. AgentCrew/modules/gui/widgets/history_sidebar.py +6 -1
  39. AgentCrew/modules/llm/constants.py +28 -9
  40. AgentCrew/modules/mcpclient/service.py +0 -1
  41. AgentCrew/modules/memory/base_service.py +13 -0
  42. AgentCrew/modules/memory/chroma_service.py +50 -0
  43. AgentCrew/setup.py +470 -0
  44. {agentcrew_ai-0.8.13.dist-info → agentcrew_ai-0.9.1.dist-info}/METADATA +1 -1
  45. {agentcrew_ai-0.8.13.dist-info → agentcrew_ai-0.9.1.dist-info}/RECORD +49 -40
  46. {agentcrew_ai-0.8.13.dist-info → agentcrew_ai-0.9.1.dist-info}/WHEEL +1 -1
  47. AgentCrew/modules/gui/themes/atom_light.py +0 -1365
  48. AgentCrew/modules/gui/themes/catppuccin.py +0 -1404
  49. AgentCrew/modules/gui/themes/dracula.py +0 -1372
  50. AgentCrew/modules/gui/themes/nord.py +0 -1365
  51. AgentCrew/modules/gui/themes/saigontech.py +0 -1359
  52. AgentCrew/modules/gui/themes/unicorn.py +0 -1372
  53. {agentcrew_ai-0.8.13.dist-info → agentcrew_ai-0.9.1.dist-info}/entry_points.txt +0 -0
  54. {agentcrew_ai-0.8.13.dist-info → agentcrew_ai-0.9.1.dist-info}/licenses/LICENSE +0 -0
  55. {agentcrew_ai-0.8.13.dist-info → agentcrew_ai-0.9.1.dist-info}/top_level.txt +0 -0
@@ -1,1404 +0,0 @@
1
- """Catppuccin theme styles for AgentCrew GUI."""
2
-
3
-
4
- class CatppuccinTheme:
5
- """Static class containing Catppuccin theme styles."""
6
-
7
- # Main application styles
8
- MAIN_STYLE = """
9
- QMainWindow {
10
- background-color: #1e1e2e; /* Catppuccin Base */
11
- }
12
- QScrollArea {
13
- border: none;
14
- background-color: #181825; /* Catppuccin Mantle */
15
- }
16
- QWidget#chatContainer { /* Specific ID for chat_container */
17
- background-color: #1e1e2e; /* Catppuccin Mantle */
18
- }
19
- QSplitter::handle {
20
- background-color: #313244; /* Catppuccin Surface0 */
21
- }
22
- QSplitter::handle:hover {
23
- background-color: #45475a; /* Catppuccin Surface1 */
24
- }
25
- QSplitter::handle:pressed {
26
- background-color: #585b70; /* Catppuccin Surface2 */
27
- }
28
- QStatusBar {
29
- background-color: #11111b; /* Catppuccin Crust */
30
- color: #cdd6f4; /* Catppuccin Text */
31
- }
32
- QToolTip {
33
- background-color: #313244; /* Catppuccin Surface0 */
34
- color: #cdd6f4; /* Catppuccin Text */
35
- border: 1px solid #45475a; /* Catppuccin Surface1 */
36
- padding: 4px;
37
- }
38
- QMessageBox {
39
- background-color: #181825; /* Catppuccin Mantle */
40
- }
41
- QMessageBox QLabel { /* For message text in QMessageBox */
42
- color: #cdd6f4; /* Catppuccin Text */
43
- background-color: transparent; /* Ensure no overriding background */
44
- }
45
- /* QCompleter's popup is often a QListView */
46
- QListView { /* General style for QListView, affects completer */
47
- background-color: #313244; /* Catppuccin Surface0 */
48
- color: #cdd6f4; /* Catppuccin Text */
49
- border: 1px solid #45475a; /* Catppuccin Surface1 */
50
- padding: 2px;
51
- outline: 0px; /* Remove focus outline if not desired */
52
- }
53
- QListView::item {
54
- padding: 4px 8px;
55
- border-radius: 2px; /* Optional: rounded corners for items */
56
- }
57
- QListView::item:selected {
58
- background-color: #585b70; /* Catppuccin Surface2 */
59
- color: #b4befe; /* Catppuccin Lavender */
60
- }
61
- QListView::item:hover {
62
- background-color: #45475a; /* Catppuccin Surface1 */
63
- }
64
-
65
- /* Modern Scrollbar Styles */
66
- QScrollBar:vertical {
67
- border: none;
68
- background: #181825; /* Catppuccin Mantle - Track background */
69
- width: 10px; /* Adjust width for a thinner scrollbar */
70
- margin: 0px 0px 0px 0px;
71
- }
72
- QScrollBar::handle:vertical {
73
- background: #45475a; /* Catppuccin Surface1 - Handle color */
74
- min-height: 20px; /* Minimum handle size */
75
- border-radius: 5px; /* Rounded corners for the handle */
76
- }
77
- QScrollBar::handle:vertical:hover {
78
- background: #585b70; /* Catppuccin Surface2 - Handle hover color */
79
- }
80
- QScrollBar::handle:vertical:pressed {
81
- background: #6c7086; /* Catppuccin Overlay0 - Handle pressed color */
82
- }
83
- QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical {
84
- border: none;
85
- background: none; /* Hide arrow buttons */
86
- height: 0px;
87
- subcontrol-position: top;
88
- subcontrol-origin: margin;
89
- }
90
- QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
91
- background: none; /* Track area above/below handle */
92
- }
93
-
94
- QScrollBar:horizontal {
95
- border: none;
96
- background: #181825; /* Catppuccin Mantle - Track background */
97
- height: 10px; /* Adjust height for a thinner scrollbar */
98
- margin: 0px 0px 0px 0px;
99
- }
100
- QScrollBar::handle:horizontal {
101
- background: #45475a; /* Catppuccin Surface1 - Handle color */
102
- min-width: 20px; /* Minimum handle size */
103
- border-radius: 5px; /* Rounded corners for the handle */
104
- }
105
- QScrollBar::handle:horizontal:hover {
106
- background: #585b70; /* Catppuccin Surface2 - Handle hover color */
107
- }
108
- QScrollBar::handle:horizontal:pressed {
109
- background: #6c7086; /* Catppuccin Overlay0 - Handle pressed color */
110
- }
111
- QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal {
112
- border: none;
113
- background: none; /* Hide arrow buttons */
114
- width: 0px;
115
- subcontrol-position: left;
116
- subcontrol-origin: margin;
117
- }
118
- QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {
119
- background: none; /* Track area left/right of handle */
120
- }
121
-
122
- /* Context menu styling for QLabel widgets */
123
- QLabel QMenu {
124
- background-color: #181825; /* Catppuccin Mantle */
125
- border: 1px solid #45475a; /* Catppuccin Surface1 */
126
- padding: 4px;
127
- border-radius: 6px;
128
- }
129
- QLabel QMenu::item {
130
- color: #f8f8f2; /* Brighter text color */
131
- padding: 8px 24px 8px 12px;
132
- border-radius: 4px;
133
- margin: 2px;
134
- }
135
- QLabel QMenu::item:selected {
136
- background-color: #45475a; /* Catppuccin Surface1 */
137
- color: #ffffff; /* Pure white for selected items */
138
- }
139
- QLabel QMenu::item:pressed {
140
- background-color: #585b70; /* Catppuccin Surface2 */
141
- }
142
- QLabel QMenu::separator {
143
- height: 1px;
144
- background: #45475a; /* Catppuccin Surface1 */
145
- margin: 4px 8px;
146
- }
147
- """
148
-
149
- # Button styles
150
- PRIMARY_BUTTON = """
151
- QPushButton {
152
- background-color: #89b4fa; /* Catppuccin Blue */
153
- color: #1e1e2e; /* Catppuccin Base (for contrast) */
154
- border: none;
155
- border-radius: 4px;
156
- padding: 8px;
157
- font-weight: bold;
158
- }
159
- QPushButton:hover {
160
- background-color: #74c7ec; /* Catppuccin Sapphire */
161
- }
162
- QPushButton:pressed {
163
- background-color: #b4befe; /* Catppuccin Lavender */
164
- }
165
- QPushButton:disabled {
166
- background-color: #45475a; /* Catppuccin Surface1 */
167
- color: #6c7086; /* Catppuccin Overlay0 */
168
- }
169
- """
170
-
171
- SECONDARY_BUTTON = """
172
- QPushButton {
173
- background-color: #585b70; /* Catppuccin Surface2 */
174
- color: #cdd6f4; /* Catppuccin Text */
175
- border: none;
176
- border-radius: 4px;
177
- padding: 8px;
178
- font-weight: bold;
179
- }
180
- QPushButton:hover {
181
- background-color: #6c7086; /* Catppuccin Overlay0 */
182
- }
183
- QPushButton:pressed {
184
- background-color: #7f849c; /* Catppuccin Overlay1 */
185
- }
186
- QPushButton:disabled {
187
- background-color: #45475a; /* Catppuccin Surface1 */
188
- color: #6c7086; /* Catppuccin Overlay0 */
189
- }
190
- """
191
-
192
- STOP_BUTTON = """
193
- QPushButton {
194
- background-color: #f38ba8; /* Catppuccin Red */
195
- color: #1e1e2e; /* Catppuccin Base (for contrast) */
196
- border: none;
197
- border-radius: 4px;
198
- padding: 8px;
199
- font-weight: bold;
200
- }
201
- QPushButton:hover {
202
- background-color: #eba0ac; /* Catppuccin Maroon */
203
- }
204
- QPushButton:pressed {
205
- background-color: #f5c2e7; /* Catppuccin Pink */
206
- }
207
- """
208
-
209
- RED_BUTTON = """
210
- QPushButton {
211
- background-color: #f38ba8; /* Catppuccin Red */
212
- color: #1e1e2e; /* Catppuccin Base (for contrast) */
213
- border: none;
214
- border-radius: 4px;
215
- padding: 8px;
216
- font-weight: bold;
217
- }
218
- QPushButton:hover {
219
- background-color: #eba0ac; /* Catppuccin Maroon (lighter red for hover) */
220
- }
221
- QPushButton:pressed {
222
- background-color: #e67e8a; /* A slightly darker/more intense red for pressed */
223
- }
224
- QPushButton:disabled {
225
- background-color: #45475a; /* Catppuccin Surface1 */
226
- color: #6c7086; /* Catppuccin Overlay0 */
227
- }
228
- """
229
-
230
- GREEN_BUTTON = """
231
- QPushButton {
232
- background-color: #a6e3a1; /* Catppuccin Green */
233
- color: #1e1e2e; /* Catppuccin Base */
234
- border: none;
235
- border-radius: 4px;
236
- padding: 8px;
237
- font-weight: bold;
238
- }
239
- QPushButton:hover {
240
- background-color: #94e2d5; /* Catppuccin Teal - lighter green for hover */
241
- }
242
- QPushButton:pressed {
243
- background-color: #8bd5ca; /* Slightly darker for pressed state */
244
- }
245
- QPushButton:disabled {
246
- background-color: #45475a; /* Catppuccin Surface1 */
247
- color: #6c7086; /* Catppuccin Overlay0 */
248
- }
249
- """
250
-
251
- API_KEYS_GROUP = """
252
- QGroupBox {
253
- background-color: #1e1e2e; /* Catppuccin Base */
254
- }
255
- QLabel {
256
- background-color: #1e1e2e;
257
- }
258
- """
259
-
260
- EDITOR_CONTAINER_WIDGET = """
261
- QWidget {
262
- background-color: #181825; /* Catppuccin Mantle */
263
- }
264
- """
265
-
266
- MENU_BUTTON = """
267
- QPushButton {
268
- background-color: #89b4fa; /* Catppuccin Blue */
269
- color: #1e1e2e; /* Catppuccin Base */
270
- border: none;
271
- border-radius: 4px;
272
- padding: 8px;
273
- font-weight: bold;
274
- padding-left: 12px; /* Add some padding for text */
275
- }
276
- QPushButton:hover {
277
- background-color: #74c7ec; /* Catppuccin Sapphire */
278
- }
279
- QPushButton:pressed {
280
- background-color: #b4befe; /* Catppuccin Lavender */
281
- }
282
- QPushButton:disabled {
283
- background-color: #45475a; /* Catppuccin Surface1 */
284
- color: #6c7086; /* Catppuccin Overlay0 */
285
- }
286
- QPushButton::menu-indicator {
287
- /* image: url(myindicator.png); Adjust if using a custom image */
288
- subcontrol-origin: padding;
289
- subcontrol-position: right center;
290
- right: 5px; /* Adjust as needed to position from the right edge */
291
- width: 16px; /* Ensure there's enough space for the indicator */
292
- }
293
- """
294
-
295
- DISABLED_BUTTON = """
296
- QPushButton {
297
- background-color: #45475a; /* Catppuccin Surface1 */
298
- color: #6c7086; /* Catppuccin Overlay0 */
299
- border: none;
300
- border-radius: 4px;
301
- padding: 8px;
302
- font-weight: bold;
303
- }
304
- """
305
-
306
- STOP_BUTTON_STOPPING = """
307
- QPushButton {
308
- background-color: #6c7086; /* Catppuccin Overlay0 - More grey/disabled look */
309
- color: #9399b2; /* Catppuccin Subtext1 - Muted text */
310
- border: none;
311
- border-radius: 4px;
312
- padding: 8px;
313
- font-weight: bold;
314
- }
315
- """
316
-
317
- COMBO_BOX = """
318
- QComboBox {
319
- background-color: #313244; /* Catppuccin Surface0 */
320
- color: #cdd6f4; /* Catppuccin Text */
321
- border: 1px solid #45475a; /* Catppuccin Surface1 */
322
- border-radius: 4px;
323
- padding: 6px 8px;
324
- min-width: 120px;
325
- }
326
- QComboBox:hover {
327
- border: 1px solid #585b70; /* Catppuccin Surface2 */
328
- }
329
- QComboBox:focus {
330
- border: 1px solid #89b4fa; /* Catppuccin Blue */
331
- }
332
- QComboBox::drop-down {
333
- subcontrol-origin: padding;
334
- subcontrol-position: top right;
335
- width: 20px;
336
- border-left-width: 1px;
337
- border-left-color: #45475a; /* Catppuccin Surface1 */
338
- border-left-style: solid;
339
- border-top-right-radius: 4px;
340
- border-bottom-right-radius: 4px;
341
- background-color: #45475a; /* Catppuccin Surface1 */
342
- }
343
- QComboBox::down-arrow {
344
- width: 0;
345
- height: 0;
346
- border-left: 4px solid transparent;
347
- border-right: 4px solid transparent;
348
- border-top: 6px solid #cdd6f4; /* Catppuccin Text */
349
- }
350
- QComboBox QAbstractItemView {
351
- background-color: #313244; /* Catppuccin Surface0 */
352
- color: #cdd6f4; /* Catppuccin Text */
353
- border: 1px solid #45475a; /* Catppuccin Surface1 */
354
- border-radius: 4px;
355
- selection-background-color: #89b4fa; /* Catppuccin Blue */
356
- selection-color: #1e1e2e; /* Catppuccin Base */
357
- outline: 0px;
358
- }
359
- """
360
-
361
- # Input styles
362
- TEXT_INPUT = """
363
- QTextEdit {
364
- background-color: #313244; /* Catppuccin Surface0 */
365
- color: #cdd6f4; /* Catppuccin Text */
366
- border: 1px solid #45475a; /* Catppuccin Surface1 */
367
- border-radius: 4px;
368
- padding: 8px;
369
- }
370
- QTextEdit:focus {
371
- border: 1px solid #89b4fa; /* Catppuccin Blue */
372
- }
373
- """
374
-
375
- LINE_EDIT = """
376
- QLineEdit {
377
- background-color: #313244; /* Catppuccin Surface0 */
378
- color: #cdd6f4; /* Catppuccin Text */
379
- border: 1px solid #45475a; /* Catppuccin Surface1 */
380
- border-radius: 4px;
381
- padding: 8px;
382
- }
383
- QLineEdit:focus {
384
- border: 1px solid #89b4fa; /* Catppuccin Blue */
385
- }
386
- """
387
-
388
- # Menu styles
389
- MENU_BAR = """
390
- QMenuBar {
391
- background-color: #181825; /* Catppuccin Base */
392
- color: #cdd6f4; /* Catppuccin Text */
393
- padding: 2px;
394
- }
395
- QMenuBar::item {
396
- background-color: transparent;
397
- color: #cdd6f4; /* Catppuccin Text */
398
- padding: 4px 12px;
399
- border-radius: 4px;
400
- }
401
- QMenuBar::item:selected { /* When menu is open or item is hovered */
402
- background-color: #313244; /* Catppuccin Surface0 */
403
- }
404
- QMenuBar::item:pressed { /* When menu item is pressed to open the menu */
405
- background-color: #45475a; /* Catppuccin Surface1 */
406
- }
407
- QMenu {
408
- background-color: #181825; /* Catppuccin Mantle */
409
- color: #cdd6f4; /* Catppuccin Text */
410
- border: 1px solid #45475a; /* Catppuccin Surface1 */
411
- padding: 4px;
412
- }
413
- QMenu::item {
414
- padding: 6px 24px 6px 12px;
415
- border-radius: 4px; /* Add border-radius to menu items */
416
- }
417
- QMenu::item:selected {
418
- background-color: #45475a; /* Catppuccin Surface1 */
419
- color: #b4befe; /* Catppuccin Lavender */
420
- }
421
- QMenu::separator {
422
- height: 1px;
423
- background: #45475a; /* Catppuccin Surface1 */
424
- margin-left: 10px;
425
- margin-right: 5px;
426
- }
427
- """
428
-
429
- CONTEXT_MENU = """
430
- QMenu {
431
- background-color: #181825; /* Catppuccin Mantle */
432
- color: #cdd6f4; /* Catppuccin Text */
433
- border: 1px solid #45475a; /* Catppuccin Surface1 */
434
- padding: 4px;
435
- border-radius: 6px;
436
- }
437
- QMenu::item {
438
- padding: 8px 24px 8px 12px;
439
- border-radius: 4px;
440
- margin: 2px;
441
- color: #f8f8f2; /* Brighter text color for better visibility */
442
- }
443
- QMenu::item:selected {
444
- background-color: #45475a; /* Catppuccin Surface1 */
445
- color: #ffffff; /* Pure white for selected items */
446
- }
447
- QMenu::item:pressed {
448
- background-color: #585b70; /* Catppuccin Surface2 */
449
- }
450
- QMenu::item:disabled {
451
- background-color: transparent;
452
- color: #6c7086; /* Catppuccin Overlay0 - muted color for disabled items */
453
- }
454
- QMenu::separator {
455
- height: 1px;
456
- background: #45475a; /* Catppuccin Surface1 */
457
- margin: 4px 8px;
458
- }
459
- """
460
-
461
- AGENT_MENU = """
462
- QMenu {
463
- background-color: #181825; /* Catppuccin Mantle */
464
- color: #cdd6f4; /* Catppuccin Text */
465
- border: 1px solid #313244; /* Catppuccin Surface0 */
466
- border-radius: 4px;
467
- padding: 4px;
468
- }
469
- QMenu::item {
470
- padding: 6px 20px;
471
- background-color: transparent;
472
- }
473
- QMenu::item:selected {
474
- background-color: #89b4fa; /* Catppuccin Blue */
475
- color: #1e1e2e; /* Catppuccin Base */
476
- border-radius: 3px;
477
- }
478
- QMenu::separator {
479
- height: 1px;
480
- background-color: #313244; /* Catppuccin Surface0 */
481
- margin-left: 5px;
482
- margin-right: 5px;
483
- }
484
- """
485
-
486
- # Label styles
487
- STATUS_INDICATOR = """
488
- QLabel {
489
- background-color: #313244; /* Catppuccin Surface0 */
490
- color: #cdd6f4; /* Catppuccin Text */
491
- padding: 8px;
492
- border-radius: 5px;
493
- font-weight: bold;
494
- }
495
- """
496
-
497
- VERSION_LABEL = """
498
- QLabel {
499
- color: #a6adc8; /* Catppuccin Subtext0 */
500
- padding: 2px 8px;
501
- font-size: 11px;
502
- }
503
- """
504
-
505
- SYSTEM_MESSAGE_TOGGLE_BUTTON = """
506
- QPushButton {
507
- background-color: transparent;
508
- color: #94e2d5; /* Catppuccin Teal */
509
- border: none;
510
- text-align: left;
511
- padding: 2px;
512
- }
513
- QPushButton:hover {
514
- color: #89dceb; /* Catppuccin Sky */
515
- }
516
- """
517
-
518
- # Widget-specific styles
519
- SIDEBAR = """
520
- background-color: #181825; /* Catppuccin Mantle */
521
- """
522
-
523
- CONVERSATION_LIST = """
524
- QListWidget {
525
- background-color: #1e1e2e; /* Catppuccin Base */
526
- border: 1px solid #313244; /* Catppuccin Surface0 */
527
- border-radius: 4px;
528
- }
529
- QListWidget::item {
530
- color: #cdd6f4; /* Catppuccin Text */
531
- background-color: #1e1e2e; /* Catppuccin Base */
532
- border: none; /* Remove individual item borders if not desired */
533
- border-bottom: 1px solid #313244; /* Surface0 for separator */
534
- margin: 0px; /* Remove margin if using border for separation */
535
- padding: 8px;
536
- }
537
- /* QListWidget::item:alternate { */ /* Remove if not using alternating */
538
- /* background-color: #1a1a2e; */ /* Slightly different base if needed */
539
- /* } */
540
- QListWidget::item:selected {
541
- background-color: #45475a; /* Catppuccin Surface1 */
542
- color: #b4befe; /* Catppuccin Lavender */
543
- }
544
- QListWidget::item:hover:!selected {
545
- background-color: #313244; /* Catppuccin Surface0 */
546
- }
547
- """
548
-
549
- SEARCH_BOX = """
550
- QLineEdit {
551
- background-color: #313244; /* Catppuccin Surface0 */
552
- color: #cdd6f4; /* Catppuccin Text */
553
- border: 1px solid #45475a; /* Catppuccin Surface1 */
554
- border-radius: 4px;
555
- padding: 8px;
556
- }
557
- QLineEdit:focus {
558
- border: 1px solid #89b4fa; /* Catppuccin Blue */
559
- }
560
- """
561
-
562
- TOKEN_USAGE = """
563
- QLabel {
564
- color: #bac2de; /* Catppuccin Subtext1 */
565
- font-weight: bold;
566
- padding: 8px;
567
- background-color: #1e1e2e; /* Catppuccin Crust */
568
- border-top: 1px solid #313244; /* Catppuccin Surface0 for a subtle separator */
569
- }
570
- """
571
-
572
- TOKEN_USAGE_WIDGET = """
573
- background-color: #11111b; /* Catppuccin Crust */
574
- """
575
-
576
- # Message bubble styles
577
- USER_BUBBLE = """
578
- QFrame {
579
- border-radius: 5px;
580
- background-color: #89b4fa; /* Catppuccin Blue */
581
- border: none;
582
- padding: 2px;
583
- }
584
- """
585
-
586
- ASSISTANT_BUBBLE = """
587
- QFrame {
588
- border-radius: 5px;
589
- background-color: #313244; /* Catppuccin Surface0 */
590
- border: none;
591
- padding: 2px;
592
- }
593
- """
594
-
595
- THINKING_BUBBLE = """
596
- QFrame {
597
- border-radius: 5px;
598
- background-color: #45475a; /* Catppuccin Surface1 */
599
- border: none;
600
- padding: 2px;
601
- }
602
- """
603
-
604
- CONSOLIDATED_BUBBLE = """
605
- QFrame {
606
- border-radius: 5px;
607
- background-color: #313244; /* Catppuccin Surface0 */
608
- border: 1px solid #45475a; /* Catppuccin Surface1 */
609
- padding: 2px;
610
- }
611
- """
612
-
613
- ROLLBACK_BUTTON = """
614
- QPushButton {
615
- background-color: #b4befe; /* Catppuccin Lavender */
616
- color: #1e1e2e; /* Catppuccin Base */
617
- border: none;
618
- border-radius: 15px;
619
- padding: 8px;
620
- font-size: 24px;
621
- font-weight: bold;
622
- width: 30px;
623
- height: 30px;
624
- }
625
- QPushButton:hover {
626
- background-color: #cba6f7; /* Catppuccin Mauve */
627
- }
628
- QPushButton:pressed {
629
- background-color: #f5c2e7; /* Catppuccin Pink */
630
- }
631
- """
632
-
633
- CONSOLIDATED_BUTTON = """
634
- QPushButton {
635
- background-color: #b4befe; /* Catppuccin Lavender */
636
- color: #1e1e2e; /* Catppuccin Base */
637
- border: none;
638
- border-radius: 15px;
639
- padding: 8px;
640
- font-size: 16px;
641
- font-weight: bold;
642
- width: 30px;
643
- height: 30px;
644
- }
645
- QPushButton:hover {
646
- background-color: #cba6f7; /* Catppuccin Mauve */
647
- }
648
- QPushButton:pressed {
649
- background-color: #f5c2e7; /* Catppuccin Pink */
650
- }
651
- """
652
-
653
- UNCONSOLIDATE_BUTTON = """
654
- QPushButton {
655
- background-color: #6c7086; /* Catppuccin Overlay1 */
656
- color: #cdd6f4; /* Catppuccin Text */
657
- border: none;
658
- border-radius: 15px;
659
- padding: 8px;
660
- font-size: 16px;
661
- font-weight: bold;
662
- width: 30px;
663
- height: 30px;
664
- }
665
- QPushButton:hover {
666
- background-color: #f38ba8; /* Catppuccin Red for undo action */
667
- }
668
- QPushButton:pressed {
669
- background-color: #eba0ac; /* Catppuccin Maroon */
670
- }
671
- """
672
-
673
- # Tool dialog styles
674
- TOOL_DIALOG_TEXT_EDIT = """
675
- QTextEdit {
676
- background-color: #313244; /* Catppuccin Surface0 */
677
- color: #cdd6f4; /* Catppuccin Text */
678
- border: 1px solid #45475a; /* Catppuccin Surface1 */
679
- border-radius: 4px;
680
- padding: 8px;
681
- font-family: monospace;
682
- }
683
- QTextEdit:focus {
684
- border: 1px solid #89b4fa; /* Catppuccin Blue */
685
- }
686
- """
687
-
688
- TOOL_DIALOG_YES_BUTTON = """
689
- QPushButton {
690
- background-color: #a6e3a1; /* Catppuccin Green */
691
- color: #1e1e2e; /* Catppuccin Base */
692
- font-weight: bold;
693
- padding: 6px 14px;
694
- border: none;
695
- border-radius: 4px;
696
- }
697
- QPushButton:hover {
698
- background-color: #94e2d5; /* Catppuccin Teal */
699
- }
700
- """
701
-
702
- TOOL_DIALOG_ALL_BUTTON = """
703
- QPushButton {
704
- background-color: #89b4fa; /* Catppuccin Blue */
705
- color: #1e1e2e; /* Catppuccin Base */
706
- font-weight: bold;
707
- padding: 6px 14px;
708
- border: none;
709
- border-radius: 4px;
710
- }
711
- QPushButton:hover {
712
- background-color: #74c7ec; /* Catppuccin Sapphire */
713
- }
714
- """
715
-
716
- TOOL_DIALOG_NO_BUTTON = """
717
- QPushButton {
718
- background-color: #f38ba8; /* Catppuccin Red */
719
- color: #1e1e2e; /* Catppuccin Base */
720
- font-weight: bold;
721
- padding: 6px 14px;
722
- border: none;
723
- border-radius: 4px;
724
- }
725
- QPushButton:hover {
726
- background-color: #eba0ac; /* Catppuccin Maroon */
727
- }
728
- """
729
-
730
- # Additional button styles
731
- RED_BUTTON = """
732
- QPushButton {
733
- background-color: #f38ba8; /* Catppuccin Red */
734
- color: #1e1e2e; /* Catppuccin Base (for contrast) */
735
- border: none;
736
- border-radius: 4px;
737
- padding: 8px;
738
- font-weight: bold;
739
- }
740
- QPushButton:hover {
741
- background-color: #eba0ac; /* Catppuccin Maroon (lighter red for hover) */
742
- }
743
- QPushButton:pressed {
744
- background-color: #e67e8a; /* A slightly darker/more intense red for pressed */
745
- }
746
- QPushButton:disabled {
747
- background-color: #45475a; /* Catppuccin Surface1 */
748
- color: #6c7086; /* Catppuccin Overlay0 */
749
- }
750
- """
751
-
752
- GREEN_BUTTON = """
753
- QPushButton {
754
- background-color: #a6e3a1; /* Catppuccin Green */
755
- color: #1e1e2e; /* Catppuccin Base */
756
- border: none;
757
- border-radius: 4px;
758
- padding: 8px;
759
- font-weight: bold;
760
- }
761
- QPushButton:hover {
762
- background-color: #94e2d5; /* Catppuccin Teal - lighter green for hover */
763
- }
764
- QPushButton:pressed {
765
- background-color: #8bd5ca; /* Slightly darker for pressed state */
766
- }
767
- QPushButton:disabled {
768
- background-color: #45475a; /* Catppuccin Surface1 */
769
- color: #6c7086; /* Catppuccin Overlay0 */
770
- }
771
- """
772
-
773
- AGENT_MENU_BUTTON = """
774
- QPushButton {
775
- background-color: #89b4fa; /* Catppuccin Blue */
776
- color: #1e1e2e; /* Catppuccin Base */
777
- border: none;
778
- border-radius: 4px;
779
- padding: 8px;
780
- font-weight: bold;
781
- padding-left: 12px; /* Add some padding for text */
782
- }
783
- QPushButton:hover {
784
- background-color: #74c7ec; /* Catppuccin Sapphire */
785
- }
786
- QPushButton:pressed {
787
- background-color: #b4befe; /* Catppuccin Lavender */
788
- }
789
- QPushButton:disabled {
790
- background-color: #45475a; /* Catppuccin Surface1 */
791
- color: #6c7086; /* Catppuccin Overlay0 */
792
- }
793
- QPushButton::menu-indicator {
794
- subcontrol-origin: padding;
795
- subcontrol-position: right center;
796
- right: 5px;
797
- width: 16px;
798
- }
799
- """
800
-
801
- # Widget-specific styles
802
- SYSTEM_MESSAGE_LABEL = """
803
- color: #a6adc8; /* Catppuccin Subtext0 */
804
- padding: 2px;
805
- """
806
-
807
- SYSTEM_MESSAGE_TOGGLE = """
808
- QPushButton {
809
- background-color: transparent;
810
- color: #94e2d5; /* Catppuccin Teal */
811
- border: none;
812
- text-align: left;
813
- padding: 2px;
814
- }
815
- QPushButton:hover {
816
- color: #89dceb; /* Catppuccin Sky */
817
- }
818
- """
819
-
820
- # Config window styles
821
- CONFIG_DIALOG = """
822
- QDialog {
823
- background-color: #1e1e2e; /* Catppuccin Base */
824
- color: #cdd6f4; /* Catppuccin Text */
825
- }
826
- QTabWidget::pane {
827
- border: 1px solid #313244; /* Catppuccin Surface0 */
828
- background-color: #181825; /* Catppuccin Mantle */
829
- border-radius: 4px;
830
- }
831
- QTabBar::tab {
832
- background-color: #313244; /* Catppuccin Surface0 */
833
- color: #cdd6f4; /* Catppuccin Text */
834
- padding: 8px;
835
- border-top-left-radius: 4px;
836
- border-top-right-radius: 4px;
837
- border: 1px solid #45475a; /* Catppuccin Surface1 */
838
- border-bottom: none;
839
- margin-right: 2px;
840
- }
841
- QTabBar::tab:selected {
842
- background-color: #181825; /* Catppuccin Mantle (same as pane) */
843
- border-bottom-color: #181825; /* Catppuccin Mantle */
844
- color: #b4befe; /* Catppuccin Lavender for selected tab text */
845
- }
846
- QTabBar::tab:hover:!selected {
847
- background-color: #45475a; /* Catppuccin Surface1 */
848
- }
849
- QPushButton {
850
- background-color: #89b4fa; /* Catppuccin Blue */
851
- color: #1e1e2e; /* Catppuccin Base */
852
- border: none;
853
- border-radius: 4px;
854
- padding: 8px;
855
- font-weight: bold;
856
- }
857
- QPushButton:hover {
858
- background-color: #74c7ec; /* Catppuccin Sapphire */
859
- }
860
- QPushButton:pressed {
861
- background-color: #b4befe; /* Catppuccin Lavender */
862
- }
863
- QPushButton:disabled {
864
- background-color: #45475a; /* Catppuccin Surface1 */
865
- color: #6c7086; /* Catppuccin Overlay0 */
866
- }
867
- QListWidget {
868
- background-color: #1e1e2e; /* Catppuccin Base */
869
- border: 1px solid #313244; /* Catppuccin Surface0 */
870
- border-radius: 4px;
871
- padding: 4px;
872
- color: #cdd6f4; /* Catppuccin Text */
873
- }
874
- QListWidget::item {
875
- padding: 6px;
876
- border-radius: 2px;
877
- color: #cdd6f4; /* Catppuccin Text */
878
- background-color: #1e1e2e; /* Catppuccin Base */
879
- }
880
- QListWidget::item:selected {
881
- background-color: #45475a; /* Catppuccin Surface1 */
882
- color: #b4befe; /* Catppuccin Lavender */
883
- }
884
- QListWidget::item:hover:!selected {
885
- background-color: #313244; /* Catppuccin Surface0 */
886
- }
887
- QLineEdit, QTextEdit {
888
- border: 1px solid #45475a; /* Catppuccin Surface1 */
889
- border-radius: 4px;
890
- padding: 6px;
891
- background-color: #313244; /* Catppuccin Surface0 */
892
- color: #cdd6f4; /* Catppuccin Text */
893
- }
894
- QLineEdit:focus, QTextEdit:focus {
895
- border: 1px solid #89b4fa; /* Catppuccin Blue */
896
- }
897
- QCheckBox {
898
- spacing: 8px;
899
- color: #cdd6f4; /* Catppuccin Text */
900
- }
901
- QCheckBox::indicator {
902
- width: 18px;
903
- height: 18px;
904
- border-radius: 3px;
905
- background-color: #45475a; /* Catppuccin Surface1 */
906
- border: 2px solid #585b70; /* Catppuccin Surface2 */
907
- }
908
- QCheckBox::indicator:checked {
909
- background-color: #89b4fa; /* Catppuccin Blue */
910
- border: 2px solid #89b4fa; /* Catppuccin Blue */
911
- }
912
- QCheckBox::indicator:indeterminate {
913
- background-color: #f9e2af; /* Catppuccin Yellow - for partial state */
914
- border: 2px solid #f9e2af; /* Catppuccin Yellow */
915
- border-radius: 9px;
916
- }
917
- QCheckBox::indicator:hover {
918
- border: 2px solid #b4befe; /* Catppuccin Lavender */
919
- }
920
- QCheckBox::indicator:hover:checked {
921
- background-color: #74c7ec; /* Catppuccin Sapphire */
922
- border: 2px solid #74c7ec;
923
- }
924
- QCheckBox::indicator:hover:indeterminate {
925
- background-color: #f38ba8; /* Catppuccin Red on hover for amber state */
926
- border: 2px solid #f38ba8;
927
- }
928
- QCheckBox::indicator:disabled {
929
- background-color: #313244; /* Catppuccin Surface0 */
930
- border: 2px solid #45475a; /* Catppuccin Surface1 */
931
- }
932
- QGroupBox {
933
- font-weight: bold;
934
- border: 1px solid #45475a; /* Catppuccin Surface1 */
935
- border-radius: 4px;
936
- margin-top: 12px;
937
- padding-top: 12px; /* Ensure space for title */
938
- background-color: #181825; /* Catppuccin Mantle for groupbox background */
939
- }
940
- QGroupBox::title {
941
- subcontrol-origin: margin;
942
- subcontrol-position: top left; /* position at the top left */
943
- padding: 0 4px 4px 4px; /* padding for title */
944
- color: #b4befe; /* Catppuccin Lavender for title */
945
- background-color: #181825; /* Match groupbox background */
946
- left: 10px; /* Adjust to align with content */
947
- }
948
- QScrollArea {
949
- background-color: #181825; /* Catppuccin Mantle */
950
- border: none;
951
- }
952
- /* Style for the QWidget inside QScrollArea if needed */
953
- QScrollArea > QWidget > QWidget { /* Target the editor_widget */
954
- background-color: #181825; /* Catppuccin Mantle */
955
- }
956
- QLabel {
957
- color: #cdd6f4; /* Catppuccin Text */
958
- padding: 2px; /* Add some padding to labels */
959
- }
960
- QSplitter::handle {
961
- background-color: #313244; /* Catppuccin Surface0 */
962
- }
963
- QSplitter::handle:hover {
964
- background-color: #45475a; /* Catppuccin Surface1 */
965
- }
966
- QSplitter::handle:pressed {
967
- background-color: #585b70; /* Catppuccin Surface2 */
968
- }
969
- """
970
-
971
- PANEL = """
972
- background-color: #181825; /* Catppuccin Mantle */
973
- """
974
-
975
- SCROLL_AREA = """
976
- background-color: #181825; /* Catppuccin Mantle */
977
- border: none;
978
- """
979
-
980
- EDITOR_WIDGET = """
981
- background-color: #181825; /* Catppuccin Mantle */
982
- """
983
-
984
- GROUP_BOX = """
985
- background-color: #1e1e2e; /* Catppuccin Base */
986
- """
987
-
988
- SPLITTER_COLOR = """
989
- QSplitter::handle {
990
- background-color: #181825; /* Darker color (Catppuccin Mantle) */
991
- }
992
- QSplitter::handle:hover {
993
- background-color: #313244; /* Catppuccin Surface0 */
994
- }
995
- QSplitter::handle:pressed {
996
- background-color: #45475a; /* Catppuccin Surface1 */
997
- }
998
- """
999
-
1000
- METADATA_HEADER_LABEL = """
1001
- QLabel {
1002
- color: #a6adc8; /* Catppuccin Subtext0 */
1003
- font-style: italic;
1004
- padding-bottom: 5px;
1005
- }
1006
- """
1007
-
1008
- # Message label styles
1009
- USER_MESSAGE_LABEL = """
1010
- QLabel {
1011
- color: #1e1e2e; /* Catppuccin Base */
1012
- }
1013
- """
1014
-
1015
- ASSISTANT_MESSAGE_LABEL = """
1016
- QLabel {
1017
- color: #cdd6f4; /* Catppuccin Text */
1018
- }
1019
- """
1020
-
1021
- THINKING_MESSAGE_LABEL = """
1022
- QLabel {
1023
- color: #bac2de; /* Catppuccin Subtext1 */
1024
- }
1025
- """
1026
-
1027
- # Sender label styles
1028
- USER_SENDER_LABEL = """
1029
- QLabel {
1030
- font-weight: bold;
1031
- color: #1e1e2e; /* Catppuccin Base */
1032
- padding: 2px;
1033
- }
1034
- """
1035
-
1036
- ASSISTANT_SENDER_LABEL = """
1037
- QLabel {
1038
- font-weight: bold;
1039
- color: #cdd6f4; /* Catppuccin Text */
1040
- padding: 2px;
1041
- }
1042
- """
1043
-
1044
- THINKING_SENDER_LABEL = """
1045
- QLabel {
1046
- font-weight: bold;
1047
- color: #bac2de; /* Catppuccin Subtext1 */
1048
- padding: 2px;
1049
- }
1050
- """
1051
-
1052
- # File display label styles
1053
- USER_FILE_NAME_LABEL = """
1054
- QLabel {
1055
- font-weight: bold;
1056
- color: #1e1e2e; /* Catppuccin Base */
1057
- padding-left: 10px;
1058
- }
1059
- """
1060
-
1061
- ASSISTANT_FILE_NAME_LABEL = """
1062
- QLabel {
1063
- font-weight: bold;
1064
- color: #cdd6f4; /* Catppuccin Text */
1065
- padding-left: 10px;
1066
- }
1067
- """
1068
-
1069
- USER_FILE_INFO_LABEL = """
1070
- QLabel {
1071
- color: #313244; /* Catppuccin Surface0 - better contrast on blue background */
1072
- }
1073
- """
1074
-
1075
- ASSISTANT_FILE_INFO_LABEL = """
1076
- QLabel {
1077
- color: #6c7086; /* Catppuccin Overlay0 */
1078
- }
1079
- """
1080
-
1081
- CODE_CSS = """
1082
- table td {border: 1px solid #cdd6f4; padding: 5px;}
1083
- table { border-collapse: collapse; }
1084
- pre { line-height: 1; background-color: #181825; border-radius: 8px; padding: 12px; color: #cdd6f4; white-space: pre-wrap; word-wrap: break-word; } /* Mantle, Text */
1085
- td.linenos .normal { color: #6c7086; background-color: transparent; padding-left: 5px; padding-right: 5px; } /* Overlay0 */
1086
- span.linenos { color: #6c7086; background-color: transparent; padding-left: 5px; padding-right: 5px; } /* Overlay0 */
1087
- td.linenos .special { color: #cdd6f4; background-color: #313244; padding-left: 5px; padding-right: 5px; } /* Text, Surface0 */
1088
- span.linenos.special { color: #cdd6f4; background-color: #313244; padding-left: 5px; padding-right: 5px; } /* Text, Surface0 */
1089
- .codehilite .hll { background-color: #313244 } /* Surface0 */
1090
- .codehilite { background: #181825; border-radius: 8px; padding: 10px; color: #cdd6f4; } /* Mantle, Text */
1091
- .codehilite .c { color: #6c7086; font-style: italic } /* Comment -> Overlay0 */
1092
- .codehilite .err { border: 1px solid #f38ba8; color: #f38ba8; } /* Error -> Red */
1093
- .codehilite .k { color: #cba6f7; font-weight: bold } /* Keyword -> Mauve */
1094
- .codehilite .o { color: #94e2d5 } /* Operator -> Teal */
1095
- .codehilite .ch { color: #6c7086; font-style: italic } /* Comment.Hashbang -> Overlay0 */
1096
- .codehilite .cm { color: #6c7086; font-style: italic } /* Comment.Multiline -> Overlay0 */
1097
- .codehilite .cp { color: #f9e2af } /* Comment.Preproc -> Yellow */
1098
- .codehilite .cpf { color: #6c7086; font-style: italic } /* Comment.PreprocFile -> Overlay0 */
1099
- .codehilite .c1 { color: #6c7086; font-style: italic } /* Comment.Single -> Overlay0 */
1100
- .codehilite .cs { color: #6c7086; font-style: italic } /* Comment.Special -> Overlay0 */
1101
- .codehilite .gd { color: #f38ba8 } /* Generic.Deleted -> Red */
1102
- .codehilite .ge { font-style: italic } /* Generic.Emph */
1103
- .codehilite .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
1104
- .codehilite .gr { color: #f38ba8 } /* Generic.Error -> Red */
1105
- .codehilite .gh { color: #89b4fa; font-weight: bold } /* Generic.Heading -> Blue */
1106
- .codehilite .gi { color: #a6e3a1 } /* Generic.Inserted -> Green */
1107
- .codehilite .go { color: #cdd6f4 } /* Generic.Output -> Text */
1108
- .codehilite .gp { color: #89b4fa; font-weight: bold } /* Generic.Prompt -> Blue */
1109
- .codehilite .gs { font-weight: bold } /* Generic.Strong */
1110
- .codehilite .gu { color: #89b4fa; font-weight: bold } /* Generic.Subheading -> Blue */
1111
- .codehilite .gt { color: #f38ba8 } /* Generic.Traceback -> Red */
1112
- .codehilite .kc { color: #cba6f7; font-weight: bold } /* Keyword.Constant -> Mauve */
1113
- .codehilite .kd { color: #cba6f7; font-weight: bold } /* Keyword.Declaration -> Mauve */
1114
- .codehilite .kn { color: #cba6f7; font-weight: bold } /* Keyword.Namespace -> Mauve */
1115
- .codehilite .kp { color: #cba6f7 } /* Keyword.Pseudo -> Mauve */
1116
- .codehilite .kr { color: #cba6f7; font-weight: bold } /* Keyword.Reserved -> Mauve */
1117
- .codehilite .kt { color: #fab387; font-weight: bold } /* Keyword.Type -> Peach */
1118
- .codehilite .m { color: #fab387 } /* Literal.Number -> Peach */
1119
- .codehilite .s { color: #a6e3a1 } /* Literal.String -> Green */
1120
- .codehilite .na { color: #89dceb } /* Name.Attribute -> Sky */
1121
- .codehilite .nb { color: #89b4fa } /* Name.Builtin -> Blue */
1122
- .codehilite .nc { color: #f9e2af; font-weight: bold } /* Name.Class -> Yellow */
1123
- .codehilite .no { color: #fab387 } /* Name.Constant -> Peach */
1124
- .codehilite .nd { color: #cba6f7 } /* Name.Decorator -> Mauve */
1125
- .codehilite .ni { color: #cdd6f4; font-weight: bold } /* Name.Entity -> Text */
1126
- .codehilite .ne { color: #f38ba8; font-weight: bold } /* Name.Exception -> Red */
1127
- .codehilite .nf { color: #89b4fa; font-weight: bold } /* Name.Function -> Blue */
1128
- .codehilite .nl { color: #cdd6f4 } /* Name.Label -> Text */
1129
- .codehilite .nn { color: #f9e2af; font-weight: bold } /* Name.Namespace -> Yellow */
1130
- .codehilite .nt { color: #cba6f7; font-weight: bold } /* Name.Tag -> Mauve */
1131
- .codehilite .nv { color: #f5e0dc } /* Name.Variable -> Rosewater */
1132
- .codehilite .ow { color: #94e2d5; font-weight: bold } /* Operator.Word -> Teal */
1133
- .codehilite .w { color: #45475a } /* Text.Whitespace -> Surface1 */
1134
- .codehilite .mb { color: #fab387 } /* Literal.Number.Bin -> Peach */
1135
- .codehilite .mf { color: #fab387 } /* Literal.Number.Float -> Peach */
1136
- .codehilite .mh { color: #fab387 } /* Literal.Number.Hex -> Peach */
1137
- .codehilite .mi { color: #fab387 } /* Literal.Number.Integer -> Peach */
1138
- .codehilite .mo { color: #fab387 } /* Literal.Number.Oct -> Peach */
1139
- .codehilite .sa { color: #a6e3a1 } /* Literal.String.Affix -> Green */
1140
- .codehilite .sb { color: #a6e3a1 } /* Literal.String.Backtick -> Green */
1141
- .codehilite .sc { color: #a6e3a1 } /* Literal.String.Char -> Green */
1142
- .codehilite .dl { color: #a6e3a1 } /* Literal.String.Delimiter -> Green */
1143
- .codehilite .sd { color: #6c7086; font-style: italic } /* Literal.String.Doc -> Overlay0 */
1144
- .codehilite .s2 { color: #a6e3a1 } /* Literal.String.Double -> Green */
1145
- .codehilite .se { color: #fab387; font-weight: bold } /* Literal.String.Escape -> Peach */
1146
- .codehilite .sh { color: #a6e3a1 } /* Literal.String.Heredoc -> Green */
1147
- .codehilite .si { color: #a6e3a1; font-weight: bold } /* Literal.String.Interpol -> Green */
1148
- .codehilite .sx { color: #a6e3a1 } /* Literal.String.Other -> Green */
1149
- .codehilite .sr { color: #a6e3a1 } /* Literal.String.Regex -> Green */
1150
- .codehilite .s1 { color: #a6e3a1 } /* Literal.String.Single -> Green */
1151
- .codehilite .ss { color: #a6e3a1 } /* Literal.String.Symbol -> Green */
1152
- .codehilite .bp { color: #89b4fa } /* Name.Builtin.Pseudo -> Blue */
1153
- .codehilite .fm { color: #89b4fa; font-weight: bold } /* Name.Function.Magic -> Blue */
1154
- .codehilite .vc { color: #f5e0dc } /* Name.Variable.Class -> Rosewater */
1155
- .codehilite .vg { color: #f5e0dc } /* Name.Variable.Global -> Rosewater */
1156
- .codehilite .vi { color: #f5e0dc } /* Name.Variable.Instance -> Rosewater */
1157
- .codehilite .vm { color: #f5e0dc } /* Name.Variable.Magic -> Rosewater */
1158
- .codehilite .il { color: #fab387 } /* Literal.Number.Integer.Long -> Peach */
1159
- """
1160
-
1161
- # Enhanced checkbox styles with tristate support
1162
- CHECKBOX_STYLE = """
1163
- QCheckBox {
1164
- spacing: 8px;
1165
- color: #cdd6f4; /* Catppuccin Text */
1166
- }
1167
- QCheckBox::indicator {
1168
- width: 18px;
1169
- height: 18px;
1170
- border-radius: 3px;
1171
- background-color: #45475a; /* Catppuccin Surface1 */
1172
- border: 2px solid #585b70; /* Catppuccin Surface2 */
1173
- }
1174
- QCheckBox::indicator:checked {
1175
- background-color: #89b4fa; /* Catppuccin Blue */
1176
- border: 2px solid #89b4fa; /* Catppuccin Blue */
1177
- }
1178
- QCheckBox::indicator:indeterminate {
1179
- background-color: #f9e2af; /* Catppuccin Yellow - for partial state */
1180
- border: 2px solid #f9e2af; /* Catppuccin Yellow */
1181
- border-radius: 9px;
1182
- }
1183
- QCheckBox::indicator:hover {
1184
- border: 2px solid #b4befe; /* Catppuccin Lavender */
1185
- }
1186
- QCheckBox::indicator:hover:checked {
1187
- background-color: #74c7ec; /* Catppuccin Sapphire */
1188
- border: 2px solid #74c7ec;
1189
- }
1190
- QCheckBox::indicator:hover:indeterminate {
1191
- background-color: #f38ba8; /* Catppuccin Red on hover for amber state */
1192
- border: 2px solid #f38ba8;
1193
- }
1194
- QCheckBox::indicator:disabled {
1195
- background-color: #313244; /* Catppuccin Surface0 */
1196
- border: 2px solid #45475a; /* Catppuccin Surface1 */
1197
- }
1198
- """
1199
-
1200
- # Tool widget styles
1201
- TOOL_WIDGET = """
1202
- QWidget {
1203
- background-color: transparent;
1204
- }
1205
- """
1206
-
1207
- TOOL_CARD = """
1208
- QFrame#toolCard {
1209
- border-radius: 6px; /* Reduced from 12px for subtlety */
1210
- background-color: rgba(137, 180, 250, 0.08); /* More subtle transparency */
1211
- border: 1px solid rgba(137, 180, 250, 0.4); /* Softer border */
1212
- padding: 1px; /* Minimal padding */
1213
- }
1214
- """
1215
-
1216
- TOOL_CARD_ERROR = """
1217
- QFrame#toolCard {
1218
- border-radius: 6px; /* Reduced from 12px for subtlety */
1219
- background-color: rgba(243, 139, 168, 0.08); /* More subtle transparency */
1220
- border: 1px solid rgba(243, 139, 168, 0.4); /* Softer border */
1221
- padding: 1px; /* Minimal padding */
1222
- }
1223
- """
1224
-
1225
- TOOL_HEADER = """
1226
- QLabel {
1227
- font-weight: 500; /* Lighter weight for subtlety */
1228
- color: #a6adc8; /* Subtext0 - more muted than full text */
1229
- }
1230
- """
1231
-
1232
- TOOL_TOGGLE_BUTTON = """
1233
- QPushButton {
1234
- background-color: transparent;
1235
- border: none;
1236
- color: #6c7086; /* More muted overlay color */
1237
- font-weight: normal; /* Reduced from bold */
1238
- font-size: 11px; /* Smaller font */
1239
- }
1240
- QPushButton:hover {
1241
- color: #89b4fa; /* Blue */
1242
- }
1243
- """
1244
-
1245
- TOOL_STATUS = """
1246
- QLabel {
1247
- font-weight: 500; /* Lighter than bold */
1248
- padding: 2px; /* Reduced padding */
1249
- font-size: 11px; /* Smaller status text */
1250
- }
1251
- QLabel[status="running"] {
1252
- color: #f9e2af; /* Yellow */
1253
- }
1254
- QLabel[status="complete"] {
1255
- color: #a6e3a1; /* Green */
1256
- }
1257
- QLabel[status="error"] {
1258
- color: #f38ba8; /* Red */
1259
- }
1260
- """
1261
-
1262
- TOOL_CONTENT = """
1263
- QLabel {
1264
- color: #bac2de; /* Subtext1 - more muted */
1265
- padding: 1px; /* Minimal padding */
1266
- font-size: 11px; /* Smaller content text */
1267
- }
1268
- QLabel[role="title"] {
1269
- font-weight: 500; /* Lighter than bold */
1270
- color: #bac2de; /* Subtext1 */
1271
- font-size: 12px;
1272
- }
1273
- QLabel[role="key"] {
1274
- color: #74c7ec; /* Sapphire - more subtle than blue */
1275
- font-weight: 500;
1276
- font-size: 11px;
1277
- }
1278
- QLabel[role="value"] {
1279
- color: #9399b2; /* Subtext0 - more muted */
1280
- font-size: 11px;
1281
- }
1282
- QLabel[role="error"] {
1283
- color: #f38ba8; /* Red for error messages */
1284
- font-size: 11px;
1285
- }
1286
- """
1287
-
1288
- TOOL_PROGRESS = """
1289
- QProgressBar {
1290
- border: none;
1291
- background-color: rgba(69, 71, 90, 0.4); /* Surface1 with transparency */
1292
- border-radius: 5px;
1293
- text-align: center;
1294
- }
1295
- QProgressBar::chunk {
1296
- background-color: #89b4fa; /* Blue */
1297
- border-radius: 5px;
1298
- }
1299
- """
1300
-
1301
- TOOL_SEPARATOR = """
1302
- QFrame {
1303
- background-color: rgba(137, 180, 250, 0.3); /* Blue with transparency */
1304
- border: none;
1305
- }
1306
- """
1307
-
1308
- # Tool icons (consistent across all themes)
1309
- TOOL_ICONS = {
1310
- "web_search": "🔍",
1311
- "fetch_webpage": "🌐",
1312
- "transfer": "↗️",
1313
- "adapt": "🧠",
1314
- "retrieve_memory": "💭",
1315
- "forget_memory_topic": "🗑️",
1316
- "read_repo": "📂",
1317
- "get_file": "📄",
1318
- "default": "🔧", # Default icon for unspecified tools
1319
- }
1320
-
1321
- # Diff Widget colors
1322
- DIFF_COLORS = {
1323
- "background": "#1e1e2e", # Base
1324
- "panel_bg": "#313244", # Surface0
1325
- "header_bg": "#45475a", # Surface1
1326
- "header_text": "#cdd6f4", # Text
1327
- "line_number_bg": "#181825", # Mantle
1328
- "line_number_text": "#6c7086", # Overlay0
1329
- "removed_bg": "#3b2d33", # Subtle red background
1330
- "removed_text": "#f38ba8", # Red
1331
- "removed_highlight": "#f38ba8", # Red for character highlight
1332
- "added_bg": "#2d3b33", # Subtle green background
1333
- "added_text": "#a6e3a1", # Green
1334
- "added_highlight": "#a6e3a1", # Green for character highlight
1335
- "unchanged_text": "#6c7086", # Overlay0
1336
- "border": "#45475a", # Surface1
1337
- "block_header_bg": "#585b70", # Surface2
1338
- "block_header_text": "#b4befe", # Lavender
1339
- }
1340
-
1341
- # JSON Editor styles
1342
- JSON_EDITOR_COLORS = {
1343
- "background": "#313244", # Surface0
1344
- "text": "#cdd6f4", # Text
1345
- "border": "#45475a", # Surface1
1346
- "string": "#a6e3a1", # Green
1347
- "number": "#fab387", # Peach
1348
- "keyword": "#cba6f7", # Mauve
1349
- "punctuation": "#cdd6f4", # Text
1350
- "error": "#f38ba8", # Red
1351
- }
1352
-
1353
- JSON_EDITOR_STYLE = """
1354
- QPlainTextEdit {
1355
- background-color: #313244; /* Surface0 */
1356
- color: #cdd6f4; /* Text */
1357
- border: 1px solid #45475a; /* Surface1 */
1358
- border-radius: 4px;
1359
- padding: 8px;
1360
- font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
1361
- font-size: 12px;
1362
- line-height: 1.4;
1363
- }
1364
- QPlainTextEdit:focus {
1365
- border: 1px solid #89b4fa; /* Blue focus border */
1366
- }
1367
- """
1368
-
1369
- # Markdown Editor styles
1370
- MARKDOWN_EDITOR_COLORS = {
1371
- "background": "#313244", # Surface0
1372
- "text": "#cdd6f4", # Text
1373
- "border": "#45475a", # Surface1
1374
- "header": "#89b4fa", # Blue - for headers
1375
- "bold": "#fab387", # Peach - for bold text
1376
- "italic": "#a6e3a1", # Green - for italic text
1377
- "code": "#f5c2e7", # Pink - for code blocks
1378
- "code_background": "#45475a", # Surface1 - code background
1379
- "link": "#74c7ec", # Sapphire - for links
1380
- "image": "#cba6f7", # Mauve - for images
1381
- "list": "#f9e2af", # Yellow - for list markers
1382
- "blockquote": "#94e2d5", # Teal - for blockquotes
1383
- "hr": "#6c7086", # Overlay0 - for horizontal rules
1384
- "strikethrough": "#eba0ac", # Maroon - for strikethrough text
1385
- "error": "#f38ba8", # Red - for errors
1386
- }
1387
-
1388
- MARKDOWN_EDITOR_STYLE = """
1389
- QPlainTextEdit {
1390
- background-color: #313244; /* Surface0 */
1391
- color: #cdd6f4; /* Text */
1392
- border: 1px solid #45475a; /* Surface1 */
1393
- border-radius: 4px;
1394
- padding: 8px;
1395
- font-family: 'Inter', 'Segoe UI', 'Roboto', sans-serif;
1396
- font-size: 13px;
1397
- line-height: 1.6;
1398
- selection-background-color: #585b70; /* Surface2 */
1399
- selection-color: #cdd6f4; /* Text */
1400
- }
1401
- QPlainTextEdit:focus {
1402
- border: 1px solid #89b4fa; /* Blue focus border */
1403
- }
1404
- """