claude-relay 2.3.0 → 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 +21 -5
- package/bin/cli.js +214 -9
- package/lib/cli-sessions.js +270 -0
- package/lib/config.js +3 -2
- package/lib/daemon.js +45 -1
- package/lib/pages.js +8 -1
- package/lib/project.js +121 -12
- package/lib/public/app.js +411 -87
- package/lib/public/css/base.css +41 -7
- package/lib/public/css/diff.css +6 -6
- package/lib/public/css/filebrowser.css +62 -52
- package/lib/public/css/highlight.css +144 -0
- package/lib/public/css/input.css +11 -9
- package/lib/public/css/menus.css +82 -23
- package/lib/public/css/messages.css +183 -35
- 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 +75 -42
- 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 +84 -23
- package/lib/public/modules/theme.js +622 -0
- package/lib/public/modules/tools.js +247 -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 +45 -3
- 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);
|
|
@@ -130,6 +130,8 @@
|
|
|
130
130
|
word-break: break-word;
|
|
131
131
|
white-space: pre-wrap;
|
|
132
132
|
color: var(--text);
|
|
133
|
+
unicode-bidi: plaintext;
|
|
134
|
+
text-align: start;
|
|
133
135
|
}
|
|
134
136
|
|
|
135
137
|
/* --- Assistant message --- */
|
|
@@ -142,16 +144,16 @@
|
|
|
142
144
|
}
|
|
143
145
|
|
|
144
146
|
.msg-assistant:hover {
|
|
145
|
-
background: rgba(
|
|
147
|
+
background: rgba(var(--overlay-rgb), 0.02);
|
|
146
148
|
}
|
|
147
149
|
|
|
148
150
|
.msg-assistant.copy-primed {
|
|
149
|
-
background: rgba(
|
|
151
|
+
background: rgba(var(--overlay-rgb), 0.04);
|
|
150
152
|
cursor: pointer;
|
|
151
153
|
}
|
|
152
154
|
|
|
153
155
|
.msg-assistant.copy-done {
|
|
154
|
-
background:
|
|
156
|
+
background: var(--success-8);
|
|
155
157
|
}
|
|
156
158
|
|
|
157
159
|
.msg-copy-hint {
|
|
@@ -176,6 +178,8 @@
|
|
|
176
178
|
line-height: 1.7;
|
|
177
179
|
word-break: break-word;
|
|
178
180
|
color: var(--text);
|
|
181
|
+
unicode-bidi: plaintext;
|
|
182
|
+
text-align: start;
|
|
179
183
|
}
|
|
180
184
|
|
|
181
185
|
.md-content p { margin-bottom: 14px; }
|
|
@@ -193,7 +197,7 @@
|
|
|
193
197
|
.md-content h3 { font-size: 1.1em; }
|
|
194
198
|
|
|
195
199
|
.md-content code {
|
|
196
|
-
background: rgba(
|
|
200
|
+
background: rgba(var(--overlay-rgb), 0.07);
|
|
197
201
|
padding: 2px 7px;
|
|
198
202
|
border-radius: 6px;
|
|
199
203
|
font-family: "SF Mono", "Fira Code", Menlo, Monaco, "Cascadia Code", monospace;
|
|
@@ -282,10 +286,10 @@ pre:hover .code-copy-btn { opacity: 1; }
|
|
|
282
286
|
.md-content th, .md-content td {
|
|
283
287
|
border: 1px solid var(--border);
|
|
284
288
|
padding: 8px 12px;
|
|
285
|
-
text-align:
|
|
289
|
+
text-align: start;
|
|
286
290
|
}
|
|
287
291
|
.md-content th {
|
|
288
|
-
background: rgba(
|
|
292
|
+
background: rgba(var(--overlay-rgb), 0.04);
|
|
289
293
|
font-weight: 600;
|
|
290
294
|
}
|
|
291
295
|
|
|
@@ -336,13 +340,13 @@ pre:hover .code-copy-btn { opacity: 1; }
|
|
|
336
340
|
}
|
|
337
341
|
|
|
338
342
|
pre.mermaid-error {
|
|
339
|
-
border-color:
|
|
343
|
+
border-color: var(--error-25);
|
|
340
344
|
}
|
|
341
345
|
|
|
342
346
|
/* --- Mermaid Viewer Modal --- */
|
|
343
347
|
#mermaid-modal { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; }
|
|
344
348
|
#mermaid-modal.hidden { display: none; }
|
|
345
|
-
#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); }
|
|
346
350
|
|
|
347
351
|
.mermaid-modal-dialog {
|
|
348
352
|
position: relative;
|
|
@@ -355,7 +359,7 @@ pre.mermaid-error {
|
|
|
355
359
|
background: var(--bg-alt);
|
|
356
360
|
border: 1px solid var(--border);
|
|
357
361
|
border-radius: 16px;
|
|
358
|
-
box-shadow: 0 24px 80px rgba(
|
|
362
|
+
box-shadow: 0 24px 80px rgba(var(--shadow-rgb), 0.5);
|
|
359
363
|
}
|
|
360
364
|
|
|
361
365
|
.mermaid-modal-header {
|
|
@@ -391,7 +395,7 @@ pre.mermaid-error {
|
|
|
391
395
|
transition: color 0.15s, background 0.15s;
|
|
392
396
|
}
|
|
393
397
|
|
|
394
|
-
.mermaid-modal-btn:hover { color: var(--text); background: rgba(
|
|
398
|
+
.mermaid-modal-btn:hover { color: var(--text); background: rgba(var(--overlay-rgb), 0.06); }
|
|
395
399
|
|
|
396
400
|
.mermaid-modal-body {
|
|
397
401
|
padding: 24px;
|
|
@@ -410,7 +414,7 @@ pre.mermaid-error {
|
|
|
410
414
|
/* --- Image lightbox modal --- */
|
|
411
415
|
#image-modal { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; }
|
|
412
416
|
#image-modal.hidden { display: none; }
|
|
413
|
-
#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); }
|
|
414
418
|
|
|
415
419
|
.image-modal-dialog {
|
|
416
420
|
position: relative;
|
|
@@ -425,7 +429,7 @@ pre.mermaid-error {
|
|
|
425
429
|
max-height: 90vh;
|
|
426
430
|
border-radius: 12px;
|
|
427
431
|
object-fit: contain;
|
|
428
|
-
box-shadow: 0 24px 80px rgba(
|
|
432
|
+
box-shadow: 0 24px 80px rgba(var(--shadow-rgb), 0.6);
|
|
429
433
|
}
|
|
430
434
|
|
|
431
435
|
.image-modal-close {
|
|
@@ -436,7 +440,7 @@ pre.mermaid-error {
|
|
|
436
440
|
display: flex;
|
|
437
441
|
align-items: center;
|
|
438
442
|
justify-content: center;
|
|
439
|
-
background: rgba(
|
|
443
|
+
background: rgba(var(--shadow-rgb), 0.5);
|
|
440
444
|
border: none;
|
|
441
445
|
color: #fff;
|
|
442
446
|
cursor: pointer;
|
|
@@ -444,7 +448,7 @@ pre.mermaid-error {
|
|
|
444
448
|
border-radius: 50%;
|
|
445
449
|
transition: background 0.15s;
|
|
446
450
|
}
|
|
447
|
-
.image-modal-close:hover { background: rgba(
|
|
451
|
+
.image-modal-close:hover { background: rgba(var(--overlay-rgb), 0.2); }
|
|
448
452
|
|
|
449
453
|
/* ==========================================================================
|
|
450
454
|
Thinking
|
|
@@ -463,13 +467,13 @@ pre.mermaid-error {
|
|
|
463
467
|
cursor: pointer;
|
|
464
468
|
padding: 6px 12px;
|
|
465
469
|
user-select: none;
|
|
466
|
-
background: rgba(
|
|
470
|
+
background: rgba(var(--overlay-rgb), 0.03);
|
|
467
471
|
border-radius: 8px;
|
|
468
472
|
transition: background 0.15s;
|
|
469
473
|
}
|
|
470
474
|
|
|
471
475
|
.thinking-header:hover {
|
|
472
|
-
background: rgba(
|
|
476
|
+
background: rgba(var(--overlay-rgb), 0.06);
|
|
473
477
|
}
|
|
474
478
|
|
|
475
479
|
.thinking-chevron {
|
|
@@ -521,7 +525,7 @@ pre.mermaid-error {
|
|
|
521
525
|
word-break: break-word;
|
|
522
526
|
max-height: 300px;
|
|
523
527
|
overflow-y: auto;
|
|
524
|
-
background: rgba(
|
|
528
|
+
background: rgba(var(--overlay-rgb), 0.02);
|
|
525
529
|
border-radius: 8px;
|
|
526
530
|
}
|
|
527
531
|
|
|
@@ -544,7 +548,7 @@ pre.mermaid-error {
|
|
|
544
548
|
padding: 8px 12px;
|
|
545
549
|
cursor: pointer;
|
|
546
550
|
user-select: none;
|
|
547
|
-
background: rgba(
|
|
551
|
+
background: rgba(var(--overlay-rgb), 0.025);
|
|
548
552
|
border-radius: 10px;
|
|
549
553
|
transition: background 0.15s;
|
|
550
554
|
}
|
|
@@ -566,7 +570,7 @@ pre.mermaid-error {
|
|
|
566
570
|
}
|
|
567
571
|
|
|
568
572
|
.tool-header:hover {
|
|
569
|
-
background: rgba(
|
|
573
|
+
background: rgba(var(--overlay-rgb), 0.05);
|
|
570
574
|
}
|
|
571
575
|
|
|
572
576
|
.tool-bullet {
|
|
@@ -710,21 +714,21 @@ pre.mermaid-error {
|
|
|
710
714
|
}
|
|
711
715
|
|
|
712
716
|
.diff-content .diff-add {
|
|
713
|
-
color:
|
|
714
|
-
background:
|
|
717
|
+
color: var(--success);
|
|
718
|
+
background: var(--success-8);
|
|
715
719
|
display: inline-block;
|
|
716
720
|
width: 100%;
|
|
717
721
|
}
|
|
718
722
|
|
|
719
723
|
.diff-content .diff-del {
|
|
720
|
-
color:
|
|
721
|
-
background:
|
|
724
|
+
color: var(--error);
|
|
725
|
+
background: var(--error-8);
|
|
722
726
|
display: inline-block;
|
|
723
727
|
width: 100%;
|
|
724
728
|
}
|
|
725
729
|
|
|
726
|
-
.diff-content .diff-hunk { color:
|
|
727
|
-
.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; }
|
|
728
732
|
.diff-content .diff-ctx { color: var(--text-muted); }
|
|
729
733
|
|
|
730
734
|
/* --- Edit diff viewer --- */
|
|
@@ -735,7 +739,7 @@ pre.mermaid-error {
|
|
|
735
739
|
font-size: 12px;
|
|
736
740
|
font-family: "SF Mono", Menlo, Monaco, monospace;
|
|
737
741
|
color: var(--text-muted);
|
|
738
|
-
background: rgba(
|
|
742
|
+
background: rgba(var(--overlay-rgb), 0.03);
|
|
739
743
|
border-bottom: 1px solid var(--border-subtle);
|
|
740
744
|
}
|
|
741
745
|
|
|
@@ -837,6 +841,150 @@ pre.mermaid-error {
|
|
|
837
841
|
padding: 0;
|
|
838
842
|
}
|
|
839
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
|
+
|
|
840
988
|
/* ==========================================================================
|
|
841
989
|
Plan Mode
|
|
842
990
|
========================================================================== */
|
|
@@ -876,7 +1024,7 @@ pre.mermaid-error {
|
|
|
876
1024
|
gap: 8px;
|
|
877
1025
|
padding: 12px 16px;
|
|
878
1026
|
background: var(--accent-bg);
|
|
879
|
-
border: 1px solid
|
|
1027
|
+
border: 1px solid var(--accent-20);
|
|
880
1028
|
border-radius: 12px 12px 0 0;
|
|
881
1029
|
cursor: pointer;
|
|
882
1030
|
user-select: none;
|
|
@@ -896,7 +1044,7 @@ pre.mermaid-error {
|
|
|
896
1044
|
|
|
897
1045
|
.plan-card-body {
|
|
898
1046
|
padding: 16px 18px;
|
|
899
|
-
background: rgba(
|
|
1047
|
+
background: rgba(var(--overlay-rgb), 0.02);
|
|
900
1048
|
border: 1px solid var(--border);
|
|
901
1049
|
border-top: none;
|
|
902
1050
|
border-radius: 0 0 12px 12px;
|
|
@@ -914,7 +1062,7 @@ pre.mermaid-error {
|
|
|
914
1062
|
.plan-card-body h1 { font-size: 1.3em; }
|
|
915
1063
|
.plan-card-body h2 { font-size: 1.15em; }
|
|
916
1064
|
.plan-card-body h3 { font-size: 1.05em; }
|
|
917
|
-
.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; }
|
|
918
1066
|
.plan-card-body pre { background: var(--code-bg); border: 1px solid var(--border); border-radius: 8px; margin: 8px 0; }
|
|
919
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; }
|
|
920
1068
|
.plan-card-body ul, .plan-card-body ol { padding-left: 22px; margin: 6px 0; }
|
|
@@ -924,8 +1072,8 @@ pre.mermaid-error {
|
|
|
924
1072
|
|
|
925
1073
|
/* --- Plan permission (ExitPlanMode) --- */
|
|
926
1074
|
.plan-permission-header {
|
|
927
|
-
background:
|
|
928
|
-
border-color:
|
|
1075
|
+
background: var(--success-8) !important;
|
|
1076
|
+
border-color: var(--success-25) !important;
|
|
929
1077
|
}
|
|
930
1078
|
.plan-permission-header .permission-icon { color: var(--success) !important; }
|
|
931
1079
|
.plan-permission-header .permission-title { color: var(--success) !important; }
|
|
@@ -945,7 +1093,7 @@ pre.mermaid-error {
|
|
|
945
1093
|
align-items: center;
|
|
946
1094
|
gap: 8px;
|
|
947
1095
|
padding: 10px 16px;
|
|
948
|
-
background: rgba(
|
|
1096
|
+
background: rgba(var(--overlay-rgb), 0.03);
|
|
949
1097
|
border: 1px solid var(--border);
|
|
950
1098
|
border-radius: 12px 12px 0 0;
|
|
951
1099
|
}
|