codemaster-cli 2.2.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 (170) hide show
  1. codemaster_cli-2.2.0.dist-info/METADATA +645 -0
  2. codemaster_cli-2.2.0.dist-info/RECORD +170 -0
  3. codemaster_cli-2.2.0.dist-info/WHEEL +4 -0
  4. codemaster_cli-2.2.0.dist-info/entry_points.txt +3 -0
  5. vibe/__init__.py +6 -0
  6. vibe/acp/__init__.py +0 -0
  7. vibe/acp/acp_agent_loop.py +746 -0
  8. vibe/acp/entrypoint.py +81 -0
  9. vibe/acp/tools/__init__.py +0 -0
  10. vibe/acp/tools/base.py +100 -0
  11. vibe/acp/tools/builtins/bash.py +134 -0
  12. vibe/acp/tools/builtins/read_file.py +54 -0
  13. vibe/acp/tools/builtins/search_replace.py +129 -0
  14. vibe/acp/tools/builtins/todo.py +65 -0
  15. vibe/acp/tools/builtins/write_file.py +98 -0
  16. vibe/acp/tools/session_update.py +118 -0
  17. vibe/acp/utils.py +213 -0
  18. vibe/cli/__init__.py +0 -0
  19. vibe/cli/autocompletion/__init__.py +0 -0
  20. vibe/cli/autocompletion/base.py +22 -0
  21. vibe/cli/autocompletion/path_completion.py +177 -0
  22. vibe/cli/autocompletion/slash_command.py +99 -0
  23. vibe/cli/cli.py +188 -0
  24. vibe/cli/clipboard.py +69 -0
  25. vibe/cli/commands.py +116 -0
  26. vibe/cli/entrypoint.py +163 -0
  27. vibe/cli/history_manager.py +91 -0
  28. vibe/cli/plan_offer/adapters/http_whoami_gateway.py +67 -0
  29. vibe/cli/plan_offer/decide_plan_offer.py +87 -0
  30. vibe/cli/plan_offer/ports/whoami_gateway.py +23 -0
  31. vibe/cli/terminal_setup.py +323 -0
  32. vibe/cli/textual_ui/__init__.py +0 -0
  33. vibe/cli/textual_ui/ansi_markdown.py +58 -0
  34. vibe/cli/textual_ui/app.py +1546 -0
  35. vibe/cli/textual_ui/app.tcss +1020 -0
  36. vibe/cli/textual_ui/external_editor.py +32 -0
  37. vibe/cli/textual_ui/handlers/__init__.py +5 -0
  38. vibe/cli/textual_ui/handlers/event_handler.py +147 -0
  39. vibe/cli/textual_ui/widgets/__init__.py +0 -0
  40. vibe/cli/textual_ui/widgets/approval_app.py +192 -0
  41. vibe/cli/textual_ui/widgets/banner/banner.py +85 -0
  42. vibe/cli/textual_ui/widgets/banner/petit_chat.py +195 -0
  43. vibe/cli/textual_ui/widgets/braille_renderer.py +58 -0
  44. vibe/cli/textual_ui/widgets/chat_input/__init__.py +7 -0
  45. vibe/cli/textual_ui/widgets/chat_input/body.py +214 -0
  46. vibe/cli/textual_ui/widgets/chat_input/completion_manager.py +58 -0
  47. vibe/cli/textual_ui/widgets/chat_input/completion_popup.py +43 -0
  48. vibe/cli/textual_ui/widgets/chat_input/container.py +195 -0
  49. vibe/cli/textual_ui/widgets/chat_input/text_area.py +365 -0
  50. vibe/cli/textual_ui/widgets/compact.py +41 -0
  51. vibe/cli/textual_ui/widgets/config_app.py +171 -0
  52. vibe/cli/textual_ui/widgets/context_progress.py +30 -0
  53. vibe/cli/textual_ui/widgets/load_more.py +43 -0
  54. vibe/cli/textual_ui/widgets/loading.py +201 -0
  55. vibe/cli/textual_ui/widgets/messages.py +277 -0
  56. vibe/cli/textual_ui/widgets/no_markup_static.py +11 -0
  57. vibe/cli/textual_ui/widgets/path_display.py +28 -0
  58. vibe/cli/textual_ui/widgets/proxy_setup_app.py +127 -0
  59. vibe/cli/textual_ui/widgets/question_app.py +496 -0
  60. vibe/cli/textual_ui/widgets/spinner.py +194 -0
  61. vibe/cli/textual_ui/widgets/status_message.py +76 -0
  62. vibe/cli/textual_ui/widgets/teleport_message.py +31 -0
  63. vibe/cli/textual_ui/widgets/tool_widgets.py +371 -0
  64. vibe/cli/textual_ui/widgets/tools.py +201 -0
  65. vibe/cli/textual_ui/windowing/__init__.py +29 -0
  66. vibe/cli/textual_ui/windowing/history.py +105 -0
  67. vibe/cli/textual_ui/windowing/history_windowing.py +71 -0
  68. vibe/cli/textual_ui/windowing/state.py +105 -0
  69. vibe/cli/update_notifier/__init__.py +47 -0
  70. vibe/cli/update_notifier/adapters/filesystem_update_cache_repository.py +59 -0
  71. vibe/cli/update_notifier/adapters/github_update_gateway.py +101 -0
  72. vibe/cli/update_notifier/adapters/pypi_update_gateway.py +107 -0
  73. vibe/cli/update_notifier/ports/update_cache_repository.py +16 -0
  74. vibe/cli/update_notifier/ports/update_gateway.py +53 -0
  75. vibe/cli/update_notifier/update.py +139 -0
  76. vibe/cli/update_notifier/whats_new.py +49 -0
  77. vibe/core/__init__.py +5 -0
  78. vibe/core/agent_loop.py +1075 -0
  79. vibe/core/agents/__init__.py +31 -0
  80. vibe/core/agents/manager.py +165 -0
  81. vibe/core/agents/models.py +122 -0
  82. vibe/core/auth/__init__.py +6 -0
  83. vibe/core/auth/crypto.py +137 -0
  84. vibe/core/auth/github.py +178 -0
  85. vibe/core/autocompletion/__init__.py +0 -0
  86. vibe/core/autocompletion/completers.py +257 -0
  87. vibe/core/autocompletion/file_indexer/__init__.py +10 -0
  88. vibe/core/autocompletion/file_indexer/ignore_rules.py +156 -0
  89. vibe/core/autocompletion/file_indexer/indexer.py +179 -0
  90. vibe/core/autocompletion/file_indexer/store.py +169 -0
  91. vibe/core/autocompletion/file_indexer/watcher.py +71 -0
  92. vibe/core/autocompletion/fuzzy.py +189 -0
  93. vibe/core/autocompletion/path_prompt.py +108 -0
  94. vibe/core/autocompletion/path_prompt_adapter.py +149 -0
  95. vibe/core/config.py +673 -0
  96. vibe/core/config_PATCH_INSTRUCTIONS.md +77 -0
  97. vibe/core/llm/__init__.py +0 -0
  98. vibe/core/llm/backend/anthropic.py +630 -0
  99. vibe/core/llm/backend/base.py +38 -0
  100. vibe/core/llm/backend/factory.py +7 -0
  101. vibe/core/llm/backend/generic.py +425 -0
  102. vibe/core/llm/backend/mistral.py +381 -0
  103. vibe/core/llm/backend/vertex.py +115 -0
  104. vibe/core/llm/exceptions.py +195 -0
  105. vibe/core/llm/format.py +184 -0
  106. vibe/core/llm/message_utils.py +24 -0
  107. vibe/core/llm/types.py +120 -0
  108. vibe/core/middleware.py +209 -0
  109. vibe/core/output_formatters.py +85 -0
  110. vibe/core/paths/__init__.py +0 -0
  111. vibe/core/paths/config_paths.py +68 -0
  112. vibe/core/paths/global_paths.py +40 -0
  113. vibe/core/programmatic.py +56 -0
  114. vibe/core/prompts/__init__.py +32 -0
  115. vibe/core/prompts/cli.md +111 -0
  116. vibe/core/prompts/compact.md +48 -0
  117. vibe/core/prompts/dangerous_directory.md +5 -0
  118. vibe/core/prompts/explore.md +50 -0
  119. vibe/core/prompts/project_context.md +8 -0
  120. vibe/core/prompts/tests.md +1 -0
  121. vibe/core/proxy_setup.py +65 -0
  122. vibe/core/session/session_loader.py +222 -0
  123. vibe/core/session/session_logger.py +318 -0
  124. vibe/core/session/session_migration.py +41 -0
  125. vibe/core/skills/__init__.py +7 -0
  126. vibe/core/skills/manager.py +132 -0
  127. vibe/core/skills/models.py +92 -0
  128. vibe/core/skills/parser.py +39 -0
  129. vibe/core/system_prompt.py +466 -0
  130. vibe/core/telemetry/__init__.py +0 -0
  131. vibe/core/telemetry/send.py +185 -0
  132. vibe/core/teleport/errors.py +9 -0
  133. vibe/core/teleport/git.py +196 -0
  134. vibe/core/teleport/nuage.py +180 -0
  135. vibe/core/teleport/teleport.py +208 -0
  136. vibe/core/teleport/types.py +54 -0
  137. vibe/core/tools/base.py +336 -0
  138. vibe/core/tools/builtins/ask_user_question.py +134 -0
  139. vibe/core/tools/builtins/bash.py +357 -0
  140. vibe/core/tools/builtins/grep.py +310 -0
  141. vibe/core/tools/builtins/prompts/__init__.py +0 -0
  142. vibe/core/tools/builtins/prompts/ask_user_question.md +84 -0
  143. vibe/core/tools/builtins/prompts/bash.md +73 -0
  144. vibe/core/tools/builtins/prompts/grep.md +4 -0
  145. vibe/core/tools/builtins/prompts/read_file.md +13 -0
  146. vibe/core/tools/builtins/prompts/search_replace.md +43 -0
  147. vibe/core/tools/builtins/prompts/task.md +24 -0
  148. vibe/core/tools/builtins/prompts/todo.md +199 -0
  149. vibe/core/tools/builtins/prompts/write_file.md +42 -0
  150. vibe/core/tools/builtins/read_file.py +222 -0
  151. vibe/core/tools/builtins/search_replace.py +456 -0
  152. vibe/core/tools/builtins/task.py +154 -0
  153. vibe/core/tools/builtins/todo.py +134 -0
  154. vibe/core/tools/builtins/write_file.py +160 -0
  155. vibe/core/tools/manager.py +341 -0
  156. vibe/core/tools/mcp.py +397 -0
  157. vibe/core/tools/ui.py +68 -0
  158. vibe/core/trusted_folders.py +86 -0
  159. vibe/core/types.py +405 -0
  160. vibe/core/utils.py +396 -0
  161. vibe/setup/onboarding/__init__.py +39 -0
  162. vibe/setup/onboarding/base.py +14 -0
  163. vibe/setup/onboarding/onboarding.tcss +134 -0
  164. vibe/setup/onboarding/screens/__init__.py +5 -0
  165. vibe/setup/onboarding/screens/api_key.py +200 -0
  166. vibe/setup/onboarding/screens/provider_selection.py +87 -0
  167. vibe/setup/onboarding/screens/welcome.py +136 -0
  168. vibe/setup/trusted_folders/trust_folder_dialog.py +180 -0
  169. vibe/setup/trusted_folders/trust_folder_dialog.tcss +83 -0
  170. vibe/whats_new.md +5 -0
@@ -0,0 +1,1020 @@
1
+ $mistral_orange: #FF8205;
2
+
3
+ * {
4
+ scrollbar-color: ansi_black;
5
+ scrollbar-color-hover: ansi_bright_black;
6
+ scrollbar-color-active: ansi_bright_black;
7
+ scrollbar-background: transparent;
8
+ scrollbar-background-hover: transparent;
9
+ scrollbar-background-active: transparent;
10
+ scrollbar-size: 1 1;
11
+ }
12
+
13
+ Screen {
14
+ background: transparent;
15
+ }
16
+
17
+ Horizontal {
18
+ width: 100%;
19
+ height: auto;
20
+ }
21
+
22
+ TextArea > .text-area--cursor {
23
+ color: ansi_default;
24
+ }
25
+
26
+ #chat {
27
+ layout: stream;
28
+ height: 1fr;
29
+ width: 100%;
30
+ background: transparent;
31
+ padding: 0;
32
+ }
33
+
34
+ #loading-area {
35
+ height: auto;
36
+ width: 100%;
37
+ background: transparent;
38
+ padding: 1 0 0 0;
39
+ layout: horizontal;
40
+ align: left middle;
41
+ }
42
+
43
+ #loading-area-content {
44
+ width: 1fr;
45
+ height: auto;
46
+ align: left middle;
47
+ }
48
+
49
+ #bottom-app-container,
50
+ #input-container {
51
+ height: auto;
52
+ width: 100%;
53
+ background: transparent;
54
+ }
55
+
56
+ #bottom-bar {
57
+ height: auto;
58
+ width: 100%;
59
+ background: transparent;
60
+ padding: 0;
61
+ align: left middle;
62
+ layout: horizontal;
63
+ }
64
+
65
+ #spacer {
66
+ width: 1fr;
67
+ height: auto;
68
+ background: transparent;
69
+ }
70
+
71
+ #messages {
72
+ layout: stream;
73
+ width: 100%;
74
+ height: auto;
75
+ text-align: left;
76
+ margin-top: 1;
77
+ margin-bottom: 0;
78
+ }
79
+
80
+ #input-container {
81
+ padding: 0;
82
+ margin: 0;
83
+ }
84
+
85
+ #completion-popup {
86
+ width: 100%;
87
+ padding: 1;
88
+ color: ansi_default;
89
+ }
90
+
91
+ #input-box {
92
+ height: auto;
93
+ width: 100%;
94
+ background: transparent;
95
+ border: solid ansi_bright_black;
96
+ border-title-align: right;
97
+ border-title-color: ansi_bright_black;
98
+ padding: 0 1;
99
+
100
+ &.border-warning {
101
+ border: solid ansi_yellow;
102
+ border-title-color: ansi_yellow;
103
+ }
104
+
105
+ &.border-safe {
106
+ border: solid ansi_green;
107
+ border-title-color: ansi_green;
108
+ }
109
+
110
+ &.border-error {
111
+ border: solid ansi_red;
112
+ border-title-color: ansi_red;
113
+ }
114
+ }
115
+
116
+ #input-body {
117
+ height: auto;
118
+ }
119
+
120
+ #prompt {
121
+ width: auto;
122
+ background: transparent;
123
+ color: $mistral_orange;
124
+ text-style: bold;
125
+ padding: 0 1 0 0;
126
+ }
127
+
128
+ #input {
129
+ width: 1fr;
130
+ height: auto;
131
+ min-height: 3;
132
+ max-height: 50vh;
133
+ background: transparent;
134
+ color: ansi_default;
135
+ border: none;
136
+ padding: 0;
137
+ scrollbar-visibility: hidden;
138
+ }
139
+
140
+ ToastRack {
141
+ align: left bottom;
142
+ padding: 0;
143
+ margin: 0 0 6 0;
144
+ }
145
+
146
+ Markdown {
147
+ color: ansi_default;
148
+
149
+ .code_inline {
150
+ color: ansi_default;
151
+ background: ansi_bright_black;
152
+ }
153
+
154
+ MarkdownFence {
155
+ overflow-x: auto;
156
+ scrollbar-size-horizontal: 1;
157
+ max-width: 95%;
158
+ background: transparent;
159
+
160
+ & > Label {
161
+ padding: 0;
162
+ }
163
+ }
164
+
165
+ MarkdownTable {
166
+ background: transparent;
167
+ }
168
+
169
+ MarkdownBlockQuote {
170
+ background: transparent;
171
+ border-left: outer ansi_bright_black;
172
+ }
173
+
174
+ MarkdownBullet,
175
+ MarkdownBulletList,
176
+ MarkdownOrderedList {
177
+ color: ansi_default;
178
+ }
179
+ }
180
+
181
+ .user-message {
182
+ margin-top: 1;
183
+ width: 100%;
184
+ height: auto;
185
+
186
+ &.pending {
187
+ .user-message-prompt,
188
+ .user-message-content {
189
+ opacity: 0.7;
190
+ text-style: italic;
191
+ }
192
+ }
193
+ }
194
+
195
+ .user-message-container {
196
+ width: 100%;
197
+ height: auto;
198
+ }
199
+
200
+ .user-message-prompt {
201
+ width: auto;
202
+ height: 100%;
203
+ text-style: bold;
204
+ }
205
+
206
+ .user-message-content {
207
+ width: 1fr;
208
+ height: auto;
209
+ text-style: bold;
210
+ padding-left: 1;
211
+ border-left: heavy $mistral_orange;
212
+ color: $mistral_orange;
213
+ }
214
+
215
+ .assistant-message {
216
+ layout: stream;
217
+ margin-top: 1;
218
+ width: 100%;
219
+ height: auto;
220
+
221
+ Markdown {
222
+ width: 100%;
223
+ height: auto;
224
+ padding: 0;
225
+ margin: 0;
226
+
227
+ & > *:last-child {
228
+ margin-bottom: 0;
229
+ }
230
+ }
231
+ }
232
+
233
+ .reasoning-message {
234
+ margin-top: 1;
235
+ width: 100%;
236
+ height: auto;
237
+ }
238
+
239
+ .reasoning-message-wrapper,
240
+ .reasoning-message-header {
241
+ width: 100%;
242
+ height: auto;
243
+ }
244
+
245
+ .reasoning-indicator {
246
+ width: auto;
247
+ height: auto;
248
+ color: ansi_bright_black;
249
+ margin-right: 1;
250
+
251
+ &.success {
252
+ color: ansi_green;
253
+ }
254
+ }
255
+
256
+ .reasoning-collapsed-text,
257
+ .reasoning-triangle {
258
+ width: auto;
259
+ height: auto;
260
+ color: ansi_bright_black;
261
+ text-style: italic;
262
+ }
263
+
264
+ .reasoning-triangle {
265
+ margin-left: 1;
266
+ }
267
+
268
+ .reasoning-message-content {
269
+ layout: stream;
270
+ width: 100%;
271
+ height: auto;
272
+ padding: 0 0 0 2;
273
+ margin: 0;
274
+ color: ansi_bright_black;
275
+ text-style: italic;
276
+
277
+ * {
278
+ color: ansi_bright_black;
279
+ text-style: italic;
280
+ }
281
+
282
+ & > *:last-child {
283
+ margin-bottom: 0;
284
+ }
285
+ }
286
+
287
+ .interrupt-message,
288
+ .error-message,
289
+ .warning-message,
290
+ .user-command-message {
291
+ margin-top: 0;
292
+ margin-bottom: 0;
293
+ height: auto;
294
+ width: 100%;
295
+ }
296
+
297
+ .interrupt-container,
298
+ .error-container,
299
+ .warning-container,
300
+ .user-command-container {
301
+ width: 100%;
302
+ height: auto;
303
+ margin: 0;
304
+ padding: 0;
305
+ }
306
+
307
+ .interrupt-border,
308
+ .error-border,
309
+ .warning-border,
310
+ .user-command-border {
311
+ width: auto;
312
+ height: 100%;
313
+ padding: 0 1 0 2;
314
+ color: ansi_bright_black;
315
+ }
316
+
317
+ .interrupt-content {
318
+ width: 1fr;
319
+ height: auto;
320
+ margin: 0;
321
+ color: ansi_yellow;
322
+ }
323
+
324
+ .error-content {
325
+ width: 1fr;
326
+ height: auto;
327
+ margin: 0;
328
+ color: ansi_red;
329
+ text-style: bold;
330
+ }
331
+
332
+ .warning-content {
333
+ width: 1fr;
334
+ height: auto;
335
+ margin: 0;
336
+ color: ansi_yellow;
337
+ }
338
+
339
+ .user-command-content {
340
+ width: 1fr;
341
+ height: auto;
342
+ margin: 0;
343
+
344
+ Markdown {
345
+ margin: 0;
346
+ padding: 0;
347
+
348
+ & > *:first-child {
349
+ margin-top: 0;
350
+ }
351
+
352
+ & > *:last-child {
353
+ margin-bottom: 0;
354
+ }
355
+ }
356
+ }
357
+
358
+ .bash-output-message {
359
+ margin-top: 1;
360
+ width: 100%;
361
+ height: auto;
362
+
363
+ &:first-child {
364
+ margin-top: 0;
365
+ }
366
+ }
367
+
368
+ .bash-command-line {
369
+ width: 100%;
370
+ height: auto;
371
+ margin: 0;
372
+ }
373
+
374
+ .bash-prompt {
375
+ width: auto;
376
+ height: auto;
377
+
378
+ &.bash-success {
379
+ color: ansi_green;
380
+ }
381
+
382
+ &.bash-error {
383
+ color: ansi_red;
384
+ }
385
+ }
386
+
387
+ .bash-command {
388
+ width: 1fr;
389
+ height: auto;
390
+ }
391
+
392
+ .bash-output-container {
393
+ width: 100%;
394
+ height: auto;
395
+ margin: 0;
396
+ }
397
+
398
+ .bash-output-border {
399
+ width: auto;
400
+ height: 100%;
401
+ padding: 0 1 0 2;
402
+ color: ansi_bright_black;
403
+ }
404
+
405
+ .bash-output {
406
+ width: 1fr;
407
+ height: auto;
408
+ }
409
+
410
+ .unknown-event {
411
+ height: auto;
412
+ color: ansi_bright_black;
413
+ }
414
+
415
+ StatusMessage {
416
+ width: 100%;
417
+ height: auto;
418
+
419
+ Horizontal {
420
+ width: 100%;
421
+ height: auto;
422
+ }
423
+ }
424
+
425
+ .status-indicator-icon {
426
+ width: auto;
427
+ height: auto;
428
+ color: ansi_default;
429
+ margin-right: 1;
430
+
431
+ &.success {
432
+ color: ansi_green;
433
+ }
434
+
435
+ &.error {
436
+ color: ansi_red;
437
+ }
438
+ }
439
+
440
+ .status-indicator-text {
441
+ width: 1fr;
442
+ height: auto;
443
+ color: ansi_default;
444
+ }
445
+
446
+ .compact-message,
447
+ .tool-call {
448
+ width: 100%;
449
+ height: auto;
450
+ margin-top: 1;
451
+ }
452
+
453
+ .tool-call.no-gap {
454
+ margin-top: 0;
455
+ }
456
+
457
+ .tool-call-container {
458
+ width: 100%;
459
+ height: auto;
460
+ }
461
+
462
+ .tool-stream-message {
463
+ width: 100%;
464
+ height: auto;
465
+ color: ansi_bright_black;
466
+ padding-left: 2;
467
+ }
468
+
469
+ .tool-result {
470
+ width: 100%;
471
+ height: auto;
472
+ margin-top: 0;
473
+ margin-left: 0;
474
+ padding: 0;
475
+ background: transparent;
476
+ color: ansi_default;
477
+
478
+ &.error-text {
479
+ color: ansi_red;
480
+ }
481
+
482
+ &.warning-text {
483
+ color: ansi_yellow;
484
+ }
485
+ }
486
+
487
+ .tool-result-container {
488
+ width: 100%;
489
+ height: auto;
490
+ margin-top: 0;
491
+ padding: 0;
492
+ }
493
+
494
+ .tool-result-border {
495
+ width: auto;
496
+ height: 100%;
497
+ padding: 0 1 0 2;
498
+ color: ansi_bright_black;
499
+ }
500
+
501
+ .tool-result-content {
502
+ width: 1fr;
503
+ height: auto;
504
+ padding: 0;
505
+ }
506
+
507
+ .tool-call-widget,
508
+ .tool-result-widget {
509
+ width: 100%;
510
+ height: auto;
511
+ color: ansi_default;
512
+ }
513
+
514
+ .tool-result-widget Static {
515
+ height: auto;
516
+ }
517
+
518
+ .tool-call-detail,
519
+ .tool-result-detail {
520
+ height: auto;
521
+ color: ansi_bright_black;
522
+ }
523
+
524
+ .tool-result-detail {
525
+ margin-top: 0;
526
+ }
527
+
528
+ .tool-result-error {
529
+ color: ansi_red;
530
+ }
531
+
532
+ .tool-result-warning {
533
+ color: ansi_yellow;
534
+ }
535
+
536
+ .diff-header {
537
+ height: auto;
538
+ color: ansi_bright_black;
539
+ text-style: bold;
540
+ }
541
+
542
+ .diff-removed {
543
+ height: auto;
544
+ color: ansi_red;
545
+ }
546
+
547
+ .diff-added {
548
+ height: auto;
549
+ color: ansi_green;
550
+ }
551
+
552
+ .diff-range {
553
+ height: auto;
554
+ color: ansi_blue;
555
+ }
556
+
557
+ .diff-context {
558
+ height: auto;
559
+ color: ansi_bright_black;
560
+ }
561
+
562
+ .todo-empty,
563
+ .todo-cancelled {
564
+ height: auto;
565
+ color: ansi_bright_black;
566
+ }
567
+
568
+ .todo-pending {
569
+ height: auto;
570
+ color: ansi_default;
571
+ }
572
+
573
+ .todo-in_progress {
574
+ height: auto;
575
+ color: ansi_yellow;
576
+ }
577
+
578
+ .todo-completed {
579
+ height: auto;
580
+ color: ansi_green;
581
+ }
582
+
583
+ .loading-widget {
584
+ width: 100%;
585
+ height: auto;
586
+ color: ansi_bright_black;
587
+ }
588
+
589
+ .loading-container,
590
+ .loading-indicator,
591
+ .loading-status,
592
+ .loading-hint {
593
+ width: auto;
594
+ height: auto;
595
+ }
596
+
597
+ .loading-indicator {
598
+ margin-right: 1;
599
+ }
600
+
601
+ .loading-status {
602
+ width: auto;
603
+ height: auto;
604
+ }
605
+
606
+ .loading-char {
607
+ width: auto;
608
+ height: auto;
609
+ }
610
+
611
+ .loading-hint {
612
+ width: auto;
613
+ height: auto;
614
+ color: $foreground;
615
+ }
616
+
617
+ .history-load-more-message {
618
+ width: 100%;
619
+ height: auto;
620
+ text-align: center;
621
+ content-align: center middle;
622
+ margin: 1 0;
623
+ }
624
+
625
+ .history-load-more-container {
626
+ width: 100%;
627
+ height: auto;
628
+ content-align: center middle;
629
+ }
630
+
631
+ .history-load-more-button {
632
+ background: transparent;
633
+ border: none;
634
+ color: ansi_yellow;
635
+ text-style: bold;
636
+ pointer: pointer;
637
+ padding: 1;
638
+ }
639
+
640
+ .history-load-more-button:hover {
641
+
642
+ }
643
+
644
+ #config-app {
645
+ width: 100%;
646
+ height: auto;
647
+ background: transparent;
648
+ border: solid ansi_bright_black;
649
+ padding: 0 1;
650
+ margin: 0;
651
+ }
652
+
653
+ #config-content {
654
+ width: 100%;
655
+ height: auto;
656
+ }
657
+
658
+ .settings-title {
659
+ height: auto;
660
+ text-style: bold;
661
+ color: ansi_blue;
662
+ }
663
+
664
+ .settings-option {
665
+ height: auto;
666
+ color: ansi_default;
667
+ }
668
+
669
+ .settings-cursor-selected {
670
+ color: ansi_blue;
671
+ text-style: bold;
672
+ }
673
+
674
+ .settings-label-selected {
675
+ color: ansi_default;
676
+ text-style: bold;
677
+ }
678
+
679
+ .settings-value-toggle-on-selected {
680
+ color: ansi_green;
681
+ text-style: bold;
682
+ }
683
+
684
+ .settings-value-toggle-on-unselected {
685
+ color: ansi_green;
686
+ }
687
+
688
+ .settings-value-toggle-off {
689
+ color: ansi_bright_black;
690
+ }
691
+
692
+ .settings-value-cycle-selected {
693
+ color: ansi_blue;
694
+ text-style: bold;
695
+ }
696
+
697
+ .settings-value-cycle-unselected {
698
+ color: ansi_blue;
699
+ }
700
+
701
+ .settings-help {
702
+ height: auto;
703
+ color: ansi_bright_black;
704
+ }
705
+
706
+ #proxysetup-app {
707
+ width: 100%;
708
+ height: auto;
709
+ background: transparent;
710
+ border: solid ansi_bright_black;
711
+ padding: 0 1;
712
+ margin: 0;
713
+ }
714
+
715
+ #proxysetup-content {
716
+ width: 100%;
717
+ height: auto;
718
+ }
719
+
720
+ .proxy-label {
721
+ height: auto;
722
+ color: ansi_blue;
723
+ text-style: bold;
724
+ }
725
+
726
+ .proxy-description {
727
+ height: auto;
728
+ color: ansi_bright_black;
729
+ }
730
+
731
+ .proxy-label-line {
732
+ height: auto;
733
+ }
734
+
735
+ .proxy-input {
736
+ width: 100%;
737
+ height: auto;
738
+ border: none;
739
+ border-left: wide ansi_bright_black;
740
+ margin-top: 1;
741
+ padding: 0 0 0 1;
742
+ }
743
+
744
+ #approval-app {
745
+ width: 100%;
746
+ height: auto;
747
+ max-height: 70vh;
748
+ background: transparent;
749
+ border: solid ansi_bright_black;
750
+ padding: 0 1;
751
+ margin: 0;
752
+ }
753
+
754
+ #approval-options {
755
+ width: 100%;
756
+ height: auto;
757
+ dock: bottom;
758
+ }
759
+
760
+ #approval-content {
761
+ width: 100%;
762
+ height: auto;
763
+ }
764
+
765
+ .approval-tool-info-scroll {
766
+ width: 100%;
767
+ height: auto;
768
+ max-height: 50vh;
769
+ }
770
+
771
+ .approval-title {
772
+ height: auto;
773
+ text-style: bold;
774
+ color: ansi_yellow;
775
+ }
776
+
777
+ .approval-tool-info-container {
778
+ width: 100%;
779
+ height: auto;
780
+ }
781
+
782
+ .tool-approval-widget {
783
+ width: 100%;
784
+ height: auto;
785
+
786
+ Static,
787
+ Vertical {
788
+ width: 100%;
789
+ height: auto;
790
+ }
791
+ }
792
+
793
+ .approval-option {
794
+ height: auto;
795
+ color: ansi_default;
796
+ }
797
+
798
+ .approval-cursor-selected {
799
+ &.approval-option-yes {
800
+ color: ansi_green;
801
+ text-style: bold;
802
+ }
803
+
804
+ &.approval-option-no {
805
+ color: ansi_red;
806
+ text-style: bold;
807
+ }
808
+ }
809
+
810
+ .approval-option-selected {
811
+ &.approval-option-yes {
812
+ color: ansi_green;
813
+ }
814
+
815
+ &.approval-option-no {
816
+ color: ansi_red;
817
+ }
818
+ }
819
+
820
+ .approval-help {
821
+ height: auto;
822
+ color: ansi_bright_black;
823
+ }
824
+
825
+ .approval-description {
826
+ height: auto;
827
+ color: ansi_default;
828
+ }
829
+
830
+ .code-block {
831
+ height: auto;
832
+ color: ansi_default;
833
+ background: transparent;
834
+ padding: 1;
835
+ }
836
+
837
+ #question-app {
838
+ width: 100%;
839
+ height: auto;
840
+ max-height: 70vh;
841
+ background: transparent;
842
+ border: solid ansi_bright_black;
843
+ padding: 0 1;
844
+ margin: 0;
845
+ }
846
+
847
+ #question-content {
848
+ width: 100%;
849
+ height: auto;
850
+ }
851
+
852
+ .question-tabs {
853
+ height: auto;
854
+ color: ansi_blue;
855
+ margin-bottom: 1;
856
+ }
857
+
858
+ .question-title {
859
+ height: auto;
860
+ text-style: bold;
861
+ color: ansi_blue;
862
+ margin-bottom: 1;
863
+ }
864
+
865
+ .question-option {
866
+ height: auto;
867
+ color: ansi_default;
868
+ }
869
+
870
+ .question-option-selected {
871
+ color: ansi_blue;
872
+ text-style: bold;
873
+ }
874
+
875
+ .question-other-row {
876
+ width: 100%;
877
+ height: auto;
878
+ }
879
+
880
+ .question-other-prefix {
881
+ width: auto;
882
+ height: auto;
883
+ color: ansi_default;
884
+ }
885
+
886
+ .question-other-input {
887
+ width: 1fr;
888
+ height: auto;
889
+ background: transparent;
890
+ border: none;
891
+ padding: 0;
892
+ }
893
+
894
+ .question-other-static {
895
+ width: auto;
896
+ height: auto;
897
+ color: ansi_bright_black;
898
+ }
899
+
900
+ .question-submit {
901
+ height: auto;
902
+ color: ansi_default;
903
+ margin-top: 1;
904
+ }
905
+
906
+ .question-help {
907
+ height: auto;
908
+ color: ansi_bright_black;
909
+ margin-top: 1;
910
+ }
911
+
912
+ ExpandingBorder {
913
+ width: auto;
914
+ height: 100%;
915
+ content-align: left bottom;
916
+ }
917
+
918
+ PathDisplay,
919
+ ContextProgress {
920
+ width: auto;
921
+ height: auto;
922
+ background: transparent;
923
+ padding: 0;
924
+ margin: 0;
925
+ color: ansi_bright_black;
926
+ }
927
+
928
+ #banner-container {
929
+ align: left middle;
930
+ padding: 0 1 0 0;
931
+ width: auto;
932
+ }
933
+
934
+ .banner-chat {
935
+ width: auto;
936
+ }
937
+
938
+ #banner-info {
939
+ width: auto;
940
+ height: auto;
941
+ margin-left: 2;
942
+ content-align: left middle;
943
+ }
944
+
945
+ .banner-line {
946
+ width: auto;
947
+ height: auto;
948
+ }
949
+
950
+ #banner-brand {
951
+ color: $mistral_orange;
952
+ text-style: bold;
953
+ width: auto;
954
+ }
955
+
956
+ .banner-spacer {
957
+ width: 1;
958
+ color: transparent;
959
+ }
960
+
961
+ .banner-meta {
962
+ color: ansi_default;
963
+ width: auto;
964
+ }
965
+
966
+ #banner-model {
967
+ color: ansi_cyan;
968
+ width: auto;
969
+ }
970
+
971
+ #banner-meta-counts {
972
+ width: auto;
973
+ }
974
+
975
+ .banner-cmd {
976
+ color: ansi_cyan;
977
+ width: auto;
978
+ }
979
+
980
+ .petit-chat {
981
+ color: ansi_default;
982
+ width: 12;
983
+ }
984
+
985
+ .whats-new-message {
986
+ border-left: heavy $mistral_orange;
987
+ margin-bottom: 1;
988
+
989
+ Markdown {
990
+ padding: 0 0 0 1;
991
+ margin: 0;
992
+
993
+ & > *:first-child {
994
+ margin-top: 0;
995
+ }
996
+
997
+ & > *:last-child {
998
+ margin-bottom: 0;
999
+ }
1000
+
1001
+ MarkdownBulletList,
1002
+ MarkdownOrderedList {
1003
+ margin-top: 1;
1004
+ margin-bottom: 1;
1005
+ }
1006
+
1007
+ MarkdownH1 {
1008
+ content-align: left middle;
1009
+ }
1010
+ }
1011
+
1012
+ link-style: none;
1013
+ link-background-hover: transparent;
1014
+ link-style-hover: underline;
1015
+ link-color-hover: $mistral_orange;
1016
+ }
1017
+
1018
+ .whats-new-message.after-history {
1019
+ margin-top: 1;
1020
+ }