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