diff --git a/frontend/src/components/FloatingTerminal.vue b/frontend/src/components/FloatingTerminal.vue
index 59c1f50..1063632 100644
--- a/frontend/src/components/FloatingTerminal.vue
+++ b/frontend/src/components/FloatingTerminal.vue
@@ -568,6 +568,24 @@ function runClaude() {
}
}
+function runClaudeContinue() {
+ if (socket && socket.readyState === WebSocket.OPEN) {
+ socket.send(JSON.stringify({ type: 'input', data: 'claude --continue\r' }))
+ }
+}
+
+function runClaudeResume() {
+ if (socket && socket.readyState === WebSocket.OPEN) {
+ socket.send(JSON.stringify({ type: 'input', data: 'claude --resume\r' }))
+ }
+}
+
+function sendClear() {
+ if (socket && socket.readyState === WebSocket.OPEN) {
+ socket.send(JSON.stringify({ type: 'input', data: 'clear\r' }))
+ }
+}
+
function requestToken() {
if (socket && socket.readyState === WebSocket.OPEN) {
tokenBuffer = ''
@@ -851,6 +869,11 @@ defineExpose({
+
+
+
+
+
@@ -1216,6 +1239,37 @@ defineExpose({
font-size: 18px;
}
+.vk.clear {
+ background: linear-gradient(180deg, #6b7280 0%, #4b5563 100%);
+ border-color: rgba(107, 114, 128, 0.3);
+}
+
+.vk.token {
+ background: linear-gradient(180deg, #ec4899 0%, #db2777 100%);
+ border-color: rgba(236, 72, 153, 0.3);
+}
+
+.vk.token.waiting {
+ background: linear-gradient(180deg, #10b981 0%, #059669 100%);
+ border-color: rgba(16, 185, 129, 0.3);
+ animation: pulse 0.8s infinite;
+}
+
+.vk.claude {
+ background: linear-gradient(180deg, #8b5cf6 0%, #7c3aed 100%);
+ border-color: rgba(139, 92, 246, 0.3);
+}
+
+.vk.claude-cont {
+ background: linear-gradient(180deg, #06b6d4 0%, #0891b2 100%);
+ border-color: rgba(6, 182, 212, 0.3);
+}
+
+.vk.claude-resume {
+ background: linear-gradient(180deg, #10b981 0%, #059669 100%);
+ border-color: rgba(16, 185, 129, 0.3);
+}
+
.vk-scroll {
display: flex;
flex-direction: column;