Replace built-in Header with a custom HeaderPanel showing model name, mode badge, and live token usage. Add AgentMode enum (normal/plan/auto) with mode-aware permission gating — Plan mode restricts to read-only tools, Auto mode auto-approves everything. Includes /mode slash command and Ctrl+P keybinding to cycle modes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
63 lines
885 B
Plaintext
63 lines
885 B
Plaintext
/* SneakyCode TUI Layout */
|
|
|
|
Screen {
|
|
layout: vertical;
|
|
}
|
|
|
|
#chat-log {
|
|
height: 1fr;
|
|
border: none;
|
|
scrollbar-gutter: stable;
|
|
}
|
|
|
|
#streaming {
|
|
display: none;
|
|
height: auto;
|
|
max-height: 50%;
|
|
padding: 0 1;
|
|
}
|
|
|
|
#streaming.visible {
|
|
display: block;
|
|
}
|
|
|
|
/* Modal dialog */
|
|
#permission-dialog {
|
|
width: 60;
|
|
height: auto;
|
|
max-height: 12;
|
|
border: thick $accent;
|
|
background: $surface;
|
|
padding: 1 2;
|
|
}
|
|
|
|
.modal-title {
|
|
text-style: bold;
|
|
margin-bottom: 1;
|
|
}
|
|
|
|
.modal-body {
|
|
margin-bottom: 1;
|
|
color: $text-muted;
|
|
}
|
|
|
|
.modal-buttons {
|
|
height: 3;
|
|
align: center middle;
|
|
}
|
|
|
|
.modal-buttons Button {
|
|
margin: 0 1;
|
|
}
|
|
|
|
/* StatusBar styles are in DEFAULT_CSS on the widget itself */
|
|
|
|
Input {
|
|
dock: bottom;
|
|
margin: 0;
|
|
border: none;
|
|
padding: 0 1;
|
|
}
|
|
|
|
/* HeaderPanel styles are in DEFAULT_CSS on the widget itself */
|