claude-relay 2.3.1 → 2.4.0
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.
- package/README.md +20 -5
- package/bin/cli.js +206 -8
- package/lib/cli-sessions.js +270 -0
- package/lib/daemon.js +40 -0
- package/lib/project.js +121 -1
- package/lib/public/app.js +385 -76
- package/lib/public/css/base.css +41 -7
- package/lib/public/css/diff.css +6 -6
- package/lib/public/css/filebrowser.css +34 -54
- package/lib/public/css/highlight.css +144 -0
- package/lib/public/css/input.css +9 -9
- package/lib/public/css/menus.css +82 -23
- package/lib/public/css/messages.css +178 -34
- package/lib/public/css/overlays.css +166 -50
- package/lib/public/css/rewind.css +17 -17
- package/lib/public/css/sidebar.css +210 -137
- package/lib/public/index.html +73 -40
- package/lib/public/modules/filebrowser.js +2 -1
- package/lib/public/modules/markdown.js +10 -10
- package/lib/public/modules/notifications.js +38 -1
- package/lib/public/modules/sidebar.js +109 -31
- package/lib/public/modules/terminal.js +11 -23
- package/lib/public/modules/theme.js +622 -0
- package/lib/public/modules/tools.js +245 -4
- package/lib/public/modules/utils.js +21 -5
- package/lib/public/style.css +1 -0
- package/lib/sdk-bridge.js +95 -0
- package/lib/server.js +41 -0
- package/lib/sessions.js +16 -3
- package/lib/themes/ayu-light.json +9 -0
- package/lib/themes/catppuccin-latte.json +9 -0
- package/lib/themes/catppuccin-mocha.json +9 -0
- package/lib/themes/claude-light.json +9 -0
- package/lib/themes/claude.json +9 -0
- package/lib/themes/dracula.json +9 -0
- package/lib/themes/everforest-light.json +9 -0
- package/lib/themes/everforest.json +9 -0
- package/lib/themes/github-light.json +9 -0
- package/lib/themes/gruvbox-dark.json +9 -0
- package/lib/themes/gruvbox-light.json +9 -0
- package/lib/themes/monokai.json +9 -0
- package/lib/themes/nord-light.json +9 -0
- package/lib/themes/nord.json +9 -0
- package/lib/themes/one-dark.json +9 -0
- package/lib/themes/one-light.json +9 -0
- package/lib/themes/rose-pine-dawn.json +9 -0
- package/lib/themes/rose-pine.json +9 -0
- package/lib/themes/solarized-dark.json +9 -0
- package/lib/themes/solarized-light.json +9 -0
- package/lib/themes/tokyo-night-light.json +9 -0
- package/lib/themes/tokyo-night.json +9 -0
- package/package.json +2 -1
package/lib/public/css/menus.css
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
min-width: 0;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
.
|
|
21
|
+
.header-title {
|
|
22
22
|
font-weight: 600;
|
|
23
23
|
font-size: 15px;
|
|
24
24
|
color: var(--text);
|
|
@@ -27,6 +27,41 @@
|
|
|
27
27
|
white-space: nowrap;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
#header-rename-btn {
|
|
31
|
+
display: none;
|
|
32
|
+
align-items: center;
|
|
33
|
+
justify-content: center;
|
|
34
|
+
width: 24px;
|
|
35
|
+
height: 24px;
|
|
36
|
+
border: none;
|
|
37
|
+
background: transparent;
|
|
38
|
+
color: var(--text-dimmer);
|
|
39
|
+
cursor: pointer;
|
|
40
|
+
border-radius: 6px;
|
|
41
|
+
flex-shrink: 0;
|
|
42
|
+
padding: 0;
|
|
43
|
+
margin-left: 4px;
|
|
44
|
+
transition: color 0.15s, background 0.15s;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
#header-left:hover #header-rename-btn { display: flex; }
|
|
48
|
+
#header-rename-btn:hover { color: var(--text); background: rgba(var(--overlay-rgb), 0.06); }
|
|
49
|
+
#header-rename-btn .lucide { width: 13px; height: 13px; }
|
|
50
|
+
|
|
51
|
+
.header-rename-input {
|
|
52
|
+
font-weight: 600;
|
|
53
|
+
font-size: 15px;
|
|
54
|
+
color: var(--text);
|
|
55
|
+
background: var(--input-bg);
|
|
56
|
+
border: 1px solid var(--accent);
|
|
57
|
+
border-radius: 6px;
|
|
58
|
+
padding: 2px 8px;
|
|
59
|
+
font-family: inherit;
|
|
60
|
+
outline: none;
|
|
61
|
+
min-width: 0;
|
|
62
|
+
flex: 1;
|
|
63
|
+
}
|
|
64
|
+
|
|
30
65
|
.status {
|
|
31
66
|
display: flex;
|
|
32
67
|
align-items: center;
|
|
@@ -58,8 +93,8 @@
|
|
|
58
93
|
}
|
|
59
94
|
|
|
60
95
|
#debug-btn .lucide { width: 15px; height: 15px; }
|
|
61
|
-
#debug-btn:hover { opacity: 1; background:
|
|
62
|
-
#debug-btn.active { opacity: 1; background:
|
|
96
|
+
#debug-btn:hover { opacity: 1; background: var(--error-8); border-color: var(--error-25); }
|
|
97
|
+
#debug-btn.active { opacity: 1; background: var(--error-12); border-color: var(--error-25); }
|
|
63
98
|
|
|
64
99
|
#debug-menu {
|
|
65
100
|
position: absolute;
|
|
@@ -70,7 +105,7 @@
|
|
|
70
105
|
border-radius: 10px;
|
|
71
106
|
padding: 8px 0;
|
|
72
107
|
min-width: 200px;
|
|
73
|
-
box-shadow: 0 4px 16px rgba(
|
|
108
|
+
box-shadow: 0 4px 16px rgba(var(--shadow-rgb), 0.4);
|
|
74
109
|
z-index: 200;
|
|
75
110
|
}
|
|
76
111
|
|
|
@@ -99,7 +134,7 @@
|
|
|
99
134
|
transition: color 0.15s, background 0.15s, border-color 0.15s;
|
|
100
135
|
}
|
|
101
136
|
#terminal-toggle-btn .lucide { width: 15px; height: 15px; }
|
|
102
|
-
#terminal-toggle-btn:hover { color: var(--text-secondary); background: rgba(
|
|
137
|
+
#terminal-toggle-btn:hover { color: var(--text-secondary); background: rgba(var(--overlay-rgb),0.04); border-color: var(--border); }
|
|
103
138
|
#terminal-toggle-btn { position: relative; }
|
|
104
139
|
#terminal-count {
|
|
105
140
|
position: absolute;
|
|
@@ -134,13 +169,13 @@
|
|
|
134
169
|
transition: color 0.15s, background 0.15s, border-color 0.15s;
|
|
135
170
|
}
|
|
136
171
|
#qr-btn .lucide { width: 15px; height: 15px; }
|
|
137
|
-
#qr-btn:hover { color: var(--text-secondary); background: rgba(
|
|
138
|
-
#qr-btn.active { color: var(--text); background: rgba(
|
|
172
|
+
#qr-btn:hover { color: var(--text-secondary); background: rgba(var(--overlay-rgb),0.04); border-color: var(--border); }
|
|
173
|
+
#qr-btn.active { color: var(--text); background: rgba(var(--overlay-rgb),0.06); border-color: var(--border); }
|
|
139
174
|
|
|
140
175
|
#qr-overlay {
|
|
141
176
|
position: fixed;
|
|
142
177
|
inset: 0;
|
|
143
|
-
background: rgba(
|
|
178
|
+
background: rgba(var(--shadow-rgb), 0.6);
|
|
144
179
|
display: flex;
|
|
145
180
|
align-items: center;
|
|
146
181
|
justify-content: center;
|
|
@@ -156,7 +191,7 @@
|
|
|
156
191
|
flex-direction: column;
|
|
157
192
|
align-items: center;
|
|
158
193
|
gap: 14px;
|
|
159
|
-
box-shadow: 0 8px 32px rgba(
|
|
194
|
+
box-shadow: 0 8px 32px rgba(var(--shadow-rgb), 0.5);
|
|
160
195
|
}
|
|
161
196
|
|
|
162
197
|
#qr-canvas table { border-collapse: collapse; }
|
|
@@ -204,8 +239,8 @@
|
|
|
204
239
|
}
|
|
205
240
|
|
|
206
241
|
#notif-btn .lucide { width: 15px; height: 15px; }
|
|
207
|
-
#notif-btn:hover { color: var(--text-secondary); background: rgba(
|
|
208
|
-
#notif-btn.active { color: var(--text); background: rgba(
|
|
242
|
+
#notif-btn:hover { color: var(--text-secondary); background: rgba(var(--overlay-rgb),0.04); border-color: var(--border); }
|
|
243
|
+
#notif-btn.active { color: var(--text); background: rgba(var(--overlay-rgb),0.06); border-color: var(--border); }
|
|
209
244
|
|
|
210
245
|
#notif-menu {
|
|
211
246
|
position: absolute;
|
|
@@ -216,7 +251,7 @@
|
|
|
216
251
|
border-radius: 10px;
|
|
217
252
|
padding: 8px 0;
|
|
218
253
|
min-width: 200px;
|
|
219
|
-
box-shadow: 0 4px 16px rgba(
|
|
254
|
+
box-shadow: 0 4px 16px rgba(var(--shadow-rgb), 0.4);
|
|
220
255
|
z-index: 200;
|
|
221
256
|
}
|
|
222
257
|
|
|
@@ -245,14 +280,14 @@
|
|
|
245
280
|
flex-shrink: 0;
|
|
246
281
|
}
|
|
247
282
|
|
|
248
|
-
.notif-option:hover { background: rgba(
|
|
283
|
+
.notif-option:hover { background: rgba(var(--overlay-rgb), 0.03); }
|
|
249
284
|
.notif-option input { display: none; }
|
|
250
285
|
|
|
251
286
|
#notif-blocked-hint {
|
|
252
287
|
padding: 6px 14px;
|
|
253
288
|
font-size: 11px;
|
|
254
289
|
line-height: 1.5;
|
|
255
|
-
color: var(--warning
|
|
290
|
+
color: var(--warning);
|
|
256
291
|
}
|
|
257
292
|
|
|
258
293
|
#notif-blocked-hint.hidden { display: none; }
|
|
@@ -302,6 +337,30 @@
|
|
|
302
337
|
display: none;
|
|
303
338
|
}
|
|
304
339
|
|
|
340
|
+
/* iOS Safari notification info */
|
|
341
|
+
.notif-ios-info { cursor: default; }
|
|
342
|
+
.notif-ios-info-btn {
|
|
343
|
+
background: none;
|
|
344
|
+
border: none;
|
|
345
|
+
color: var(--text-dimmer);
|
|
346
|
+
cursor: pointer;
|
|
347
|
+
padding: 2px;
|
|
348
|
+
display: flex;
|
|
349
|
+
align-items: center;
|
|
350
|
+
transition: color 0.15s;
|
|
351
|
+
}
|
|
352
|
+
.notif-ios-info-btn:hover { color: var(--text-secondary); }
|
|
353
|
+
|
|
354
|
+
#notif-ios-hint {
|
|
355
|
+
padding: 6px 14px;
|
|
356
|
+
font-size: 11px;
|
|
357
|
+
line-height: 1.5;
|
|
358
|
+
color: var(--text-muted);
|
|
359
|
+
}
|
|
360
|
+
#notif-ios-hint .lucide { flex-shrink: 0; }
|
|
361
|
+
#notif-ios-hint strong { color: var(--text-secondary); }
|
|
362
|
+
#notif-ios-hint.hidden { display: none; }
|
|
363
|
+
|
|
305
364
|
.notif-action {
|
|
306
365
|
display: flex;
|
|
307
366
|
align-items: center;
|
|
@@ -317,7 +376,7 @@
|
|
|
317
376
|
transition: background 0.15s;
|
|
318
377
|
}
|
|
319
378
|
|
|
320
|
-
.notif-action:hover { background: rgba(
|
|
379
|
+
.notif-action:hover { background: rgba(var(--overlay-rgb), 0.03); }
|
|
321
380
|
.notif-action .lucide { flex-shrink: 0; }
|
|
322
381
|
|
|
323
382
|
.notif-action.copied { color: var(--success); }
|
|
@@ -382,8 +441,8 @@
|
|
|
382
441
|
}
|
|
383
442
|
|
|
384
443
|
#model-btn .lucide { width: 10px; height: 10px; }
|
|
385
|
-
#model-btn:hover { color: var(--text-secondary); background: rgba(
|
|
386
|
-
#model-btn.active { color: var(--text-secondary); background: rgba(
|
|
444
|
+
#model-btn:hover { color: var(--text-secondary); background: rgba(var(--overlay-rgb),0.06); }
|
|
445
|
+
#model-btn.active { color: var(--text-secondary); background: rgba(var(--overlay-rgb),0.06); }
|
|
387
446
|
|
|
388
447
|
#model-menu {
|
|
389
448
|
position: absolute;
|
|
@@ -394,7 +453,7 @@
|
|
|
394
453
|
border-radius: 12px;
|
|
395
454
|
padding: 4px 0;
|
|
396
455
|
min-width: 200px;
|
|
397
|
-
box-shadow: 0 4px 16px rgba(
|
|
456
|
+
box-shadow: 0 4px 16px rgba(var(--shadow-rgb), 0.4);
|
|
398
457
|
z-index: 200;
|
|
399
458
|
}
|
|
400
459
|
|
|
@@ -416,7 +475,7 @@
|
|
|
416
475
|
white-space: nowrap;
|
|
417
476
|
}
|
|
418
477
|
|
|
419
|
-
.model-menu-item:hover { background: rgba(
|
|
478
|
+
.model-menu-item:hover { background: rgba(var(--overlay-rgb),0.05); color: var(--text); }
|
|
420
479
|
.model-menu-item.active { color: var(--accent); font-weight: 600; }
|
|
421
480
|
|
|
422
481
|
/* --- Info panels container --- */
|
|
@@ -441,7 +500,7 @@
|
|
|
441
500
|
background: var(--bg-alt);
|
|
442
501
|
border: 1px solid var(--border);
|
|
443
502
|
border-radius: 12px;
|
|
444
|
-
box-shadow: 0 4px 16px rgba(
|
|
503
|
+
box-shadow: 0 4px 16px rgba(var(--shadow-rgb), 0.3);
|
|
445
504
|
font-size: 12px;
|
|
446
505
|
pointer-events: auto;
|
|
447
506
|
}
|
|
@@ -476,7 +535,7 @@
|
|
|
476
535
|
border-radius: 4px;
|
|
477
536
|
}
|
|
478
537
|
|
|
479
|
-
.usage-panel-header button:hover { color: var(--text); background: rgba(
|
|
538
|
+
.usage-panel-header button:hover { color: var(--text); background: rgba(var(--overlay-rgb),0.06); }
|
|
480
539
|
.usage-panel-header button .lucide { width: 14px; height: 14px; }
|
|
481
540
|
|
|
482
541
|
.usage-panel-body {
|
|
@@ -560,7 +619,7 @@
|
|
|
560
619
|
border-radius: 3px;
|
|
561
620
|
transition: width 0.3s ease, background 0.3s ease;
|
|
562
621
|
}
|
|
563
|
-
.context-bar-fill.warn { background:
|
|
622
|
+
.context-bar-fill.warn { background: var(--warning); }
|
|
564
623
|
.context-bar-fill.danger { background: var(--error); }
|
|
565
624
|
.context-bar-pct {
|
|
566
625
|
font-family: "SF Mono", Menlo, Monaco, monospace;
|
|
@@ -596,7 +655,7 @@
|
|
|
596
655
|
background: var(--success);
|
|
597
656
|
transition: width 0.3s ease, background 0.3s ease;
|
|
598
657
|
}
|
|
599
|
-
.context-mini-fill.warn { background:
|
|
658
|
+
.context-mini-fill.warn { background: var(--warning); }
|
|
600
659
|
.context-mini-fill.danger { background: var(--error); }
|
|
601
660
|
.context-mini-label {
|
|
602
661
|
font-family: "SF Mono", Menlo, Monaco, monospace;
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
background: var(--bg-alt);
|
|
27
27
|
border: 1px solid var(--border);
|
|
28
28
|
border-radius: 12px;
|
|
29
|
-
box-shadow: 0 4px 16px rgba(
|
|
29
|
+
box-shadow: 0 4px 16px rgba(var(--shadow-rgb), 0.3);
|
|
30
30
|
overflow: hidden;
|
|
31
31
|
}
|
|
32
32
|
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
cursor: pointer;
|
|
39
39
|
user-select: none;
|
|
40
40
|
}
|
|
41
|
-
#todo-sticky .todo-sticky-header:hover { background: rgba(
|
|
41
|
+
#todo-sticky .todo-sticky-header:hover { background: rgba(var(--overlay-rgb), 0.03); }
|
|
42
42
|
#todo-sticky .todo-sticky-icon { display: inline-flex; color: var(--accent); }
|
|
43
43
|
#todo-sticky .todo-sticky-icon .lucide { width: 14px; height: 14px; }
|
|
44
44
|
#todo-sticky .todo-sticky-title { font-size: 12px; font-weight: 600; color: var(--text-secondary); flex: 1; }
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
cursor: pointer;
|
|
102
102
|
z-index: 10;
|
|
103
103
|
transition: opacity 0.15s;
|
|
104
|
-
box-shadow: 0 2px 8px rgba(
|
|
104
|
+
box-shadow: 0 2px 8px rgba(var(--shadow-rgb), 0.3);
|
|
105
105
|
}
|
|
106
106
|
#new-msg-btn:hover {
|
|
107
107
|
background: var(--sidebar-hover);
|
|
@@ -144,16 +144,16 @@
|
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
.msg-assistant:hover {
|
|
147
|
-
background: rgba(
|
|
147
|
+
background: rgba(var(--overlay-rgb), 0.02);
|
|
148
148
|
}
|
|
149
149
|
|
|
150
150
|
.msg-assistant.copy-primed {
|
|
151
|
-
background: rgba(
|
|
151
|
+
background: rgba(var(--overlay-rgb), 0.04);
|
|
152
152
|
cursor: pointer;
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
.msg-assistant.copy-done {
|
|
156
|
-
background:
|
|
156
|
+
background: var(--success-8);
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
.msg-copy-hint {
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
.md-content h3 { font-size: 1.1em; }
|
|
198
198
|
|
|
199
199
|
.md-content code {
|
|
200
|
-
background: rgba(
|
|
200
|
+
background: rgba(var(--overlay-rgb), 0.07);
|
|
201
201
|
padding: 2px 7px;
|
|
202
202
|
border-radius: 6px;
|
|
203
203
|
font-family: "SF Mono", "Fira Code", Menlo, Monaco, "Cascadia Code", monospace;
|
|
@@ -289,7 +289,7 @@ pre:hover .code-copy-btn { opacity: 1; }
|
|
|
289
289
|
text-align: start;
|
|
290
290
|
}
|
|
291
291
|
.md-content th {
|
|
292
|
-
background: rgba(
|
|
292
|
+
background: rgba(var(--overlay-rgb), 0.04);
|
|
293
293
|
font-weight: 600;
|
|
294
294
|
}
|
|
295
295
|
|
|
@@ -340,13 +340,13 @@ pre:hover .code-copy-btn { opacity: 1; }
|
|
|
340
340
|
}
|
|
341
341
|
|
|
342
342
|
pre.mermaid-error {
|
|
343
|
-
border-color:
|
|
343
|
+
border-color: var(--error-25);
|
|
344
344
|
}
|
|
345
345
|
|
|
346
346
|
/* --- Mermaid Viewer Modal --- */
|
|
347
347
|
#mermaid-modal { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; }
|
|
348
348
|
#mermaid-modal.hidden { display: none; }
|
|
349
|
-
#mermaid-modal .confirm-backdrop { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(
|
|
349
|
+
#mermaid-modal .confirm-backdrop { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(var(--shadow-rgb), 0.7); }
|
|
350
350
|
|
|
351
351
|
.mermaid-modal-dialog {
|
|
352
352
|
position: relative;
|
|
@@ -359,7 +359,7 @@ pre.mermaid-error {
|
|
|
359
359
|
background: var(--bg-alt);
|
|
360
360
|
border: 1px solid var(--border);
|
|
361
361
|
border-radius: 16px;
|
|
362
|
-
box-shadow: 0 24px 80px rgba(
|
|
362
|
+
box-shadow: 0 24px 80px rgba(var(--shadow-rgb), 0.5);
|
|
363
363
|
}
|
|
364
364
|
|
|
365
365
|
.mermaid-modal-header {
|
|
@@ -395,7 +395,7 @@ pre.mermaid-error {
|
|
|
395
395
|
transition: color 0.15s, background 0.15s;
|
|
396
396
|
}
|
|
397
397
|
|
|
398
|
-
.mermaid-modal-btn:hover { color: var(--text); background: rgba(
|
|
398
|
+
.mermaid-modal-btn:hover { color: var(--text); background: rgba(var(--overlay-rgb), 0.06); }
|
|
399
399
|
|
|
400
400
|
.mermaid-modal-body {
|
|
401
401
|
padding: 24px;
|
|
@@ -414,7 +414,7 @@ pre.mermaid-error {
|
|
|
414
414
|
/* --- Image lightbox modal --- */
|
|
415
415
|
#image-modal { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; }
|
|
416
416
|
#image-modal.hidden { display: none; }
|
|
417
|
-
#image-modal .confirm-backdrop { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(
|
|
417
|
+
#image-modal .confirm-backdrop { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(var(--shadow-rgb), 0.8); }
|
|
418
418
|
|
|
419
419
|
.image-modal-dialog {
|
|
420
420
|
position: relative;
|
|
@@ -429,7 +429,7 @@ pre.mermaid-error {
|
|
|
429
429
|
max-height: 90vh;
|
|
430
430
|
border-radius: 12px;
|
|
431
431
|
object-fit: contain;
|
|
432
|
-
box-shadow: 0 24px 80px rgba(
|
|
432
|
+
box-shadow: 0 24px 80px rgba(var(--shadow-rgb), 0.6);
|
|
433
433
|
}
|
|
434
434
|
|
|
435
435
|
.image-modal-close {
|
|
@@ -440,7 +440,7 @@ pre.mermaid-error {
|
|
|
440
440
|
display: flex;
|
|
441
441
|
align-items: center;
|
|
442
442
|
justify-content: center;
|
|
443
|
-
background: rgba(
|
|
443
|
+
background: rgba(var(--shadow-rgb), 0.5);
|
|
444
444
|
border: none;
|
|
445
445
|
color: #fff;
|
|
446
446
|
cursor: pointer;
|
|
@@ -448,7 +448,7 @@ pre.mermaid-error {
|
|
|
448
448
|
border-radius: 50%;
|
|
449
449
|
transition: background 0.15s;
|
|
450
450
|
}
|
|
451
|
-
.image-modal-close:hover { background: rgba(
|
|
451
|
+
.image-modal-close:hover { background: rgba(var(--overlay-rgb), 0.2); }
|
|
452
452
|
|
|
453
453
|
/* ==========================================================================
|
|
454
454
|
Thinking
|
|
@@ -467,13 +467,13 @@ pre.mermaid-error {
|
|
|
467
467
|
cursor: pointer;
|
|
468
468
|
padding: 6px 12px;
|
|
469
469
|
user-select: none;
|
|
470
|
-
background: rgba(
|
|
470
|
+
background: rgba(var(--overlay-rgb), 0.03);
|
|
471
471
|
border-radius: 8px;
|
|
472
472
|
transition: background 0.15s;
|
|
473
473
|
}
|
|
474
474
|
|
|
475
475
|
.thinking-header:hover {
|
|
476
|
-
background: rgba(
|
|
476
|
+
background: rgba(var(--overlay-rgb), 0.06);
|
|
477
477
|
}
|
|
478
478
|
|
|
479
479
|
.thinking-chevron {
|
|
@@ -525,7 +525,7 @@ pre.mermaid-error {
|
|
|
525
525
|
word-break: break-word;
|
|
526
526
|
max-height: 300px;
|
|
527
527
|
overflow-y: auto;
|
|
528
|
-
background: rgba(
|
|
528
|
+
background: rgba(var(--overlay-rgb), 0.02);
|
|
529
529
|
border-radius: 8px;
|
|
530
530
|
}
|
|
531
531
|
|
|
@@ -548,7 +548,7 @@ pre.mermaid-error {
|
|
|
548
548
|
padding: 8px 12px;
|
|
549
549
|
cursor: pointer;
|
|
550
550
|
user-select: none;
|
|
551
|
-
background: rgba(
|
|
551
|
+
background: rgba(var(--overlay-rgb), 0.025);
|
|
552
552
|
border-radius: 10px;
|
|
553
553
|
transition: background 0.15s;
|
|
554
554
|
}
|
|
@@ -570,7 +570,7 @@ pre.mermaid-error {
|
|
|
570
570
|
}
|
|
571
571
|
|
|
572
572
|
.tool-header:hover {
|
|
573
|
-
background: rgba(
|
|
573
|
+
background: rgba(var(--overlay-rgb), 0.05);
|
|
574
574
|
}
|
|
575
575
|
|
|
576
576
|
.tool-bullet {
|
|
@@ -714,21 +714,21 @@ pre.mermaid-error {
|
|
|
714
714
|
}
|
|
715
715
|
|
|
716
716
|
.diff-content .diff-add {
|
|
717
|
-
color:
|
|
718
|
-
background:
|
|
717
|
+
color: var(--success);
|
|
718
|
+
background: var(--success-8);
|
|
719
719
|
display: inline-block;
|
|
720
720
|
width: 100%;
|
|
721
721
|
}
|
|
722
722
|
|
|
723
723
|
.diff-content .diff-del {
|
|
724
|
-
color:
|
|
725
|
-
background:
|
|
724
|
+
color: var(--error);
|
|
725
|
+
background: var(--error-8);
|
|
726
726
|
display: inline-block;
|
|
727
727
|
width: 100%;
|
|
728
728
|
}
|
|
729
729
|
|
|
730
|
-
.diff-content .diff-hunk { color:
|
|
731
|
-
.diff-content .diff-file-header { color:
|
|
730
|
+
.diff-content .diff-hunk { color: var(--text-muted); font-style: italic; }
|
|
731
|
+
.diff-content .diff-file-header { color: var(--text-muted); font-weight: 600; }
|
|
732
732
|
.diff-content .diff-ctx { color: var(--text-muted); }
|
|
733
733
|
|
|
734
734
|
/* --- Edit diff viewer --- */
|
|
@@ -739,7 +739,7 @@ pre.mermaid-error {
|
|
|
739
739
|
font-size: 12px;
|
|
740
740
|
font-family: "SF Mono", Menlo, Monaco, monospace;
|
|
741
741
|
color: var(--text-muted);
|
|
742
|
-
background: rgba(
|
|
742
|
+
background: rgba(var(--overlay-rgb), 0.03);
|
|
743
743
|
border-bottom: 1px solid var(--border-subtle);
|
|
744
744
|
}
|
|
745
745
|
|
|
@@ -841,6 +841,150 @@ pre.mermaid-error {
|
|
|
841
841
|
padding: 0;
|
|
842
842
|
}
|
|
843
843
|
|
|
844
|
+
/* ==========================================================================
|
|
845
|
+
Sub-agent Log (Task tool)
|
|
846
|
+
========================================================================== */
|
|
847
|
+
|
|
848
|
+
.subagent-log {
|
|
849
|
+
margin: 4px 0 4px 24px;
|
|
850
|
+
padding: 4px 0;
|
|
851
|
+
border-left: 2px solid var(--border-subtle);
|
|
852
|
+
padding-left: 12px;
|
|
853
|
+
max-height: 68px;
|
|
854
|
+
overflow-y: auto;
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
.subagent-log-entry {
|
|
858
|
+
display: flex;
|
|
859
|
+
align-items: center;
|
|
860
|
+
gap: 8px;
|
|
861
|
+
padding: 2px 0;
|
|
862
|
+
font-size: 12px;
|
|
863
|
+
color: var(--text-muted);
|
|
864
|
+
line-height: 1.4;
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
.subagent-log-bullet {
|
|
868
|
+
width: 5px;
|
|
869
|
+
height: 5px;
|
|
870
|
+
border-radius: 50%;
|
|
871
|
+
background: var(--text-dimmer);
|
|
872
|
+
flex-shrink: 0;
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
.subagent-log-tool {
|
|
876
|
+
font-weight: 600;
|
|
877
|
+
color: var(--text-secondary);
|
|
878
|
+
flex-shrink: 0;
|
|
879
|
+
font-size: 11px;
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
.subagent-log-text {
|
|
883
|
+
flex: 1;
|
|
884
|
+
overflow: hidden;
|
|
885
|
+
text-overflow: ellipsis;
|
|
886
|
+
white-space: nowrap;
|
|
887
|
+
font-family: "SF Mono", Menlo, Monaco, monospace;
|
|
888
|
+
font-size: 11px;
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
/* ==========================================================================
|
|
892
|
+
Tool Groups
|
|
893
|
+
========================================================================== */
|
|
894
|
+
|
|
895
|
+
.tool-group {
|
|
896
|
+
max-width: var(--content-width);
|
|
897
|
+
margin: 4px auto;
|
|
898
|
+
padding: 0 20px;
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
.tool-group-header {
|
|
902
|
+
display: inline-flex;
|
|
903
|
+
align-items: center;
|
|
904
|
+
gap: 8px;
|
|
905
|
+
cursor: pointer;
|
|
906
|
+
padding: 6px 12px;
|
|
907
|
+
user-select: none;
|
|
908
|
+
background: rgba(var(--overlay-rgb), 0.03);
|
|
909
|
+
border-radius: 8px;
|
|
910
|
+
transition: background 0.15s;
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
.tool-group-header:hover {
|
|
914
|
+
background: rgba(var(--overlay-rgb), 0.06);
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
.tool-group-chevron {
|
|
918
|
+
color: var(--text-dimmer);
|
|
919
|
+
transition: transform 0.2s;
|
|
920
|
+
display: inline-flex;
|
|
921
|
+
flex-shrink: 0;
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
.tool-group-chevron .lucide {
|
|
925
|
+
width: 14px;
|
|
926
|
+
height: 14px;
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
.tool-group:not(.collapsed) .tool-group-chevron {
|
|
930
|
+
transform: rotate(90deg);
|
|
931
|
+
}
|
|
932
|
+
|
|
933
|
+
.tool-group-bullet {
|
|
934
|
+
width: 7px;
|
|
935
|
+
height: 7px;
|
|
936
|
+
border-radius: 50%;
|
|
937
|
+
background: var(--text-muted);
|
|
938
|
+
flex-shrink: 0;
|
|
939
|
+
animation: pulse 1.5s ease-in-out infinite;
|
|
940
|
+
}
|
|
941
|
+
|
|
942
|
+
.tool-group.done .tool-group-bullet {
|
|
943
|
+
background: var(--text-dimmer);
|
|
944
|
+
animation: none;
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
.tool-group.done .tool-group-bullet.error {
|
|
948
|
+
background: var(--error);
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
.tool-group-label {
|
|
952
|
+
font-size: 13px;
|
|
953
|
+
color: var(--text-muted);
|
|
954
|
+
font-weight: 500;
|
|
955
|
+
}
|
|
956
|
+
|
|
957
|
+
.tool-group.done .tool-group-label {
|
|
958
|
+
color: var(--text-dimmer);
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
.tool-group-status-icon {
|
|
962
|
+
flex-shrink: 0;
|
|
963
|
+
width: 16px;
|
|
964
|
+
display: inline-flex;
|
|
965
|
+
align-items: center;
|
|
966
|
+
justify-content: center;
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
.tool-group-status-icon .lucide { width: 14px; height: 14px; }
|
|
970
|
+
.tool-group-status-icon .icon-spin .lucide { width: 14px; height: 14px; color: var(--text-muted); }
|
|
971
|
+
.tool-group-status-icon .check { color: var(--text-dimmer); }
|
|
972
|
+
.tool-group-status-icon .err-icon { color: var(--error); }
|
|
973
|
+
|
|
974
|
+
.tool-group.done .tool-group-status-icon .icon-spin { display: none; }
|
|
975
|
+
|
|
976
|
+
/* Collapsed state: hide individual tool items */
|
|
977
|
+
.tool-group.collapsed .tool-group-items {
|
|
978
|
+
display: none;
|
|
979
|
+
}
|
|
980
|
+
|
|
981
|
+
/* Inside a group, tool-items defer layout to the group container */
|
|
982
|
+
.tool-group .tool-item {
|
|
983
|
+
max-width: none;
|
|
984
|
+
margin: 2px 0;
|
|
985
|
+
padding: 0;
|
|
986
|
+
}
|
|
987
|
+
|
|
844
988
|
/* ==========================================================================
|
|
845
989
|
Plan Mode
|
|
846
990
|
========================================================================== */
|
|
@@ -880,7 +1024,7 @@ pre.mermaid-error {
|
|
|
880
1024
|
gap: 8px;
|
|
881
1025
|
padding: 12px 16px;
|
|
882
1026
|
background: var(--accent-bg);
|
|
883
|
-
border: 1px solid
|
|
1027
|
+
border: 1px solid var(--accent-20);
|
|
884
1028
|
border-radius: 12px 12px 0 0;
|
|
885
1029
|
cursor: pointer;
|
|
886
1030
|
user-select: none;
|
|
@@ -900,7 +1044,7 @@ pre.mermaid-error {
|
|
|
900
1044
|
|
|
901
1045
|
.plan-card-body {
|
|
902
1046
|
padding: 16px 18px;
|
|
903
|
-
background: rgba(
|
|
1047
|
+
background: rgba(var(--overlay-rgb), 0.02);
|
|
904
1048
|
border: 1px solid var(--border);
|
|
905
1049
|
border-top: none;
|
|
906
1050
|
border-radius: 0 0 12px 12px;
|
|
@@ -918,7 +1062,7 @@ pre.mermaid-error {
|
|
|
918
1062
|
.plan-card-body h1 { font-size: 1.3em; }
|
|
919
1063
|
.plan-card-body h2 { font-size: 1.15em; }
|
|
920
1064
|
.plan-card-body h3 { font-size: 1.05em; }
|
|
921
|
-
.plan-card-body code { background: rgba(
|
|
1065
|
+
.plan-card-body code { background: rgba(var(--overlay-rgb),0.06); padding: 2px 6px; border-radius: 4px; font-family: "SF Mono", Menlo, Monaco, monospace; font-size: 0.88em; }
|
|
922
1066
|
.plan-card-body pre { background: var(--code-bg); border: 1px solid var(--border); border-radius: 8px; margin: 8px 0; }
|
|
923
1067
|
.plan-card-body pre code { display: block; padding: 10px 12px; overflow-x: auto; font-size: 12px; line-height: 1.5; background: none; border-radius: 0; }
|
|
924
1068
|
.plan-card-body ul, .plan-card-body ol { padding-left: 22px; margin: 6px 0; }
|
|
@@ -928,8 +1072,8 @@ pre.mermaid-error {
|
|
|
928
1072
|
|
|
929
1073
|
/* --- Plan permission (ExitPlanMode) --- */
|
|
930
1074
|
.plan-permission-header {
|
|
931
|
-
background:
|
|
932
|
-
border-color:
|
|
1075
|
+
background: var(--success-8) !important;
|
|
1076
|
+
border-color: var(--success-25) !important;
|
|
933
1077
|
}
|
|
934
1078
|
.plan-permission-header .permission-icon { color: var(--success) !important; }
|
|
935
1079
|
.plan-permission-header .permission-title { color: var(--success) !important; }
|
|
@@ -949,7 +1093,7 @@ pre.mermaid-error {
|
|
|
949
1093
|
align-items: center;
|
|
950
1094
|
gap: 8px;
|
|
951
1095
|
padding: 10px 16px;
|
|
952
|
-
background: rgba(
|
|
1096
|
+
background: rgba(var(--overlay-rgb), 0.03);
|
|
953
1097
|
border: 1px solid var(--border);
|
|
954
1098
|
border-radius: 12px 12px 0 0;
|
|
955
1099
|
}
|