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
@@ -0,0 +1,1276 @@
1
+ name: Unicorn
2
+ description: Unicorn Candy light theme with pastel colors
3
+
4
+ colors:
5
+ light_cyan: "#d0f4f4"
6
+ lavender: "#eed5ff"
7
+ pink: "#ffc0d7"
8
+ cream: "#fff9c1"
9
+ mint: "#cfebd2"
10
+ deep_purple: "#6b46c1"
11
+ dark_purple: "#553c9a"
12
+ darker_purple: "#4c1d95"
13
+ dark_slate: "#374151"
14
+ midnight: "#1f2937"
15
+ light_bg: "#f8fafc"
16
+ light_slate: "#f1f5f9"
17
+ slate_border: "#e2e8f0"
18
+ gray_border: "#d1d5db"
19
+ gray: "#cbd5e1"
20
+ muted_gray: "#6b7280"
21
+ lighter_gray: "#9ca3af"
22
+ green: "#10b981"
23
+ dark_green: "#059669"
24
+ darker_green: "#047857"
25
+ red: "#ef4444"
26
+ dark_red: "#dc2626"
27
+ darker_red: "#b91c1c"
28
+ amber: "#fbbf24"
29
+ dark_amber: "#f59e0b"
30
+ white: "#ffffff"
31
+ transparent: "transparent"
32
+
33
+ icons:
34
+ web_search: "\U0001F50D"
35
+ fetch_webpage: "\U0001F310"
36
+ transfer: "\u2197\ufe0f"
37
+ adapt: "\U0001F9E0"
38
+ retrieve_memory: "\U0001F4AD"
39
+ forget_memory_topic: "\U0001F5D1\ufe0f"
40
+ read_repo: "\U0001F4C2"
41
+ get_file: "\U0001F4C4"
42
+ default: "\U0001F527"
43
+
44
+ styles:
45
+ main: |
46
+ QMainWindow {
47
+ background-color: ${light_bg};
48
+ }
49
+ QScrollArea {
50
+ border: none;
51
+ background-color: ${light_slate};
52
+ }
53
+ QWidget#chatContainer {
54
+ background-color: ${light_bg};
55
+ }
56
+ QSplitter::handle {
57
+ background-color: ${slate_border};
58
+ }
59
+ QSplitter::handle:hover {
60
+ background-color: ${gray};
61
+ }
62
+ QSplitter::handle:pressed {
63
+ background-color: ${deep_purple};
64
+ }
65
+ QStatusBar {
66
+ background-color: ${light_slate};
67
+ color: ${dark_slate};
68
+ }
69
+ QToolTip {
70
+ background-color: ${lavender};
71
+ color: ${dark_slate};
72
+ border: 1px solid ${deep_purple};
73
+ padding: 4px;
74
+ }
75
+ QMessageBox {
76
+ background-color: ${light_slate};
77
+ }
78
+ QMessageBox QLabel {
79
+ color: ${dark_slate};
80
+ background-color: ${transparent};
81
+ }
82
+ QListView {
83
+ background-color: ${lavender};
84
+ color: ${dark_slate};
85
+ border: 1px solid ${deep_purple};
86
+ padding: 2px;
87
+ outline: 0px;
88
+ }
89
+ QListView::item {
90
+ padding: 4px 8px;
91
+ border-radius: 2px;
92
+ }
93
+ QListView::item:selected {
94
+ background-color: ${deep_purple};
95
+ color: ${white};
96
+ }
97
+ QListView::item:hover {
98
+ background-color: ${pink};
99
+ }
100
+ QScrollBar:vertical {
101
+ border: none;
102
+ background: ${light_slate};
103
+ width: 10px;
104
+ margin: 0px;
105
+ }
106
+ QScrollBar::handle:vertical {
107
+ background: ${gray};
108
+ min-height: 20px;
109
+ border-radius: 5px;
110
+ }
111
+ QScrollBar::handle:vertical:hover {
112
+ background: ${deep_purple};
113
+ }
114
+ QScrollBar::handle:vertical:pressed {
115
+ background: ${dark_purple};
116
+ }
117
+ QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical {
118
+ border: none;
119
+ background: none;
120
+ height: 0px;
121
+ }
122
+ QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
123
+ background: none;
124
+ }
125
+ QScrollBar:horizontal {
126
+ border: none;
127
+ background: ${light_slate};
128
+ height: 10px;
129
+ margin: 0px;
130
+ }
131
+ QScrollBar::handle:horizontal {
132
+ background: ${gray};
133
+ min-width: 20px;
134
+ border-radius: 5px;
135
+ }
136
+ QScrollBar::handle:horizontal:hover {
137
+ background: ${deep_purple};
138
+ }
139
+ QScrollBar::handle:horizontal:pressed {
140
+ background: ${dark_purple};
141
+ }
142
+ QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal {
143
+ border: none;
144
+ background: none;
145
+ width: 0px;
146
+ }
147
+ QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {
148
+ background: none;
149
+ }
150
+ QLabel QMenu {
151
+ background-color: ${light_slate};
152
+ border: 1px solid ${deep_purple};
153
+ padding: 4px;
154
+ border-radius: 6px;
155
+ }
156
+ QLabel QMenu::item {
157
+ color: ${dark_slate};
158
+ padding: 8px 24px 8px 12px;
159
+ border-radius: 4px;
160
+ margin: 2px;
161
+ }
162
+ QLabel QMenu::item:selected {
163
+ background-color: ${deep_purple};
164
+ color: ${white};
165
+ }
166
+ QLabel QMenu::item:pressed {
167
+ background-color: ${dark_purple};
168
+ }
169
+ QLabel QMenu::separator {
170
+ height: 1px;
171
+ background: ${gray};
172
+ margin: 4px 8px;
173
+ }
174
+
175
+ button_primary: |
176
+ QPushButton {
177
+ background-color: ${deep_purple};
178
+ color: ${white};
179
+ border: none;
180
+ border-radius: 4px;
181
+ padding: 8px;
182
+ font-weight: bold;
183
+ }
184
+ QPushButton:hover {
185
+ background-color: ${dark_purple};
186
+ }
187
+ QPushButton:pressed {
188
+ background-color: ${darker_purple};
189
+ }
190
+ QPushButton:disabled {
191
+ background-color: ${gray};
192
+ color: ${muted_gray};
193
+ }
194
+
195
+ button_secondary: |
196
+ QPushButton {
197
+ background-color: ${lavender};
198
+ color: ${dark_slate};
199
+ border: none;
200
+ border-radius: 4px;
201
+ padding: 8px;
202
+ font-weight: bold;
203
+ }
204
+ QPushButton:hover {
205
+ background-color: #e4d4fd;
206
+ }
207
+ QPushButton:pressed {
208
+ background-color: ${deep_purple};
209
+ color: ${white};
210
+ }
211
+ QPushButton:disabled {
212
+ background-color: ${light_slate};
213
+ color: ${lighter_gray};
214
+ }
215
+
216
+ button_stop: |
217
+ QPushButton {
218
+ background-color: ${red};
219
+ color: ${white};
220
+ border: none;
221
+ border-radius: 4px;
222
+ padding: 8px;
223
+ font-weight: bold;
224
+ }
225
+ QPushButton:hover {
226
+ background-color: ${dark_red};
227
+ }
228
+ QPushButton:pressed {
229
+ background-color: ${darker_red};
230
+ }
231
+
232
+ button_stop_stopping: |
233
+ QPushButton {
234
+ background-color: ${slate_border};
235
+ color: ${muted_gray};
236
+ border: none;
237
+ border-radius: 4px;
238
+ padding: 8px;
239
+ font-weight: bold;
240
+ }
241
+
242
+ button_red: |
243
+ QPushButton {
244
+ background-color: ${red};
245
+ color: ${white};
246
+ border: none;
247
+ border-radius: 4px;
248
+ padding: 8px;
249
+ font-weight: bold;
250
+ }
251
+ QPushButton:hover {
252
+ background-color: ${dark_red};
253
+ }
254
+ QPushButton:pressed {
255
+ background-color: ${darker_red};
256
+ }
257
+ QPushButton:disabled {
258
+ background-color: ${gray};
259
+ color: ${muted_gray};
260
+ }
261
+
262
+ button_green: |
263
+ QPushButton {
264
+ background-color: ${green};
265
+ color: ${white};
266
+ border: none;
267
+ border-radius: 4px;
268
+ padding: 8px;
269
+ font-weight: bold;
270
+ }
271
+ QPushButton:hover {
272
+ background-color: ${dark_green};
273
+ }
274
+ QPushButton:pressed {
275
+ background-color: ${darker_green};
276
+ }
277
+ QPushButton:disabled {
278
+ background-color: ${gray};
279
+ color: ${muted_gray};
280
+ }
281
+
282
+ button_disabled: |
283
+ QPushButton {
284
+ background-color: ${gray};
285
+ color: ${muted_gray};
286
+ border: none;
287
+ border-radius: 4px;
288
+ padding: 8px;
289
+ font-weight: bold;
290
+ }
291
+
292
+ button_menu: |
293
+ QPushButton {
294
+ background-color: ${deep_purple};
295
+ color: ${white};
296
+ border: none;
297
+ border-radius: 4px;
298
+ padding: 8px;
299
+ font-weight: bold;
300
+ padding-left: 12px;
301
+ }
302
+ QPushButton:hover {
303
+ background-color: ${dark_purple};
304
+ }
305
+ QPushButton:pressed {
306
+ background-color: ${darker_purple};
307
+ }
308
+ QPushButton:disabled {
309
+ background-color: ${gray};
310
+ color: ${muted_gray};
311
+ }
312
+ QPushButton::menu-indicator {
313
+ subcontrol-origin: padding;
314
+ subcontrol-position: right center;
315
+ right: 5px;
316
+ width: 16px;
317
+ }
318
+
319
+ button_agent_menu: |
320
+ QPushButton {
321
+ background-color: ${deep_purple};
322
+ color: ${white};
323
+ border: none;
324
+ border-radius: 4px;
325
+ padding: 8px;
326
+ font-weight: bold;
327
+ padding-left: 12px;
328
+ }
329
+ QPushButton:hover {
330
+ background-color: ${dark_purple};
331
+ }
332
+ QPushButton:pressed {
333
+ background-color: ${darker_purple};
334
+ }
335
+ QPushButton:disabled {
336
+ background-color: ${gray};
337
+ color: ${muted_gray};
338
+ }
339
+ QPushButton::menu-indicator {
340
+ subcontrol-origin: padding;
341
+ subcontrol-position: right center;
342
+ right: 5px;
343
+ width: 16px;
344
+ }
345
+
346
+ button_rollback: |
347
+ QPushButton {
348
+ background-color: ${pink};
349
+ color: ${dark_slate};
350
+ border: none;
351
+ border-radius: 15px;
352
+ padding: 8px;
353
+ font-size: 24px;
354
+ font-weight: bold;
355
+ width: 30px;
356
+ height: 30px;
357
+ }
358
+ QPushButton:hover {
359
+ background-color: #ffadd0;
360
+ }
361
+ QPushButton:pressed {
362
+ background-color: #ff9ac5;
363
+ }
364
+
365
+ button_consolidated: |
366
+ QPushButton {
367
+ background-color: ${pink};
368
+ color: ${dark_slate};
369
+ border: none;
370
+ border-radius: 15px;
371
+ padding: 8px;
372
+ font-size: 16px;
373
+ font-weight: bold;
374
+ width: 30px;
375
+ height: 30px;
376
+ }
377
+ QPushButton:hover {
378
+ background-color: #ffadd0;
379
+ }
380
+ QPushButton:pressed {
381
+ background-color: #ff9ac5;
382
+ }
383
+
384
+ button_unconsolidate: |
385
+ QPushButton {
386
+ background-color: ${gray_border};
387
+ color: ${dark_slate};
388
+ border: none;
389
+ border-radius: 15px;
390
+ padding: 8px;
391
+ font-size: 16px;
392
+ font-weight: bold;
393
+ width: 30px;
394
+ height: 30px;
395
+ }
396
+ QPushButton:hover {
397
+ background-color: #fecaca;
398
+ }
399
+ QPushButton:pressed {
400
+ background-color: #fca5a5;
401
+ }
402
+
403
+ api_keys_group: |
404
+ QGroupBox {
405
+ background-color: ${light_slate};
406
+ }
407
+ QLabel {
408
+ background-color: ${light_slate};
409
+ }
410
+
411
+ editor_container_widget: |
412
+ QWidget {
413
+ background-color: ${light_slate};
414
+ }
415
+
416
+ combo_box: |
417
+ QComboBox {
418
+ background-color: ${white};
419
+ color: ${dark_slate};
420
+ border: 1px solid ${gray_border};
421
+ border-radius: 4px;
422
+ padding: 6px 8px;
423
+ min-width: 120px;
424
+ }
425
+ QComboBox:hover {
426
+ border: 1px solid ${deep_purple};
427
+ }
428
+ QComboBox:focus {
429
+ border: 1px solid ${deep_purple};
430
+ }
431
+ QComboBox::drop-down {
432
+ subcontrol-origin: padding;
433
+ subcontrol-position: top right;
434
+ width: 20px;
435
+ border-left-width: 1px;
436
+ border-left-color: ${gray_border};
437
+ border-left-style: solid;
438
+ border-top-right-radius: 4px;
439
+ border-bottom-right-radius: 4px;
440
+ background-color: #f9fafb;
441
+ }
442
+ QComboBox::down-arrow {
443
+ width: 0;
444
+ height: 0;
445
+ border-left: 4px solid ${transparent};
446
+ border-right: 4px solid ${transparent};
447
+ border-top: 6px solid ${dark_slate};
448
+ }
449
+ QComboBox QAbstractItemView {
450
+ background-color: ${white};
451
+ color: ${dark_slate};
452
+ border: 1px solid ${gray_border};
453
+ border-radius: 4px;
454
+ selection-background-color: ${deep_purple};
455
+ selection-color: ${white};
456
+ outline: 0px;
457
+ }
458
+
459
+ text_input: |
460
+ QTextEdit {
461
+ background-color: ${white};
462
+ color: ${dark_slate};
463
+ border: 1px solid ${gray_border};
464
+ border-radius: 4px;
465
+ padding: 8px;
466
+ }
467
+ QTextEdit:focus {
468
+ border: 1px solid ${deep_purple};
469
+ }
470
+
471
+ line_edit: |
472
+ QLineEdit {
473
+ background-color: ${white};
474
+ color: ${dark_slate};
475
+ border: 1px solid ${gray_border};
476
+ border-radius: 4px;
477
+ padding: 8px;
478
+ }
479
+ QLineEdit:focus {
480
+ border: 1px solid ${deep_purple};
481
+ }
482
+
483
+ menu_bar: |
484
+ QMenuBar {
485
+ background-color: ${light_slate};
486
+ color: ${dark_slate};
487
+ padding: 2px;
488
+ }
489
+ QMenuBar::item {
490
+ background-color: ${transparent};
491
+ color: ${dark_slate};
492
+ padding: 4px 12px;
493
+ border-radius: 4px;
494
+ }
495
+ QMenuBar::item:selected {
496
+ background-color: ${lavender};
497
+ }
498
+ QMenuBar::item:pressed {
499
+ background-color: #e4d4fd;
500
+ }
501
+ QMenu {
502
+ background-color: ${white};
503
+ color: ${dark_slate};
504
+ border: 1px solid ${gray_border};
505
+ padding: 4px;
506
+ }
507
+ QMenu::item {
508
+ padding: 6px 24px 6px 12px;
509
+ border-radius: 4px;
510
+ }
511
+ QMenu::item:selected {
512
+ background-color: ${deep_purple};
513
+ color: ${white};
514
+ }
515
+ QMenu::separator {
516
+ height: 1px;
517
+ background: #e5e7eb;
518
+ margin-left: 10px;
519
+ margin-right: 5px;
520
+ }
521
+
522
+ context_menu: |
523
+ QMenu {
524
+ background-color: ${white};
525
+ color: ${dark_slate};
526
+ border: 1px solid ${gray_border};
527
+ padding: 4px;
528
+ border-radius: 6px;
529
+ }
530
+ QMenu::item {
531
+ padding: 8px 24px 8px 12px;
532
+ border-radius: 4px;
533
+ margin: 2px;
534
+ color: ${dark_slate};
535
+ }
536
+ QMenu::item:selected {
537
+ background-color: ${deep_purple};
538
+ color: ${white};
539
+ }
540
+ QMenu::item:pressed {
541
+ background-color: ${dark_purple};
542
+ }
543
+ QMenu::item:disabled {
544
+ background-color: ${transparent};
545
+ color: ${lighter_gray};
546
+ }
547
+ QMenu::separator {
548
+ height: 1px;
549
+ background: #e5e7eb;
550
+ margin: 4px 8px;
551
+ }
552
+
553
+ agent_menu: |
554
+ QMenu {
555
+ background-color: ${white};
556
+ color: ${dark_slate};
557
+ border: 1px solid ${lavender};
558
+ border-radius: 4px;
559
+ padding: 4px;
560
+ }
561
+ QMenu::item {
562
+ padding: 6px 20px;
563
+ background-color: ${transparent};
564
+ }
565
+ QMenu::item:selected {
566
+ background-color: ${deep_purple};
567
+ color: ${white};
568
+ border-radius: 3px;
569
+ }
570
+ QMenu::separator {
571
+ height: 1px;
572
+ background-color: ${lavender};
573
+ margin-left: 5px;
574
+ margin-right: 5px;
575
+ }
576
+
577
+ status_indicator: |
578
+ QLabel {
579
+ background-color: ${lavender};
580
+ color: ${dark_slate};
581
+ padding: 8px;
582
+ border-radius: 5px;
583
+ font-weight: bold;
584
+ }
585
+
586
+ version_label: |
587
+ QLabel {
588
+ color: ${muted_gray};
589
+ padding: 2px 8px;
590
+ font-size: 11px;
591
+ }
592
+
593
+ system_message_toggle_button: |
594
+ QPushButton {
595
+ background-color: ${transparent};
596
+ color: ${deep_purple};
597
+ border: none;
598
+ text-align: left;
599
+ padding: 2px;
600
+ }
601
+ QPushButton:hover {
602
+ color: ${dark_purple};
603
+ }
604
+
605
+ sidebar: "background-color: ${light_slate};"
606
+
607
+ conversation_list: |
608
+ QListWidget {
609
+ background-color: ${light_bg};
610
+ border: 1px solid ${slate_border};
611
+ border-radius: 4px;
612
+ }
613
+ QListWidget::item {
614
+ color: ${dark_slate};
615
+ background-color: ${light_bg};
616
+ border: none;
617
+ border-bottom: 1px solid ${slate_border};
618
+ margin: 0px;
619
+ padding: 8px;
620
+ }
621
+ QListWidget::item:selected {
622
+ background-color: ${deep_purple};
623
+ color: ${white};
624
+ }
625
+ QListWidget::item:hover:!selected {
626
+ background-color: ${lavender};
627
+ }
628
+
629
+ search_box: |
630
+ QLineEdit {
631
+ background-color: ${white};
632
+ color: ${dark_slate};
633
+ border: 1px solid ${gray_border};
634
+ border-radius: 4px;
635
+ padding: 8px;
636
+ }
637
+ QLineEdit:focus {
638
+ border: 1px solid ${deep_purple};
639
+ }
640
+
641
+ token_usage: |
642
+ QLabel {
643
+ color: ${dark_slate};
644
+ font-weight: bold;
645
+ padding: 8px;
646
+ background-color: ${light_bg};
647
+ border-top: 1px solid ${slate_border};
648
+ }
649
+
650
+ token_usage_widget: "background-color: ${light_bg};"
651
+
652
+ user_bubble: |
653
+ QFrame {
654
+ border-radius: 5px;
655
+ background-color: ${deep_purple};
656
+ border: none;
657
+ padding: 2px;
658
+ }
659
+
660
+ assistant_bubble: |
661
+ QFrame {
662
+ border-radius: 5px;
663
+ background-color: ${lavender};
664
+ border: none;
665
+ padding: 2px;
666
+ }
667
+
668
+ thinking_bubble: |
669
+ QFrame {
670
+ border-radius: 5px;
671
+ background-color: ${light_slate};
672
+ border: none;
673
+ padding: 2px;
674
+ }
675
+
676
+ consolidated_bubble: |
677
+ QFrame {
678
+ border-radius: 5px;
679
+ background-color: ${lavender};
680
+ border: 1px solid ${gray_border};
681
+ padding: 2px;
682
+ }
683
+
684
+ tool_dialog_text_edit: |
685
+ QTextEdit {
686
+ background-color: ${white};
687
+ color: ${dark_slate};
688
+ border: 1px solid ${gray_border};
689
+ border-radius: 4px;
690
+ padding: 8px;
691
+ font-family: monospace;
692
+ }
693
+ QTextEdit:focus {
694
+ border: 1px solid ${deep_purple};
695
+ }
696
+
697
+ tool_dialog_yes_button: |
698
+ QPushButton {
699
+ background-color: ${green};
700
+ color: ${white};
701
+ font-weight: bold;
702
+ padding: 6px 14px;
703
+ border: none;
704
+ border-radius: 4px;
705
+ }
706
+ QPushButton:hover {
707
+ background-color: ${dark_green};
708
+ }
709
+
710
+ tool_dialog_all_button: |
711
+ QPushButton {
712
+ background-color: ${deep_purple};
713
+ color: ${white};
714
+ font-weight: bold;
715
+ padding: 6px 14px;
716
+ border: none;
717
+ border-radius: 4px;
718
+ }
719
+ QPushButton:hover {
720
+ background-color: ${dark_purple};
721
+ }
722
+
723
+ tool_dialog_no_button: |
724
+ QPushButton {
725
+ background-color: ${red};
726
+ color: ${white};
727
+ font-weight: bold;
728
+ padding: 6px 14px;
729
+ border: none;
730
+ border-radius: 4px;
731
+ }
732
+ QPushButton:hover {
733
+ background-color: ${dark_red};
734
+ }
735
+
736
+ system_message_label: |
737
+ color: ${muted_gray};
738
+ padding: 2px;
739
+
740
+ system_message_toggle: |
741
+ QPushButton {
742
+ background-color: ${transparent};
743
+ color: ${deep_purple};
744
+ border: none;
745
+ text-align: left;
746
+ padding: 2px;
747
+ }
748
+ QPushButton:hover {
749
+ color: ${dark_purple};
750
+ }
751
+
752
+ config_dialog: |
753
+ QDialog {
754
+ background-color: ${light_bg};
755
+ color: ${dark_slate};
756
+ }
757
+ QTabWidget::pane {
758
+ border: 1px solid ${slate_border};
759
+ background-color: ${white};
760
+ border-radius: 4px;
761
+ }
762
+ QTabBar::tab {
763
+ background-color: ${light_slate};
764
+ color: ${dark_slate};
765
+ padding: 8px;
766
+ border-top-left-radius: 4px;
767
+ border-top-right-radius: 4px;
768
+ border: 1px solid ${gray_border};
769
+ border-bottom: none;
770
+ margin-right: 2px;
771
+ }
772
+ QTabBar::tab:selected {
773
+ background-color: ${white};
774
+ border-bottom-color: ${white};
775
+ color: ${deep_purple};
776
+ }
777
+ QTabBar::tab:hover:!selected {
778
+ background-color: ${lavender};
779
+ }
780
+ QPushButton {
781
+ background-color: ${deep_purple};
782
+ color: ${white};
783
+ border: none;
784
+ border-radius: 4px;
785
+ padding: 8px;
786
+ font-weight: bold;
787
+ }
788
+ QPushButton:hover {
789
+ background-color: ${dark_purple};
790
+ }
791
+ QPushButton:pressed {
792
+ background-color: ${darker_purple};
793
+ }
794
+ QPushButton:disabled {
795
+ background-color: ${gray};
796
+ color: ${muted_gray};
797
+ }
798
+ QListWidget {
799
+ background-color: ${white};
800
+ border: 1px solid ${slate_border};
801
+ border-radius: 4px;
802
+ padding: 4px;
803
+ color: ${dark_slate};
804
+ }
805
+ QListWidget::item {
806
+ padding: 6px;
807
+ border-radius: 2px;
808
+ color: ${dark_slate};
809
+ background-color: ${white};
810
+ }
811
+ QListWidget::item:selected {
812
+ background-color: ${deep_purple};
813
+ color: ${white};
814
+ }
815
+ QListWidget::item:hover:!selected {
816
+ background-color: ${lavender};
817
+ }
818
+ QLineEdit, QTextEdit {
819
+ border: 1px solid ${gray_border};
820
+ border-radius: 4px;
821
+ padding: 6px;
822
+ background-color: ${white};
823
+ color: ${dark_slate};
824
+ }
825
+ QLineEdit:focus, QTextEdit:focus {
826
+ border: 1px solid ${deep_purple};
827
+ }
828
+ QCheckBox {
829
+ spacing: 8px;
830
+ color: ${dark_slate};
831
+ }
832
+ QCheckBox::indicator {
833
+ width: 18px;
834
+ height: 18px;
835
+ border-radius: 3px;
836
+ background-color: ${white};
837
+ border: 2px solid ${gray_border};
838
+ }
839
+ QCheckBox::indicator:checked {
840
+ background-color: ${deep_purple};
841
+ border: 2px solid ${deep_purple};
842
+ }
843
+ QCheckBox::indicator:indeterminate {
844
+ background-color: ${amber};
845
+ border: 2px solid ${amber};
846
+ border-radius: 9px;
847
+ }
848
+ QCheckBox::indicator:hover {
849
+ border: 2px solid ${dark_purple};
850
+ }
851
+ QCheckBox::indicator:hover:checked {
852
+ background-color: ${dark_purple};
853
+ border: 2px solid ${dark_purple};
854
+ }
855
+ QCheckBox::indicator:hover:indeterminate {
856
+ background-color: ${dark_amber};
857
+ border: 2px solid ${dark_amber};
858
+ }
859
+ QCheckBox::indicator:disabled {
860
+ background-color: #f9fafb;
861
+ border: 2px solid #e5e7eb;
862
+ }
863
+ QGroupBox {
864
+ font-weight: bold;
865
+ border: 1px solid ${gray_border};
866
+ border-radius: 4px;
867
+ margin-top: 12px;
868
+ padding-top: 12px;
869
+ background-color: ${white};
870
+ }
871
+ QGroupBox::title {
872
+ subcontrol-origin: margin;
873
+ subcontrol-position: top left;
874
+ padding: 0 4px 4px 4px;
875
+ color: ${deep_purple};
876
+ left: 10px;
877
+ }
878
+ QScrollArea {
879
+ background-color: ${white};
880
+ border: none;
881
+ }
882
+ QScrollArea > QWidget > QWidget {
883
+ background-color: ${white};
884
+ }
885
+ QLabel {
886
+ color: ${dark_slate};
887
+ padding: 2px;
888
+ }
889
+ QSplitter::handle {
890
+ background-color: ${slate_border};
891
+ }
892
+ QSplitter::handle:hover {
893
+ background-color: ${gray};
894
+ }
895
+ QSplitter::handle:pressed {
896
+ background-color: ${deep_purple};
897
+ }
898
+
899
+ panel: "background-color: ${light_slate};"
900
+
901
+ scroll_area: |
902
+ background-color: ${light_slate};
903
+ border: none;
904
+
905
+ editor_widget: "background-color: ${light_slate};"
906
+
907
+ group_box: "background-color: ${light_bg};"
908
+
909
+ splitter_color: |
910
+ QSplitter::handle {
911
+ background-color: ${slate_border};
912
+ }
913
+ QSplitter::handle:hover {
914
+ background-color: ${gray};
915
+ }
916
+ QSplitter::handle:pressed {
917
+ background-color: ${deep_purple};
918
+ }
919
+
920
+ metadata_header_label: |
921
+ QLabel {
922
+ color: ${muted_gray};
923
+ font-style: italic;
924
+ padding-bottom: 5px;
925
+ }
926
+
927
+ user_message_label: |
928
+ QLabel {
929
+ color: ${white};
930
+ }
931
+
932
+ assistant_message_label: |
933
+ QLabel {
934
+ color: ${dark_slate};
935
+ }
936
+
937
+ thinking_message_label: |
938
+ QLabel {
939
+ color: ${dark_slate};
940
+ }
941
+
942
+ user_sender_label: |
943
+ QLabel {
944
+ font-weight: bold;
945
+ color: ${white};
946
+ padding: 2px;
947
+ }
948
+
949
+ assistant_sender_label: |
950
+ QLabel {
951
+ font-weight: bold;
952
+ color: ${dark_slate};
953
+ padding: 2px;
954
+ }
955
+
956
+ thinking_sender_label: |
957
+ QLabel {
958
+ font-weight: bold;
959
+ color: ${dark_slate};
960
+ padding: 2px;
961
+ }
962
+
963
+ user_file_name_label: |
964
+ QLabel {
965
+ font-weight: bold;
966
+ color: ${white};
967
+ padding-left: 10px;
968
+ }
969
+
970
+ assistant_file_name_label: |
971
+ QLabel {
972
+ font-weight: bold;
973
+ color: ${dark_slate};
974
+ padding-left: 10px;
975
+ }
976
+
977
+ user_file_info_label: |
978
+ QLabel {
979
+ color: ${slate_border};
980
+ }
981
+
982
+ assistant_file_info_label: |
983
+ QLabel {
984
+ color: ${muted_gray};
985
+ }
986
+
987
+ code_css: |
988
+ table td {border: 1px solid ${dark_slate}; padding: 5px;}
989
+ table { border-collapse: collapse; }
990
+ pre { line-height: 1; background-color: ${white}; border-radius: 8px; padding: 12px; color: ${dark_slate}; white-space: pre-wrap; word-wrap: break-word; border: 1px solid #e5e7eb; }
991
+ td.linenos .normal { color: ${lighter_gray}; background-color: transparent; padding-left: 5px; padding-right: 5px; }
992
+ span.linenos { color: ${lighter_gray}; background-color: transparent; padding-left: 5px; padding-right: 5px; }
993
+ td.linenos .special { color: ${dark_slate}; background-color: #f9fafb; padding-left: 5px; padding-right: 5px; }
994
+ span.linenos.special { color: ${dark_slate}; background-color: #f9fafb; padding-left: 5px; padding-right: 5px; }
995
+ .codehilite .hll { background-color: ${cream} }
996
+ .codehilite { background: ${white}; border-radius: 8px; padding: 10px; color: ${dark_slate}; border: 1px solid #e5e7eb; }
997
+ .codehilite .c { color: ${lighter_gray}; font-style: italic }
998
+ .codehilite .err { border: 1px solid ${red}; color: ${red}; }
999
+ .codehilite .k { color: ${deep_purple}; font-weight: bold }
1000
+ .codehilite .o { color: ${dark_green} }
1001
+ .codehilite .ch { color: ${lighter_gray}; font-style: italic }
1002
+ .codehilite .cm { color: ${lighter_gray}; font-style: italic }
1003
+ .codehilite .cp { color: #d97706 }
1004
+ .codehilite .cpf { color: ${lighter_gray}; font-style: italic }
1005
+ .codehilite .c1 { color: ${lighter_gray}; font-style: italic }
1006
+ .codehilite .cs { color: ${lighter_gray}; font-style: italic }
1007
+ .codehilite .gd { color: ${red} }
1008
+ .codehilite .ge { font-style: italic }
1009
+ .codehilite .ges { font-weight: bold; font-style: italic }
1010
+ .codehilite .gr { color: ${red} }
1011
+ .codehilite .gh { color: ${deep_purple}; font-weight: bold }
1012
+ .codehilite .gi { color: ${green} }
1013
+ .codehilite .go { color: ${dark_slate} }
1014
+ .codehilite .gp { color: ${deep_purple}; font-weight: bold }
1015
+ .codehilite .gs { font-weight: bold }
1016
+ .codehilite .gu { color: ${deep_purple}; font-weight: bold }
1017
+ .codehilite .gt { color: ${red} }
1018
+ .codehilite .kc { color: ${deep_purple}; font-weight: bold }
1019
+ .codehilite .kd { color: ${deep_purple}; font-weight: bold }
1020
+ .codehilite .kn { color: ${deep_purple}; font-weight: bold }
1021
+ .codehilite .kp { color: ${deep_purple} }
1022
+ .codehilite .kr { color: ${deep_purple}; font-weight: bold }
1023
+ .codehilite .kt { color: ${dark_red}; font-weight: bold }
1024
+ .codehilite .m { color: #7c3aed }
1025
+ .codehilite .s { color: ${green} }
1026
+ .codehilite .na { color: #0ea5e9 }
1027
+ .codehilite .nb { color: ${deep_purple} }
1028
+ .codehilite .nc { color: #d97706; font-weight: bold }
1029
+ .codehilite .no { color: ${dark_red} }
1030
+ .codehilite .nd { color: ${deep_purple} }
1031
+ .codehilite .ni { color: ${dark_slate}; font-weight: bold }
1032
+ .codehilite .ne { color: ${red}; font-weight: bold }
1033
+ .codehilite .nf { color: ${deep_purple}; font-weight: bold }
1034
+ .codehilite .nl { color: ${dark_slate} }
1035
+ .codehilite .nn { color: #d97706; font-weight: bold }
1036
+ .codehilite .nt { color: ${deep_purple}; font-weight: bold }
1037
+ .codehilite .nv { color: ${dark_slate} }
1038
+ .codehilite .ow { color: ${dark_green}; font-weight: bold }
1039
+ .codehilite .w { color: ${lighter_gray} }
1040
+ .codehilite .mb { color: #7c3aed }
1041
+ .codehilite .mf { color: #7c3aed }
1042
+ .codehilite .mh { color: #7c3aed }
1043
+ .codehilite .mi { color: #7c3aed }
1044
+ .codehilite .mo { color: #7c3aed }
1045
+ .codehilite .sa { color: ${green} }
1046
+ .codehilite .sb { color: ${green} }
1047
+ .codehilite .sc { color: ${green} }
1048
+ .codehilite .dl { color: ${green} }
1049
+ .codehilite .sd { color: ${lighter_gray}; font-style: italic }
1050
+ .codehilite .s2 { color: ${green} }
1051
+ .codehilite .se { color: ${dark_red}; font-weight: bold }
1052
+ .codehilite .sh { color: ${green} }
1053
+ .codehilite .si { color: ${green}; font-weight: bold }
1054
+ .codehilite .sx { color: ${green} }
1055
+ .codehilite .sr { color: ${green} }
1056
+ .codehilite .s1 { color: ${green} }
1057
+ .codehilite .ss { color: ${green} }
1058
+ .codehilite .bp { color: ${deep_purple} }
1059
+ .codehilite .fm { color: ${deep_purple}; font-weight: bold }
1060
+ .codehilite .vc { color: ${dark_slate} }
1061
+ .codehilite .vg { color: ${dark_slate} }
1062
+ .codehilite .vi { color: ${dark_slate} }
1063
+ .codehilite .vm { color: ${dark_slate} }
1064
+ .codehilite .il { color: #7c3aed }
1065
+
1066
+ checkbox: |
1067
+ QCheckBox {
1068
+ spacing: 8px;
1069
+ color: ${dark_slate};
1070
+ }
1071
+ QCheckBox::indicator {
1072
+ width: 18px;
1073
+ height: 18px;
1074
+ border-radius: 3px;
1075
+ background-color: ${white};
1076
+ border: 2px solid ${gray_border};
1077
+ }
1078
+ QCheckBox::indicator:checked {
1079
+ background-color: ${deep_purple};
1080
+ border: 2px solid ${deep_purple};
1081
+ }
1082
+ QCheckBox::indicator:indeterminate {
1083
+ background-color: ${amber};
1084
+ border: 2px solid ${amber};
1085
+ border-radius: 9px;
1086
+ }
1087
+ QCheckBox::indicator:hover {
1088
+ border: 2px solid ${dark_purple};
1089
+ }
1090
+ QCheckBox::indicator:hover:checked {
1091
+ background-color: ${dark_purple};
1092
+ border: 2px solid ${dark_purple};
1093
+ }
1094
+ QCheckBox::indicator:hover:indeterminate {
1095
+ background-color: ${dark_amber};
1096
+ border: 2px solid ${dark_amber};
1097
+ }
1098
+ QCheckBox::indicator:disabled {
1099
+ background-color: #f9fafb;
1100
+ border: 2px solid #e5e7eb;
1101
+ }
1102
+
1103
+ tool_widget: |
1104
+ QWidget {
1105
+ background-color: ${transparent};
1106
+ }
1107
+
1108
+ tool_card: |
1109
+ QFrame#toolCard {
1110
+ border-radius: 6px;
1111
+ background-color: rgba(107, 70, 193, 0.08);
1112
+ border: 1px solid rgba(107, 70, 193, 0.4);
1113
+ padding: 1px;
1114
+ }
1115
+
1116
+ tool_card_error: |
1117
+ QFrame#toolCard {
1118
+ border-radius: 6px;
1119
+ background-color: rgba(239, 68, 68, 0.08);
1120
+ border: 1px solid rgba(239, 68, 68, 0.4);
1121
+ padding: 1px;
1122
+ }
1123
+
1124
+ tool_header: |
1125
+ QLabel {
1126
+ font-weight: 500;
1127
+ color: ${dark_slate};
1128
+ }
1129
+
1130
+ tool_toggle_button: |
1131
+ QPushButton {
1132
+ background-color: ${transparent};
1133
+ border: none;
1134
+ color: ${muted_gray};
1135
+ font-weight: normal;
1136
+ font-size: 11px;
1137
+ }
1138
+ QPushButton:hover {
1139
+ color: ${deep_purple};
1140
+ }
1141
+
1142
+ tool_status: |
1143
+ QLabel {
1144
+ font-weight: 500;
1145
+ padding: 2px;
1146
+ font-size: 11px;
1147
+ }
1148
+ QLabel[status="running"] {
1149
+ color: #d97706;
1150
+ }
1151
+ QLabel[status="complete"] {
1152
+ color: ${green};
1153
+ }
1154
+ QLabel[status="error"] {
1155
+ color: ${red};
1156
+ }
1157
+
1158
+ tool_content: |
1159
+ QLabel {
1160
+ color: ${dark_slate};
1161
+ padding: 1px;
1162
+ font-size: 11px;
1163
+ }
1164
+ QLabel[role="title"] {
1165
+ font-weight: 500;
1166
+ color: ${dark_slate};
1167
+ font-size: 12px;
1168
+ }
1169
+ QLabel[role="key"] {
1170
+ color: ${deep_purple};
1171
+ font-weight: 500;
1172
+ font-size: 11px;
1173
+ }
1174
+ QLabel[role="value"] {
1175
+ color: ${muted_gray};
1176
+ font-size: 11px;
1177
+ }
1178
+ QLabel[role="error"] {
1179
+ color: ${red};
1180
+ font-size: 11px;
1181
+ }
1182
+
1183
+ tool_progress: |
1184
+ QProgressBar {
1185
+ border: none;
1186
+ background-color: rgba(203, 213, 225, 0.4);
1187
+ border-radius: 5px;
1188
+ text-align: center;
1189
+ }
1190
+ QProgressBar::chunk {
1191
+ background-color: ${deep_purple};
1192
+ border-radius: 5px;
1193
+ }
1194
+
1195
+ tool_separator: |
1196
+ QFrame {
1197
+ background-color: rgba(107, 70, 193, 0.3);
1198
+ border: none;
1199
+ }
1200
+
1201
+ diff_colors:
1202
+ background: ${light_bg}
1203
+ panel_bg: ${white}
1204
+ header_bg: ${light_slate}
1205
+ header_text: ${dark_slate}
1206
+ line_number_bg: ${light_bg}
1207
+ line_number_text: ${lighter_gray}
1208
+ removed_bg: "#fef2f2"
1209
+ removed_text: ${red}
1210
+ removed_highlight: ${red}
1211
+ added_bg: "#ecfdf5"
1212
+ added_text: ${green}
1213
+ added_highlight: ${green}
1214
+ unchanged_text: ${lighter_gray}
1215
+ border: ${gray_border}
1216
+ block_header_bg: "#e0e7ff"
1217
+ block_header_text: ${deep_purple}
1218
+
1219
+ json_editor_colors:
1220
+ background: ${white}
1221
+ text: ${dark_slate}
1222
+ border: ${gray_border}
1223
+ string: ${green}
1224
+ number: "#d97706"
1225
+ keyword: ${deep_purple}
1226
+ punctuation: ${dark_slate}
1227
+ error: ${red}
1228
+
1229
+ json_editor: |
1230
+ QPlainTextEdit {
1231
+ background-color: ${white};
1232
+ color: ${dark_slate};
1233
+ border: 1px solid ${gray_border};
1234
+ border-radius: 4px;
1235
+ padding: 8px;
1236
+ font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
1237
+ font-size: 12px;
1238
+ line-height: 1.4;
1239
+ }
1240
+ QPlainTextEdit:focus {
1241
+ border: 1px solid ${deep_purple};
1242
+ }
1243
+
1244
+ markdown_editor_colors:
1245
+ background: ${white}
1246
+ text: ${dark_slate}
1247
+ border: ${gray_border}
1248
+ header: ${deep_purple}
1249
+ bold: ${dark_red}
1250
+ italic: ${green}
1251
+ code: "#7c3aed"
1252
+ code_background: "#f9fafb"
1253
+ link: "#0ea5e9"
1254
+ image: "#06b6d4"
1255
+ list: "#d97706"
1256
+ blockquote: ${dark_green}
1257
+ hr: ${gray_border}
1258
+ strikethrough: ${red}
1259
+ error: ${red}
1260
+
1261
+ markdown_editor: |
1262
+ QPlainTextEdit {
1263
+ background-color: ${white};
1264
+ color: ${dark_slate};
1265
+ border: 1px solid ${gray_border};
1266
+ border-radius: 4px;
1267
+ padding: 8px;
1268
+ font-family: 'Inter', 'Segoe UI', 'Roboto', sans-serif;
1269
+ font-size: 13px;
1270
+ line-height: 1.6;
1271
+ selection-background-color: ${lavender};
1272
+ selection-color: ${dark_slate};
1273
+ }
1274
+ QPlainTextEdit:focus {
1275
+ border: 1px solid ${deep_purple};
1276
+ }