agentcrew-ai 0.8.13__py3-none-any.whl → 0.9.0__py3-none-any.whl

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