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