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