magic-agent 2.6.0 → 2.6.3
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/CLIENT-CONTRACT.md +188 -16
- package/client-ui/pc/app.css +42 -0
- package/client-ui/pc/js/90-glue.js +3 -0
- package/client-ui/shared/conv/03-chat-message.js +25 -19
- package/client-ui/shared/conv/09-stream-apply.js +9 -0
- package/client-ui/shared/conv/29-msg-variants.js +136 -0
- package/client-ui/shared/conv/conv.css +253 -158
- package/client-ui/shared/conversation.js +39 -2
- package/client-ui-mobile/apps.css +16 -0
- package/client-ui-mobile/apps.js +406 -0
- package/client-ui-mobile/index.html +2695 -379
- package/client-ui-mobile/reqs.css +11 -4
- package/client-ui-mobile/reqs.js +49 -5
- package/client-ui-mobile/scripts.css +46 -0
- package/client-ui-mobile/scripts.js +66 -6
- package/cmd/magic-client/browsectl.go +1 -1
- package/cmd/magic-client/clientctl.go +37 -2
- package/cmd/magic-client/main.go +159 -12
- package/internal/agent/dsh_caps_cache_test.go +184 -0
- package/internal/agent/dsh_resume.go +144 -5
- package/internal/agent/env.go +173 -1
- package/internal/agent/env_test.go +114 -0
- package/internal/agent/limitnotice.go +207 -1
- package/internal/agent/limitnotice_test.go +140 -0
- package/internal/agent/stream.go +30 -0
- package/internal/agent/streamjson.go +11 -1
- package/internal/cli/ask.go +8 -0
- package/internal/cli/engines_test.go +103 -0
- package/internal/cli/events.go +11 -0
- package/internal/cli/events_test.go +50 -0
- package/internal/cli/judge.go +104 -0
- package/internal/cli/root.go +35 -6
- package/internal/cli/session.go +69 -3
- package/internal/cli/session_test.go +82 -3
- package/internal/cli/sessionlog.go +6 -0
- package/internal/cli/sessionlog_test.go +22 -2
- package/internal/client/apk.go +8 -0
- package/internal/client/apk_test.go +59 -0
- package/internal/client/apps.go +1078 -0
- package/internal/client/apps_test.go +516 -0
- package/internal/client/coreexe.go +196 -0
- package/internal/client/coreexe_test.go +161 -0
- package/internal/client/coreupgrade.go +866 -0
- package/internal/client/coreupgrade_test.go +561 -0
- package/internal/client/daemon.go +209 -18
- package/internal/client/feishu.go +1259 -0
- package/internal/client/feishu_test.go +649 -0
- package/internal/client/health_identity_test.go +84 -0
- package/internal/client/hostenv.go +68 -0
- package/internal/client/hostenv_test.go +37 -0
- package/internal/client/jobs.go +233 -12
- package/internal/client/jobs_auto.go +571 -0
- package/internal/client/jobs_auto_test.go +431 -0
- package/internal/client/plugins.go +5 -1
- package/internal/client/prefs.go +67 -0
- package/internal/client/procstart_linux.go +59 -0
- package/internal/client/publicurl.go +82 -0
- package/internal/client/requirements.go +9 -1
- package/internal/client/requirements_test.go +103 -0
- package/internal/client/restart.go +167 -13
- package/internal/client/restart_handoff_test.go +230 -0
- package/internal/client/restart_test.go +140 -1
- package/internal/client/scripts_decode_implausible.go +38 -0
- package/internal/client/scripts_decode_other.go +4 -0
- package/internal/client/scripts_decode_test.go +16 -11
- package/internal/client/scripts_decode_windows.go +0 -24
- package/internal/client/scripts_test.go +14 -1
- package/internal/client/service.go +403 -87
- package/internal/client/service_test.go +166 -1
- package/internal/client/sessions_cache.go +148 -0
- package/internal/client/sessions_cache_test.go +163 -0
- package/internal/client/sessions_fold.go +165 -0
- package/internal/client/sessions_fold_test.go +204 -0
- package/internal/client/singleinstance.go +470 -0
- package/internal/client/singleinstance_test.go +607 -0
- package/internal/client/testmain_test.go +88 -0
- package/internal/client/workspace_default_test.go +158 -0
- package/internal/client/workspacelockenv_test.go +54 -0
- package/internal/config/config.go +48 -0
- package/internal/judge/judge.go +315 -0
- package/internal/session/multiclient_test.go +368 -0
- package/internal/session/session.go +83 -11
- package/internal/session/session_test.go +7 -0
- package/internal/session/status.go +21 -0
- package/internal/session/status_test.go +28 -0
- package/internal/session/title.go +16 -0
- package/internal/session/title_test.go +26 -0
- package/internal/session/workspace_lock.go +265 -28
- package/npm/apk/magic-agent-mobile-release.apk +0 -0
- package/npm/apk/version.json +8 -1
- package/npm/dist/darwin-arm64/magic-agent +0 -0
- package/npm/dist/darwin-arm64/magic-client +0 -0
- package/npm/dist/darwin-x64/magic-agent +0 -0
- package/npm/dist/darwin-x64/magic-client +0 -0
- package/npm/dist/linux-arm64/magic-agent +0 -0
- package/npm/dist/linux-arm64/magic-client +0 -0
- package/npm/dist/linux-x64/magic-agent +0 -0
- package/npm/dist/linux-x64/magic-client +0 -0
- package/npm/dist/win32-x64/magic-agent.exe +0 -0
- package/npm/dist/win32-x64/magic-client.exe +0 -0
- package/npm/install.js +11 -0
- package/package.json +8 -3
|
@@ -77,7 +77,9 @@
|
|
|
77
77
|
|
|
78
78
|
.md-body li::marker{color:var(--cinnabar-hi);font-family:var(--mono);font-size:.9em}
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
/* 链接色 = var(--syntax-teal)(默认仍是这份绿松石):深色覆盖要把「Running」那类案头链接换成琥珀,
|
|
81
|
+
与代码里的字符串共用一个「青」的落点,浅色两个值都等于原值、一个像素不变。 */
|
|
82
|
+
.md-body a{color:#0F766E;color:var(--syntax-teal,#0F766E);text-decoration:none;border-bottom:1px dotted rgba(15,118,110,.4);
|
|
81
83
|
word-break:break-all;transition:.15s}
|
|
82
84
|
|
|
83
85
|
.md-body a:hover{color:var(--paper);border-bottom-color:var(--paper)}
|
|
@@ -157,8 +159,9 @@
|
|
|
157
159
|
.md-body .hljs-keyword,.md-body .hljs-selector-tag,.md-body .hljs-literal,
|
|
158
160
|
.md-body .hljs-section,.md-body .hljs-link{color:#B91C1C}
|
|
159
161
|
|
|
162
|
+
/* 字符串色走 --syntax-teal(默认 = 下面这份绿松石,宿主可覆盖;深色覆盖不再自带薄荷绿)。 */
|
|
160
163
|
.md-body .hljs-string,.md-body .hljs-attr,.md-body .hljs-template-tag,
|
|
161
|
-
.md-body .hljs-addition{color:#0F766E}
|
|
164
|
+
.md-body .hljs-addition{color:#0F766E;color:var(--syntax-teal,#0F766E)}
|
|
162
165
|
|
|
163
166
|
.md-body .hljs-number,.md-body .hljs-built_in,.md-body .hljs-type,
|
|
164
167
|
.md-body .hljs-params,.md-body .hljs-meta{color:#92670A}
|
|
@@ -243,96 +246,96 @@
|
|
|
243
246
|
|
|
244
247
|
.qa-t.md-body img:hover{filter:brightness(1.05)}
|
|
245
248
|
|
|
246
|
-
[data-theme="dark"] .qa-t.md-body code{background
|
|
249
|
+
[data-theme="dark"] .qa-t.md-body code{background:var(--md-code-bg);color:var(--ink-soft)}
|
|
247
250
|
|
|
248
|
-
[data-theme="dark"] .qa-t.md-body pre{background
|
|
251
|
+
[data-theme="dark"] .qa-t.md-body pre{background:var(--subtle);border-color:var(--md-border)}
|
|
249
252
|
|
|
250
|
-
[data-theme="dark"] .qa-t.md-body pre code{color
|
|
253
|
+
[data-theme="dark"] .qa-t.md-body pre code{color:var(--ink-soft)}
|
|
251
254
|
|
|
252
|
-
[data-theme="dark"] .qa-t.md-body th{background:rgba(
|
|
255
|
+
[data-theme="dark"] .qa-t.md-body th{background:rgba(242,251,245,.05)}
|
|
253
256
|
|
|
254
|
-
[data-theme="dark"] .qa-t.md-body td,[data-theme="dark"] .qa-t.md-body th{border-color
|
|
257
|
+
[data-theme="dark"] .qa-t.md-body td,[data-theme="dark"] .qa-t.md-body th{border-color:var(--md-border)}
|
|
255
258
|
|
|
256
|
-
[data-theme="dark"] .qa-t.md-body blockquote{background:rgba(
|
|
259
|
+
[data-theme="dark"] .qa-t.md-body blockquote{background:rgba(242,251,245,.04);border-color:var(--md-border)}
|
|
257
260
|
|
|
258
|
-
[data-theme="dark"] .qa-t.md-body blockquote p{color
|
|
261
|
+
[data-theme="dark"] .qa-t.md-body blockquote p{color:var(--muted)}
|
|
259
262
|
|
|
260
|
-
[data-theme="dark"] .md-body code{background
|
|
263
|
+
[data-theme="dark"] .md-body code{background:var(--md-code-bg);border-color:var(--md-border);color:var(--ink-soft)}
|
|
261
264
|
|
|
262
|
-
[data-theme="dark"] .md-body pre{background
|
|
265
|
+
[data-theme="dark"] .md-body pre{background:var(--subtle);border-color:var(--md-border)}
|
|
263
266
|
|
|
264
|
-
[data-theme="dark"] .md-body .md-mermaid{background
|
|
267
|
+
[data-theme="dark"] .md-body .md-mermaid{background:var(--subtle);border-color:var(--md-border)}
|
|
265
268
|
|
|
266
|
-
[data-theme="dark"] .md-body pre code{color
|
|
269
|
+
[data-theme="dark"] .md-body pre code{color:var(--ink-soft)}
|
|
267
270
|
|
|
268
|
-
[data-theme="dark"] .md-body pre code.hljs{color
|
|
271
|
+
[data-theme="dark"] .md-body pre code.hljs{color:var(--ink-soft)}
|
|
269
272
|
|
|
270
|
-
[data-theme="dark"] .md-body a{color
|
|
273
|
+
[data-theme="dark"] .md-body a{color:var(--amber)}
|
|
271
274
|
|
|
272
|
-
[data-theme="dark"] .md-body a:hover{color
|
|
275
|
+
[data-theme="dark"] .md-body a:hover{color:var(--ink);border-bottom-color:var(--ink)}
|
|
273
276
|
|
|
274
|
-
[data-theme="dark"] .md-body th{background:rgba(
|
|
277
|
+
[data-theme="dark"] .md-body th{background:rgba(242,251,245,.05)}
|
|
275
278
|
|
|
276
279
|
[data-theme="dark"] .md-body td,
|
|
277
|
-
[data-theme="dark"] .md-body th{border-color
|
|
280
|
+
[data-theme="dark"] .md-body th{border-color:var(--md-border)}
|
|
278
281
|
|
|
279
|
-
[data-theme="dark"] .md-body tbody tr:nth-child(even){background:rgba(
|
|
282
|
+
[data-theme="dark"] .md-body tbody tr:nth-child(even){background:rgba(242,251,245,.03)}
|
|
280
283
|
|
|
281
|
-
[data-theme="dark"] .md-body blockquote{background:rgba(
|
|
284
|
+
[data-theme="dark"] .md-body blockquote{background:rgba(var(--warning-rgb),.10)}
|
|
282
285
|
|
|
283
|
-
[data-theme="dark"] .md-body hr{border-color
|
|
286
|
+
[data-theme="dark"] .md-body hr{border-color:var(--md-border)}
|
|
284
287
|
|
|
285
|
-
[data-theme="dark"] .md-body img{border-color
|
|
288
|
+
[data-theme="dark"] .md-body img{border-color:var(--md-border)}
|
|
286
289
|
|
|
287
290
|
[data-theme="dark"] .md-body .hljs-comment,
|
|
288
|
-
[data-theme="dark"] .md-body .hljs-quote{color
|
|
291
|
+
[data-theme="dark"] .md-body .hljs-quote{color:var(--muted)}
|
|
289
292
|
|
|
290
293
|
[data-theme="dark"] .md-body .hljs-keyword,
|
|
291
294
|
[data-theme="dark"] .md-body .hljs-selector-tag,
|
|
292
295
|
[data-theme="dark"] .md-body .hljs-literal,
|
|
293
296
|
[data-theme="dark"] .md-body .hljs-section,
|
|
294
|
-
[data-theme="dark"] .md-body .hljs-link{color
|
|
297
|
+
[data-theme="dark"] .md-body .hljs-link{color:var(--fail)}
|
|
295
298
|
|
|
296
299
|
[data-theme="dark"] .md-body .hljs-string,
|
|
297
300
|
[data-theme="dark"] .md-body .hljs-attr,
|
|
298
301
|
[data-theme="dark"] .md-body .hljs-template-tag,
|
|
299
|
-
[data-theme="dark"] .md-body .hljs-addition{color
|
|
302
|
+
[data-theme="dark"] .md-body .hljs-addition{color:var(--syntax-teal)}
|
|
300
303
|
|
|
301
304
|
[data-theme="dark"] .md-body .hljs-number,
|
|
302
305
|
[data-theme="dark"] .md-body .hljs-built_in,
|
|
303
306
|
[data-theme="dark"] .md-body .hljs-type,
|
|
304
307
|
[data-theme="dark"] .md-body .hljs-params,
|
|
305
|
-
[data-theme="dark"] .md-body .hljs-meta{color
|
|
308
|
+
[data-theme="dark"] .md-body .hljs-meta{color:var(--amber)}
|
|
306
309
|
|
|
307
310
|
[data-theme="dark"] .md-body .hljs-title,
|
|
308
311
|
[data-theme="dark"] .md-body .hljs-title.function_,
|
|
309
312
|
[data-theme="dark"] .md-body .hljs-title.class_,
|
|
310
313
|
[data-theme="dark"] .md-body .hljs-name,
|
|
311
314
|
[data-theme="dark"] .md-body .hljs-selector-id,
|
|
312
|
-
[data-theme="dark"] .md-body .hljs-selector-class{color
|
|
315
|
+
[data-theme="dark"] .md-body .hljs-selector-class{color:var(--amber)}
|
|
313
316
|
|
|
314
317
|
[data-theme="dark"] .md-body .hljs-variable,
|
|
315
318
|
[data-theme="dark"] .md-body .hljs-template-variable,
|
|
316
319
|
[data-theme="dark"] .md-body .hljs-attribute,
|
|
317
320
|
[data-theme="dark"] .md-body .hljs-tag,
|
|
318
|
-
[data-theme="dark"] .md-body .hljs-regexp{color
|
|
321
|
+
[data-theme="dark"] .md-body .hljs-regexp{color:var(--amber)}
|
|
319
322
|
|
|
320
323
|
[data-theme="dark"] .md-body .hljs-symbol,
|
|
321
324
|
[data-theme="dark"] .md-body .hljs-bullet,
|
|
322
325
|
[data-theme="dark"] .md-body .hljs-doctag,
|
|
323
|
-
[data-theme="dark"] .md-body .hljs-deletion{color
|
|
326
|
+
[data-theme="dark"] .md-body .hljs-deletion{color:var(--amber)}
|
|
324
327
|
|
|
325
|
-
[data-theme="dark"] .md-body li.task-li .bx{border-color
|
|
328
|
+
[data-theme="dark"] .md-body li.task-li .bx{border-color:var(--faint)}
|
|
326
329
|
|
|
327
|
-
[data-theme="dark"] .md-body li.task-li.done .bx{background:rgba(
|
|
330
|
+
[data-theme="dark"] .md-body li.task-li.done .bx{background:rgba(var(--success-rgb),.18);border-color:rgba(var(--success-rgb),.52);color:var(--success)}
|
|
328
331
|
|
|
329
|
-
[data-theme="dark"] .qa-t.md-body a{color
|
|
332
|
+
[data-theme="dark"] .qa-t.md-body a{color:var(--amber)}
|
|
330
333
|
|
|
331
|
-
[data-theme="dark"] .qa-t.md-body a:hover{color
|
|
334
|
+
[data-theme="dark"] .qa-t.md-body a:hover{color:var(--ink)}
|
|
332
335
|
|
|
333
|
-
[data-theme="dark"] .qa-t.md-body hr{border-color
|
|
336
|
+
[data-theme="dark"] .qa-t.md-body hr{border-color:var(--md-border)}
|
|
334
337
|
|
|
335
|
-
[data-theme="dark"] .qa-t.md-body img{border-color
|
|
338
|
+
[data-theme="dark"] .qa-t.md-body img{border-color:var(--md-border)}
|
|
336
339
|
|
|
337
340
|
.qa-t.md-body h2{font-size:16.5px}
|
|
338
341
|
|
|
@@ -392,7 +395,14 @@
|
|
|
392
395
|
|
|
393
396
|
.qa-dotgap.on{background:var(--cinnabar-hi)}
|
|
394
397
|
|
|
395
|
-
[data-theme="dark"] .qa-dotgap{background
|
|
398
|
+
[data-theme="dark"] .qa-dotgap{background:var(--faint)}
|
|
399
|
+
|
|
400
|
+
/* 分页点的「当前页」:浅色 d 那行用的是珊瑚 --cinnabar-hi(ZCode 的朱砂),
|
|
401
|
+
深色覆盖没写它 → 会从浅色那份继承过来,在墨绿底上留下唯一一处珊瑚橙。
|
|
402
|
+
深色统一到「进行中」的琥珀(.qa-dot.on / .qa-dotgap.on 两处)。 */
|
|
403
|
+
[data-theme="dark"] .qa-dot.on{background:var(--amber)}
|
|
404
|
+
|
|
405
|
+
[data-theme="dark"] .qa-dotgap.on{background:var(--amber)}
|
|
396
406
|
|
|
397
407
|
.qa-msg.qa-jump .qa-bd{animation:qaJumpFlash 1.2s ease-out 1}
|
|
398
408
|
|
|
@@ -400,9 +410,9 @@
|
|
|
400
410
|
|
|
401
411
|
@media (prefers-reduced-motion: reduce){.qa-msg.qa-jump .qa-bd{animation:none}}
|
|
402
412
|
|
|
403
|
-
[data-theme="dark"] .qa-dot:not(.on){background
|
|
413
|
+
[data-theme="dark"] .qa-dot:not(.on){background:var(--faint)}
|
|
404
414
|
|
|
405
|
-
[data-theme="dark"] .qa-dot:hover:not(.on){background
|
|
415
|
+
[data-theme="dark"] .qa-dot:hover:not(.on){background:var(--muted)}
|
|
406
416
|
|
|
407
417
|
@media (prefers-reduced-motion: reduce){.qa-dot{transition:none}}
|
|
408
418
|
|
|
@@ -459,8 +469,8 @@
|
|
|
459
469
|
user-select:none;white-space:nowrap}
|
|
460
470
|
.qa-hosted-tag::before{content:"";width:4px;height:4px;border-radius:50%;
|
|
461
471
|
background:currentColor;flex:0 0 auto}
|
|
462
|
-
[data-theme="dark"] .qa-msg.qa-hosted .qa-bd{background
|
|
463
|
-
[data-theme="dark"] .qa-hosted-tag{background:rgba(
|
|
472
|
+
[data-theme="dark"] .qa-msg.qa-hosted .qa-bd{background:rgba(var(--warning-rgb),.14);border-color:color-mix(in srgb, var(--amber) 45%, transparent)}
|
|
473
|
+
[data-theme="dark"] .qa-hosted-tag{background:rgba(var(--warning-rgb),.20);color:var(--amber)}
|
|
464
474
|
/* 排队中的用户气泡(`is-queued`):已经发出去、但还在等前一轮跑完。
|
|
465
475
|
气泡照常可读(用户要能确认自己写的是什么),只把底色压淡 + 虚线边 + 底下补一行
|
|
466
476
|
「排队中 · 上一轮结束后自动发送」—— **不隐藏、不挪走**,否则就是这次报障的
|
|
@@ -469,7 +479,7 @@
|
|
|
469
479
|
background:linear-gradient(180deg,#FAF7FF,#F3EEFF)}
|
|
470
480
|
.qa-msg.qa-mine.is-queued .qa-bd::after{content:"排队中 · 上一轮结束后自动发送";
|
|
471
481
|
display:block;margin-top:6px;font-size:11.5px;line-height:15px;color:var(--queued)}
|
|
472
|
-
[data-theme="dark"] .qa-msg.qa-mine.is-queued .qa-bd{background
|
|
482
|
+
[data-theme="dark"] .qa-msg.qa-mine.is-queued .qa-bd{background:color-mix(in srgb, var(--amber) 9%, var(--raised));border-color:var(--queued)}
|
|
473
483
|
[data-theme="dark"] .qa-msg.qa-mine.is-queued .qa-bd::after{color:var(--queued)}
|
|
474
484
|
/* 排队期间被取消(`is-cancelled`):气泡留着当回执,但明确说它不会被执行。
|
|
475
485
|
用灰色虚线而不是红色 —— 用户自己撤的,不是失败,别用报错的颜色吓人。 */
|
|
@@ -498,7 +508,7 @@
|
|
|
498
508
|
|
|
499
509
|
.qa-fold-btn:hover{border-color:#A8A29E;color:var(--paper)}
|
|
500
510
|
|
|
501
|
-
[data-theme="dark"] .qa-fold-btn{background
|
|
511
|
+
[data-theme="dark"] .qa-fold-btn{background:var(--subtle);border-color:var(--md-border);color:var(--ink-soft)}
|
|
502
512
|
|
|
503
513
|
.qa-revshots img{max-width:150px;max-height:104px}
|
|
504
514
|
|
|
@@ -613,11 +623,11 @@
|
|
|
613
623
|
|
|
614
624
|
.qa-art:hover .qa-art-go{opacity:1}
|
|
615
625
|
|
|
616
|
-
[data-theme="dark"] .qa-art{background:rgba(
|
|
626
|
+
[data-theme="dark"] .qa-art{background:rgba(242,251,245,.03);border-color:var(--md-border)}
|
|
617
627
|
|
|
618
628
|
[data-theme="dark"] .qa-art:hover{border-color:var(--cinnabar-hi)}
|
|
619
629
|
|
|
620
|
-
[data-theme="dark"] .qa-art-ext{background:rgba(
|
|
630
|
+
[data-theme="dark"] .qa-art-ext{background:rgba(var(--warning-rgb),.16);border-color:rgba(var(--warning-rgb),.30)}
|
|
621
631
|
|
|
622
632
|
.qa-msg.qa-mine .qa-arts,.qa-msg.qa-sim .qa-arts{justify-content:flex-end}
|
|
623
633
|
|
|
@@ -768,9 +778,9 @@
|
|
|
768
778
|
|
|
769
779
|
.qa-turn-bd > .qa-think:first-child,.qa-turn-bd > .qa-tools:first-child{margin-top:0}
|
|
770
780
|
|
|
771
|
-
[data-theme="dark"] .qa-turn{border-color
|
|
781
|
+
[data-theme="dark"] .qa-turn{border-color:var(--md-border);background:rgba(242,251,245,.02)}
|
|
772
782
|
|
|
773
|
-
[data-theme="dark"] .qa-turn-sum:hover{background:rgba(
|
|
783
|
+
[data-theme="dark"] .qa-turn-sum:hover{background:rgba(242,251,245,.05)}
|
|
774
784
|
|
|
775
785
|
.qa-tool{margin:3px 0 1px;border:1px solid var(--line);border-radius:10px;
|
|
776
786
|
background:#FCFBF9;overflow:hidden;transition:background .25s,border-color .25s}
|
|
@@ -1044,9 +1054,42 @@
|
|
|
1044
1054
|
|
|
1045
1055
|
.qa-errcard .qa-mk-bd{padding-left:2px}
|
|
1046
1056
|
|
|
1047
|
-
|
|
1057
|
+
/* 额度 / 限流提示卡(2026-10-25,见 29-msg-variants 的 qaQuotaCardNode)----------
|
|
1058
|
+
与朱砂「调用失败」卡**刻意分开配色**:额度用尽不是故障(不用修配置),
|
|
1059
|
+
是「等一会儿 / 换个模型」就能继续的状态 —— 涂成错误红会把人引到错误的自救动作上。
|
|
1060
|
+
形态走「左侧琥珀竖条 + 完整三行」(时刻 / 原因 / 建议),与需求看板的 .reqerr 同一范式。
|
|
1061
|
+
⚠️ 色板只用 `--amber`:PC 皮肤(client-ui/pc/app.css)**只有 --amber**,没有
|
|
1062
|
+
--warning / --raised;面与边用 color-mix 淡出,明暗两套主题各自解得对。 */
|
|
1063
|
+
.qa-errcard.qa-quota{
|
|
1064
|
+
border-color:color-mix(in srgb,var(--amber) 42%,transparent);
|
|
1065
|
+
border-left:3px solid color-mix(in srgb,var(--amber) 70%,transparent);
|
|
1066
|
+
padding-left:10px;
|
|
1067
|
+
background:color-mix(in srgb,var(--amber) 8%,transparent)}
|
|
1068
|
+
|
|
1069
|
+
.qa-quota .qa-ec-ico{color:var(--amber)}
|
|
1070
|
+
|
|
1071
|
+
.qa-quota .qa-ec-tt{color:color-mix(in srgb,var(--amber) 72%,var(--paper))}
|
|
1072
|
+
|
|
1073
|
+
/* 抬头右侧那枚小徽章(额度不足 / 已被限流):等宽小字 + 琥珀描边,与 .qa-st 同一档字号 */
|
|
1074
|
+
.qa-qc-badge{flex:none;display:inline-flex;align-items:center;height:15px;padding:0 5px;
|
|
1075
|
+
border:1px solid color-mix(in srgb,var(--amber) 42%,transparent);border-radius:var(--r-xs);
|
|
1076
|
+
background:color-mix(in srgb,var(--amber) 12%,transparent);
|
|
1077
|
+
font-family:var(--mono);font-size:9px;letter-spacing:.06em;white-space:nowrap;color:var(--amber)}
|
|
1078
|
+
|
|
1079
|
+
/* 「什么时候恢复」:时刻加粗(用户此刻只想知道这一个数),相对时间跟在后面 */
|
|
1080
|
+
.qa-qc-reset{margin:6px 0 0;font-size:12.5px;line-height:1.6;color:var(--paper-dim)}
|
|
1081
|
+
|
|
1082
|
+
.qa-qc-reset b{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--amber)}
|
|
1083
|
+
|
|
1084
|
+
/* 「该怎么办」:**和原因同色**(不降档)—— 实测亮色主题下用 --paper-mute(#94A3B8)
|
|
1085
|
+
落在淡琥珀底上只有 ~2.3:1,那句话恰恰是这张卡里唯一「能照着做」的内容,糊了就白写了。 */
|
|
1086
|
+
.qa-qc-hint{margin:4px 0 0;font-size:12px;line-height:1.55;color:var(--paper-dim)}
|
|
1087
|
+
|
|
1088
|
+
[data-theme="dark"] .qa-errcard.qa-quota{background:color-mix(in srgb,var(--amber) 14%,transparent)}
|
|
1048
1089
|
|
|
1049
|
-
[data-theme="dark"] .qa-
|
|
1090
|
+
[data-theme="dark"] .qa-errcard{background:rgba(var(--fail-rgb),.14);border-color:rgba(var(--fail-rgb),.42)}
|
|
1091
|
+
|
|
1092
|
+
[data-theme="dark"] .qa-ec-reason{color:var(--ink-soft)}
|
|
1050
1093
|
|
|
1051
1094
|
.qa-reqacts{display:flex;flex-wrap:wrap;gap:8px;padding:10px 2px 2px;justify-content:flex-start}
|
|
1052
1095
|
|
|
@@ -1064,183 +1107,217 @@
|
|
|
1064
1107
|
|
|
1065
1108
|
.qa-reqacts button.go:hover{background:rgba(214,64,42,.12)}
|
|
1066
1109
|
|
|
1067
|
-
[data-theme="dark"] .qa-reqacts button{background
|
|
1110
|
+
[data-theme="dark"] .qa-reqacts button{background:var(--subtle);border-color:var(--md-border);color:var(--ink-soft)}
|
|
1068
1111
|
|
|
1069
|
-
[data-theme="dark"] .qa-reqacts button.ok{color
|
|
1112
|
+
[data-theme="dark"] .qa-reqacts button.ok{color:var(--success);border-color:rgba(var(--success-rgb),.45);background:rgba(var(--success-rgb),.12)}
|
|
1070
1113
|
|
|
1071
|
-
[data-theme="dark"] .qa-reqacts button.ok:hover{background:rgba(
|
|
1114
|
+
[data-theme="dark"] .qa-reqacts button.ok:hover{background:rgba(var(--success-rgb),.20)}
|
|
1072
1115
|
|
|
1073
|
-
[data-theme="dark"] .qa-reqacts button.go{color
|
|
1116
|
+
[data-theme="dark"] .qa-reqacts button.go{color:var(--amber);border-color:rgba(var(--warning-rgb),.45);background:rgba(var(--warning-rgb),.14)}
|
|
1074
1117
|
|
|
1075
|
-
[data-theme="dark"] .qa-reqacts button.go:hover{background:rgba(
|
|
1118
|
+
[data-theme="dark"] .qa-reqacts button.go:hover{background:rgba(var(--warning-rgb),.22)}
|
|
1076
1119
|
|
|
1077
|
-
[data-theme="dark"] .qa-stream{background
|
|
1120
|
+
[data-theme="dark"] .qa-stream{background:var(--subtle)}
|
|
1078
1121
|
|
|
1079
|
-
[data-theme="dark"] .qa-scroll::-webkit-scrollbar-thumb{background
|
|
1122
|
+
[data-theme="dark"] .qa-scroll::-webkit-scrollbar-thumb{background:var(--md-border);border-color:var(--subtle)}
|
|
1080
1123
|
|
|
1081
|
-
[data-theme="dark"] .qa-msg{color
|
|
1124
|
+
[data-theme="dark"] .qa-msg{color:var(--ink-soft)}
|
|
1082
1125
|
|
|
1083
|
-
[data-theme="dark"] .qa-t{color
|
|
1126
|
+
[data-theme="dark"] .qa-t{color:var(--ink)}
|
|
1084
1127
|
|
|
1085
|
-
[data-theme="dark"] .qa-t.md-body code{background
|
|
1128
|
+
[data-theme="dark"] .qa-t.md-body code{background:var(--md-code-bg);color:var(--ink-soft)}
|
|
1086
1129
|
|
|
1087
|
-
[data-theme="dark"] .qa-t.md-body pre{background
|
|
1130
|
+
[data-theme="dark"] .qa-t.md-body pre{background:var(--subtle);border-color:var(--md-border)}
|
|
1088
1131
|
|
|
1089
|
-
[data-theme="dark"] .qa-t.md-body pre code{color
|
|
1132
|
+
[data-theme="dark"] .qa-t.md-body pre code{color:var(--ink-soft)}
|
|
1090
1133
|
|
|
1091
|
-
[data-theme="dark"] .qa-t.md-body th{background:rgba(
|
|
1134
|
+
[data-theme="dark"] .qa-t.md-body th{background:rgba(242,251,245,.05)}
|
|
1092
1135
|
|
|
1093
|
-
[data-theme="dark"] .qa-t.md-body td,[data-theme="dark"] .qa-t.md-body th{border-color
|
|
1136
|
+
[data-theme="dark"] .qa-t.md-body td,[data-theme="dark"] .qa-t.md-body th{border-color:var(--md-border)}
|
|
1094
1137
|
|
|
1095
|
-
[data-theme="dark"] .qa-t.md-body blockquote{background:rgba(
|
|
1138
|
+
[data-theme="dark"] .qa-t.md-body blockquote{background:rgba(242,251,245,.04);border-color:var(--md-border)}
|
|
1096
1139
|
|
|
1097
|
-
[data-theme="dark"] .qa-t.md-body blockquote p{color
|
|
1140
|
+
[data-theme="dark"] .qa-t.md-body blockquote p{color:var(--muted)}
|
|
1098
1141
|
|
|
1099
|
-
[data-theme="dark"] .qa-msg.qa-mine .qa-bd{background
|
|
1142
|
+
[data-theme="dark"] .qa-msg.qa-mine .qa-bd{background:var(--subtle);border-color:var(--md-border)}
|
|
1100
1143
|
/* 放在上面那条**之后**:同为 4 个类级选择器,靠后才会赢(托管气泡的暗色底不被盖回灰)。 */
|
|
1101
|
-
[data-theme="dark"] .qa-msg.qa-hosted .qa-bd{background
|
|
1144
|
+
[data-theme="dark"] .qa-msg.qa-hosted .qa-bd{background:rgba(var(--warning-rgb),.14);border-color:color-mix(in srgb, var(--amber) 45%, transparent)}
|
|
1102
1145
|
|
|
1103
|
-
[data-theme="dark"] .qa-av-txt{background:linear-gradient(180deg
|
|
1146
|
+
[data-theme="dark"] .qa-av-txt{background:linear-gradient(180deg,color-mix(in srgb,var(--muted) 18%,var(--raised)),var(--raised))}
|
|
1104
1147
|
|
|
1105
|
-
[data-theme="dark"] .qa-av-txt.qa-av-rev{background:linear-gradient(180deg
|
|
1148
|
+
[data-theme="dark"] .qa-av-txt.qa-av-rev{background:linear-gradient(180deg,color-mix(in srgb, var(--amber) 24%, var(--raised)),color-mix(in srgb, var(--amber) 10%, var(--raised)));color:var(--amber)}
|
|
1106
1149
|
|
|
1107
|
-
[data-theme="dark"] .qa-tool{border-color
|
|
1150
|
+
[data-theme="dark"] .qa-tool{border-color:var(--md-border);background:rgba(242,251,245,.02)}
|
|
1108
1151
|
|
|
1109
|
-
[data-theme="dark"] .qa-tool-head:hover{background:rgba(
|
|
1152
|
+
[data-theme="dark"] .qa-tool-head:hover{background:rgba(242,251,245,.05)}
|
|
1110
1153
|
|
|
1111
|
-
[data-theme="dark"] .qa-tool-name{color
|
|
1154
|
+
[data-theme="dark"] .qa-tool-name{color:var(--ink)}
|
|
1112
1155
|
|
|
1113
|
-
[data-theme="dark"] .qa-tool-args{color
|
|
1156
|
+
[data-theme="dark"] .qa-tool-args{color:var(--muted)}
|
|
1114
1157
|
|
|
1115
|
-
[data-theme="dark"] .qa-tool-bd{border-color
|
|
1158
|
+
[data-theme="dark"] .qa-tool-bd{border-color:var(--md-border)}
|
|
1116
1159
|
|
|
1117
|
-
[data-theme="dark"] .qa-tool.open .qa-tool-bd{border-color
|
|
1160
|
+
[data-theme="dark"] .qa-tool.open .qa-tool-bd{border-color:var(--md-border)}
|
|
1118
1161
|
|
|
1119
|
-
[data-theme="dark"] .qa-tool-sec pre{background
|
|
1162
|
+
[data-theme="dark"] .qa-tool-sec pre{background:var(--code)}
|
|
1120
1163
|
|
|
1121
|
-
[data-theme="dark"] .qa-sub{border-color
|
|
1164
|
+
[data-theme="dark"] .qa-sub{border-color:var(--md-border)}
|
|
1122
1165
|
|
|
1123
|
-
[data-theme="dark"] .qa-sub-t{color
|
|
1166
|
+
[data-theme="dark"] .qa-sub-t{color:var(--ink-soft)}
|
|
1124
1167
|
|
|
1125
|
-
[data-theme="dark"] .qa-agent-chip{background:rgba(
|
|
1168
|
+
[data-theme="dark"] .qa-agent-chip{background:rgba(242,251,245,.05);border-color:var(--md-border)}
|
|
1126
1169
|
|
|
1127
|
-
[data-theme="dark"] .qa-agent-chip.run{background:rgba(
|
|
1170
|
+
[data-theme="dark"] .qa-agent-chip.run{background:rgba(var(--warning-rgb),.14);border-color:rgba(var(--warning-rgb),.32)}
|
|
1128
1171
|
|
|
1129
|
-
[data-theme="dark"] .qa-think-bd{background:rgba(
|
|
1172
|
+
[data-theme="dark"] .qa-think-bd{background:rgba(242,251,245,.03);border-color:var(--md-border)}
|
|
1130
1173
|
|
|
1131
|
-
[data-theme="dark"] .qa-ask{border-color
|
|
1174
|
+
[data-theme="dark"] .qa-ask{border-color:var(--md-border);background:rgba(242,251,245,.02)}
|
|
1132
1175
|
|
|
1133
1176
|
[data-theme="dark"] .qa-ico svg{stroke:currentColor}
|
|
1134
1177
|
|
|
1135
1178
|
[data-theme="dark"] .qa-av-img{border-radius:8px}
|
|
1136
1179
|
|
|
1137
|
-
[data-theme="dark"] .qa-msg:not(.qa-mine) .qa-bd{color
|
|
1180
|
+
[data-theme="dark"] .qa-msg:not(.qa-mine) .qa-bd{color:var(--ink-soft)}
|
|
1181
|
+
|
|
1182
|
+
[data-theme="dark"] .qa-t.md-body a{color:var(--amber)}
|
|
1183
|
+
|
|
1184
|
+
[data-theme="dark"] .qa-t.md-body a:hover{color:var(--ink)}
|
|
1185
|
+
|
|
1186
|
+
[data-theme="dark"] .qa-t.md-body hr{border-color:var(--md-border)}
|
|
1138
1187
|
|
|
1139
|
-
[data-theme="dark"] .qa-t.md-body
|
|
1188
|
+
[data-theme="dark"] .qa-t.md-body img{border-color:var(--md-border)}
|
|
1140
1189
|
|
|
1141
|
-
[data-theme="dark"] .qa-
|
|
1190
|
+
[data-theme="dark"] .qa-think-toggle{color:var(--muted)}
|
|
1142
1191
|
|
|
1143
|
-
[data-theme="dark"] .qa-
|
|
1192
|
+
[data-theme="dark"] .qa-think-dur{color:var(--faint)}
|
|
1144
1193
|
|
|
1145
|
-
[data-theme="dark"] .qa-
|
|
1194
|
+
[data-theme="dark"] .qa-tools-toggle{color:var(--muted)}
|
|
1146
1195
|
|
|
1147
|
-
[data-theme="dark"] .qa-
|
|
1196
|
+
[data-theme="dark"] .qa-tools-count{color:var(--faint)}
|
|
1148
1197
|
|
|
1149
|
-
[data-theme="dark"] .qa-
|
|
1198
|
+
[data-theme="dark"] .qa-tools-dur{color:var(--faint)}
|
|
1150
1199
|
|
|
1151
|
-
[data-theme="dark"] .qa-
|
|
1200
|
+
[data-theme="dark"] .qa-tool-ico{background:var(--activity)}
|
|
1152
1201
|
|
|
1153
|
-
[data-theme="dark"] .qa-
|
|
1202
|
+
[data-theme="dark"] .qa-tool-dur{color:var(--faint)}
|
|
1154
1203
|
|
|
1155
|
-
[data-theme="dark"] .qa-
|
|
1204
|
+
[data-theme="dark"] .qa-tool .chev{stroke:var(--faint)}
|
|
1156
1205
|
|
|
1157
|
-
[data-theme="dark"] .qa-tool-
|
|
1206
|
+
[data-theme="dark"] .qa-tool[data-state="running"] .qa-tool-st::before{background:var(--amber)}
|
|
1158
1207
|
|
|
1159
|
-
|
|
1208
|
+
/* ── 2026-10-25 · 深色配色收口(用户:「深色皮肤继续完成全部配色优化」)──
|
|
1209
|
+
这 199 条深色覆盖原先是照 ZCode 的 Stone 灰写死的字面量(#1C1C1E 面 / #3B3835 线 / #E5E5E5 字),
|
|
1210
|
+
外加珊瑚橙 #F06953 当链接、青绿 #34D399 当成功、暖灰 #A8A29E 当次要字。
|
|
1211
|
+
挂到移动端这套墨绿主题上就露出两处毛病:
|
|
1212
|
+
① 一屏两种色:宿主令牌早已是墨绿,这几行还是石褐灰 —— 灰底卡片和玉色卡片并排,像没刷完;
|
|
1213
|
+
② 和主色打架:珊瑚橙在墨绿上是最刺眼的一处,却偏偏用在链接、运行中徽标、批准按钮上,
|
|
1214
|
+
与「玉青 = 可点」的规则相反。
|
|
1215
|
+
所以这一段把深色覆盖统一改成主题令牌(上面 199 行已批量替换):
|
|
1216
|
+
#1C1C1E→--subtle、#0F0F10→--code、#2B2B2E→--md-code-bg、#3B3835→--md-border、
|
|
1217
|
+
#F5F4F3→--ink、#E5E5E5/#D6D3D1→--ink-soft、#A8A29E/#78716C/#71717A→--muted、
|
|
1218
|
+
#525252→--faint、#34D399→--success、#F87171→--fail、#FCA5A5→--error-text,
|
|
1219
|
+
叠加用的 rgba(245,244,243,…) 换成 rgba(242,251,245,…)(= --ink 的 rgb)。
|
|
1220
|
+
下面几条是替换后还要按这套皮肤自己的语义再定一次的:
|
|
1221
|
+
· 链接 / 运行中 / 删除行:珊瑚橙 → 琥珀 --amber。移动端的「可点」是玉青,暖色留给
|
|
1222
|
+
「注意 / 进行中」(与列表里的「等待中」同一个视觉语言);
|
|
1223
|
+
· 代码高亮的青(字符串):深色覆盖原来写薄荷 #5EEAD4(像荧光),改成与浅色同一支绿松石 --syntax-teal;
|
|
1224
|
+
· 「审核」头像格:金渐变换成琥珀两阶,和 --amber 的字同族。
|
|
1225
|
+
浅色一代(不带 [data-theme] 的那些行)一个字没动。 */
|
|
1160
1226
|
|
|
1161
|
-
|
|
1227
|
+
/* 朱砂实心按钮(「沿用这个选项」)上的字:原写 #1C1917(石褐墨),
|
|
1228
|
+
统一换成页面底 --canvas —— 主题里「压在实色上的字」一律是它。 */
|
|
1229
|
+
[data-theme="dark"] .qa-ask-other button{color:var(--canvas)}
|
|
1162
1230
|
|
|
1163
|
-
[data-theme="dark"] .qa-
|
|
1231
|
+
[data-theme="dark"] .qa-ask-other button:hover{color:var(--canvas)}
|
|
1164
1232
|
|
|
1165
|
-
|
|
1233
|
+
/* diff 新增行:原来用 ZCode 的绿松石 #0A6A51(H166),和 --success 的 H142 是两种绿 ——
|
|
1234
|
+
文字提成 --success,与行底(--success-rgb 14%)同族;浅色那份(.qa-diff-row.add)不动。 */
|
|
1235
|
+
[data-theme="dark"] .qa-diff-row.add{color:var(--success)}
|
|
1236
|
+
|
|
1237
|
+
[data-theme="dark"] .qa-diff-row.add .s{color:var(--success)}
|
|
1238
|
+
|
|
1239
|
+
/* 代码块内层底色:#0F0F10(石褐)→ --code(页面层级的代码底)。 */
|
|
1240
|
+
[data-theme="dark"] .qa-tool-sec pre{background:var(--code)}
|
|
1241
|
+
|
|
1242
|
+
[data-theme="dark"] .qa-ask-hd{color:var(--ink-soft)}
|
|
1166
1243
|
|
|
1167
1244
|
[data-theme="dark"] .qa-ask-tag{color:var(--indigo);border-color:color-mix(in srgb, var(--indigo) 40%, transparent);background:color-mix(in srgb, var(--indigo) 10%, transparent)}
|
|
1168
1245
|
|
|
1169
|
-
[data-theme="dark"] .qa-ask-ttl{color
|
|
1246
|
+
[data-theme="dark"] .qa-ask-ttl{color:var(--faint)}
|
|
1170
1247
|
|
|
1171
|
-
[data-theme="dark"] .qa-ask-qb{border-top-color
|
|
1248
|
+
[data-theme="dark"] .qa-ask-qb{border-top-color:var(--md-border)}
|
|
1172
1249
|
|
|
1173
|
-
[data-theme="dark"] .qa-ask-q{color
|
|
1250
|
+
[data-theme="dark"] .qa-ask-q{color:var(--ink)}
|
|
1174
1251
|
|
|
1175
|
-
[data-theme="dark"] .qa-ask-opt{border-color
|
|
1252
|
+
[data-theme="dark"] .qa-ask-opt{border-color:var(--md-border);background:transparent}
|
|
1176
1253
|
|
|
1177
1254
|
[data-theme="dark"] .qa-ask-opt:hover{border-color:color-mix(in srgb, var(--indigo) 45%, transparent);background:color-mix(in srgb, var(--indigo) 8%, transparent)}
|
|
1178
1255
|
|
|
1179
|
-
[data-theme="dark"] .qa-ask-opt .lb{color
|
|
1256
|
+
[data-theme="dark"] .qa-ask-opt .lb{color:var(--ink-soft)}
|
|
1180
1257
|
|
|
1181
|
-
[data-theme="dark"] .qa-ask-opt .ds{color
|
|
1258
|
+
[data-theme="dark"] .qa-ask-opt .ds{color:var(--muted)}
|
|
1182
1259
|
|
|
1183
|
-
[data-theme="dark"] .qa-ask-opt .mk{border-color
|
|
1260
|
+
[data-theme="dark"] .qa-ask-opt .mk{border-color:var(--faint);background:transparent}
|
|
1184
1261
|
|
|
1185
1262
|
[data-theme="dark"] .qa-ask-opt.sel{border-color:var(--indigo);background:color-mix(in srgb, var(--indigo) 10%, transparent)}
|
|
1186
1263
|
|
|
1187
|
-
[data-theme="dark"] .qa-ask-opt.sel .lb{color
|
|
1264
|
+
[data-theme="dark"] .qa-ask-opt.sel .lb{color:var(--ink)}
|
|
1188
1265
|
|
|
1189
|
-
[data-theme="dark"] .qa-ask-other input{background
|
|
1266
|
+
[data-theme="dark"] .qa-ask-other input{background:var(--subtle);border-color:var(--md-border);color:var(--ink)}
|
|
1190
1267
|
|
|
1191
|
-
[data-theme="dark"] .qa-ask-other button{background
|
|
1268
|
+
[data-theme="dark"] .qa-ask-other button{background:var(--subtle);border-color:var(--md-border);color:var(--muted)}
|
|
1192
1269
|
|
|
1193
1270
|
[data-theme="dark"] .qa-ask-sub{background:color-mix(in srgb, var(--indigo) 10%, transparent);border-color:color-mix(in srgb, var(--indigo) 40%, transparent);color:var(--indigo)}
|
|
1194
1271
|
|
|
1195
1272
|
[data-theme="dark"] .qa-ask-sub:hover:not(:disabled){background:color-mix(in srgb, var(--indigo) 18%, transparent)}
|
|
1196
1273
|
|
|
1197
|
-
[data-theme="dark"] .qa-ask-hint{color
|
|
1274
|
+
[data-theme="dark"] .qa-ask-hint{color:var(--faint)}
|
|
1198
1275
|
|
|
1199
|
-
[data-theme="dark"] .qa-ask-ans{border-top-color
|
|
1276
|
+
[data-theme="dark"] .qa-ask-ans{border-top-color:var(--md-border)}
|
|
1200
1277
|
|
|
1201
|
-
[data-theme="dark"] .qa-ask-ans .k{color
|
|
1278
|
+
[data-theme="dark"] .qa-ask-ans .k{color:var(--faint)}
|
|
1202
1279
|
|
|
1203
|
-
[data-theme="dark"] .qa-ask-ans .v{color
|
|
1280
|
+
[data-theme="dark"] .qa-ask-ans .v{color:var(--success)}
|
|
1204
1281
|
|
|
1205
|
-
[data-theme="dark"] .qa-askdock>.qa-ask{background
|
|
1282
|
+
[data-theme="dark"] .qa-askdock>.qa-ask{background:var(--raised);box-shadow:0 6px 20px rgba(0,0,0,.4)}
|
|
1206
1283
|
|
|
1207
|
-
[data-theme="dark"] .qa-askdock::-webkit-scrollbar-thumb{background
|
|
1284
|
+
[data-theme="dark"] .qa-askdock::-webkit-scrollbar-thumb{background:var(--md-border)}
|
|
1208
1285
|
|
|
1209
|
-
[data-theme="dark"] .qa-ask-x{color
|
|
1286
|
+
[data-theme="dark"] .qa-ask-x{color:var(--muted)}
|
|
1210
1287
|
|
|
1211
|
-
[data-theme="dark"] .qa-ask-x:hover{background:rgba(
|
|
1288
|
+
[data-theme="dark"] .qa-ask-x:hover{background:rgba(242,251,245,.08);color:var(--ink)}
|
|
1212
1289
|
|
|
1213
|
-
[data-theme="dark"] .qa-run{background
|
|
1290
|
+
[data-theme="dark"] .qa-run{background:var(--subtle)}
|
|
1214
1291
|
|
|
1215
|
-
[data-theme="dark"] .qa-run::after{background
|
|
1292
|
+
[data-theme="dark"] .qa-run::after{background:var(--subtle)}
|
|
1216
1293
|
|
|
1217
|
-
[data-theme="dark"] .qa-spinner{border-color
|
|
1294
|
+
[data-theme="dark"] .qa-spinner{border-color:var(--md-border);border-top-color:var(--indigo)}
|
|
1218
1295
|
|
|
1219
|
-
[data-theme="dark"] .qa-run-pill{background:rgba(
|
|
1296
|
+
[data-theme="dark"] .qa-run-pill{background:rgba(242,251,245,.05);border-color:var(--md-border)}
|
|
1220
1297
|
|
|
1221
|
-
[data-theme="dark"] .qa-run-t{color
|
|
1298
|
+
[data-theme="dark"] .qa-run-t{color:var(--muted)}
|
|
1222
1299
|
|
|
1223
|
-
[data-theme="dark"] .qa-done{color
|
|
1300
|
+
[data-theme="dark"] .qa-done{color:var(--muted)}
|
|
1224
1301
|
|
|
1225
|
-
[data-theme="dark"] .qa-done .d{background
|
|
1302
|
+
[data-theme="dark"] .qa-done .d{background:var(--success)}
|
|
1226
1303
|
|
|
1227
|
-
[data-theme="dark"] .qa-done.err{color
|
|
1304
|
+
[data-theme="dark"] .qa-done.err{color:var(--fail)}
|
|
1228
1305
|
|
|
1229
|
-
[data-theme="dark"] .qa-done.err .d{background
|
|
1306
|
+
[data-theme="dark"] .qa-done.err .d{background:var(--fail)}
|
|
1230
1307
|
|
|
1231
|
-
[data-theme="dark"] .qa-agent-chip{color
|
|
1308
|
+
[data-theme="dark"] .qa-agent-chip{color:var(--muted);border-color:var(--md-border);background:rgba(242,251,245,.05)}
|
|
1232
1309
|
|
|
1233
|
-
[data-theme="dark"] .qa-agent-chip.run{color
|
|
1310
|
+
[data-theme="dark"] .qa-agent-chip.run{color:var(--amber);background:rgba(var(--warning-rgb),.16);border-color:rgba(var(--warning-rgb),.36)}
|
|
1234
1311
|
|
|
1235
|
-
[data-theme="dark"] .qa-agent-chip.ok{color
|
|
1312
|
+
[data-theme="dark"] .qa-agent-chip.ok{color:var(--success);background:rgba(var(--success-rgb),.12);border-color:rgba(var(--success-rgb),.38)}
|
|
1236
1313
|
|
|
1237
|
-
[data-theme="dark"] .qa-agent-sess{color
|
|
1314
|
+
[data-theme="dark"] .qa-agent-sess{color:var(--muted);border-color:var(--md-border)}
|
|
1238
1315
|
|
|
1239
|
-
[data-theme="dark"] .qa-sub-h{color
|
|
1316
|
+
[data-theme="dark"] .qa-sub-h{color:var(--faint)}
|
|
1240
1317
|
|
|
1241
|
-
[data-theme="dark"] .qa-sub-n{color
|
|
1318
|
+
[data-theme="dark"] .qa-sub-n{color:var(--faint)}
|
|
1242
1319
|
|
|
1243
|
-
[data-theme="dark"] .qa-note{color
|
|
1320
|
+
[data-theme="dark"] .qa-note{color:var(--faint)}
|
|
1244
1321
|
|
|
1245
1322
|
.qa-av.qa-av-sim{display:grid;place-items:center;background:linear-gradient(180deg,var(--cinnabar-hi),var(--cinnabar));color:#FFF7F5}
|
|
1246
1323
|
|
|
@@ -1269,9 +1346,9 @@
|
|
|
1269
1346
|
|
|
1270
1347
|
.qa-ask-other button:hover{background:var(--cinnabar-hi);border-color:var(--cinnabar-hi);color:#fff}
|
|
1271
1348
|
|
|
1272
|
-
[data-theme="dark"] .qa-ask-other button{background:var(--
|
|
1349
|
+
[data-theme="dark"] .qa-ask-other button{background:var(--amber);border-color:var(--amber);color:var(--canvas)}
|
|
1273
1350
|
|
|
1274
|
-
[data-theme="dark"] .qa-ask-other button:hover{background:var(--cinnabar-hi);border-color:var(--cinnabar-hi);color
|
|
1351
|
+
[data-theme="dark"] .qa-ask-other button:hover{background:var(--cinnabar-hi);border-color:var(--cinnabar-hi);color:var(--canvas)}
|
|
1275
1352
|
|
|
1276
1353
|
.qa-tool-name{font-size:10.5px;font-weight:500;color:var(--paper-dim)}
|
|
1277
1354
|
|
|
@@ -1379,13 +1456,13 @@
|
|
|
1379
1456
|
@keyframes qaHistSweep{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}
|
|
1380
1457
|
@keyframes qaHistShimmer{0%{transform:translateX(-100%)}55%,100%{transform:translateX(100%)}}
|
|
1381
1458
|
|
|
1382
|
-
[data-theme="dark"] .qa-hist-note{background:rgba(
|
|
1459
|
+
[data-theme="dark"] .qa-hist-note{background:rgba(242,251,245,.04)}
|
|
1383
1460
|
|
|
1384
|
-
[data-theme="dark"] .qa-hist-note.wait{color
|
|
1461
|
+
[data-theme="dark"] .qa-hist-note.wait{color:var(--faint)}
|
|
1385
1462
|
|
|
1386
|
-
[data-theme="dark"] .qa-hist-note.lost{border-left-color
|
|
1463
|
+
[data-theme="dark"] .qa-hist-note.lost{border-left-color:var(--fail)}
|
|
1387
1464
|
|
|
1388
|
-
[data-theme="dark"] .qa-hist-lines span{background:rgba(
|
|
1465
|
+
[data-theme="dark"] .qa-hist-lines span{background:rgba(242,251,245,.09)}
|
|
1389
1466
|
|
|
1390
1467
|
[data-theme="dark"] .qa-hist-lines span::after{
|
|
1391
1468
|
background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent)}
|
|
@@ -1446,17 +1523,17 @@
|
|
|
1446
1523
|
background:#F5F4F3;font-family:var(--mono);font-size:10.5px;line-height:1.6;
|
|
1447
1524
|
color:#57534E;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}
|
|
1448
1525
|
|
|
1449
|
-
[data-theme="dark"] .qa-hist-step{border-color
|
|
1526
|
+
[data-theme="dark"] .qa-hist-step{border-color:var(--md-border);background:rgba(242,251,245,.02)}
|
|
1450
1527
|
|
|
1451
|
-
[data-theme="dark"] .qa-hist-step summary:hover{background:rgba(
|
|
1528
|
+
[data-theme="dark"] .qa-hist-step summary:hover{background:rgba(242,251,245,.05)}
|
|
1452
1529
|
|
|
1453
|
-
[data-theme="dark"] .qa-hist-step summary::after{color
|
|
1530
|
+
[data-theme="dark"] .qa-hist-step summary::after{color:var(--muted)}
|
|
1454
1531
|
|
|
1455
|
-
[data-theme="dark"] .qa-hist-step--think{border-left-color
|
|
1532
|
+
[data-theme="dark"] .qa-hist-step--think{border-left-color:var(--md-border)}
|
|
1456
1533
|
|
|
1457
|
-
[data-theme="dark"] .qa-hist-step-body{color
|
|
1534
|
+
[data-theme="dark"] .qa-hist-step-body{color:var(--ink-soft)}
|
|
1458
1535
|
|
|
1459
|
-
[data-theme="dark"] .qa-hist-step-pre{background
|
|
1536
|
+
[data-theme="dark"] .qa-hist-step-pre{background:var(--code);color:var(--ink-soft)}
|
|
1460
1537
|
|
|
1461
1538
|
.qa-msg:not(.qa-mine):not(.qa-sim){flex-direction:column;gap:6px;align-items:stretch}
|
|
1462
1539
|
|
|
@@ -1638,33 +1715,33 @@
|
|
|
1638
1715
|
[data-theme="dark"] .qa-cf-bd pre,[data-theme="dark"] .qa-tool-sec pre{
|
|
1639
1716
|
color:#D6D3D1;background:transparent}
|
|
1640
1717
|
|
|
1641
|
-
[data-theme="dark"] .qa-tool-bd > * + *,[data-theme="dark"] .qa-fc-hd{border-color
|
|
1718
|
+
[data-theme="dark"] .qa-tool-bd > * + *,[data-theme="dark"] .qa-fc-hd{border-color:var(--md-border)}
|
|
1642
1719
|
|
|
1643
|
-
[data-theme="dark"] .qa-cf-copy:hover{background:rgba(
|
|
1720
|
+
[data-theme="dark"] .qa-cf-copy:hover{background:rgba(242,251,245,.09);color:var(--ink)}
|
|
1644
1721
|
|
|
1645
|
-
[data-theme="dark"] .qa-mk-row[data-tog="1"]:hover{background:rgba(
|
|
1722
|
+
[data-theme="dark"] .qa-mk-row[data-tog="1"]:hover{background:rgba(242,251,245,.05)}
|
|
1646
1723
|
|
|
1647
|
-
[data-theme="dark"] .qa-st{background:rgba(
|
|
1724
|
+
[data-theme="dark"] .qa-st{background:rgba(242,251,245,.05);border-color:var(--md-border)}
|
|
1648
1725
|
|
|
1649
|
-
[data-theme="dark"] .qa-diff-row .b{background
|
|
1726
|
+
[data-theme="dark"] .qa-diff-row .b{background:var(--md-border)}
|
|
1650
1727
|
|
|
1651
|
-
[data-theme="dark"] .qa-diff-row.add{background:rgba(
|
|
1728
|
+
[data-theme="dark"] .qa-diff-row.add{background:rgba(var(--success-rgb),.14);color:var(--success)}
|
|
1652
1729
|
|
|
1653
|
-
[data-theme="dark"] .qa-diff-row.add .s{color
|
|
1730
|
+
[data-theme="dark"] .qa-diff-row.add .s{color:var(--success)}
|
|
1654
1731
|
|
|
1655
|
-
[data-theme="dark"] .qa-diff-row.del{background:rgba(
|
|
1732
|
+
[data-theme="dark"] .qa-diff-row.del{background:rgba(var(--warning-rgb),.16);color:var(--error-text)}
|
|
1656
1733
|
|
|
1657
|
-
[data-theme="dark"] .qa-diff-row.del .s{color
|
|
1734
|
+
[data-theme="dark"] .qa-diff-row.del .s{color:var(--error-text)}
|
|
1658
1735
|
|
|
1659
1736
|
[data-theme="dark"] .qa-diff-row.hunk{background:color-mix(in srgb, var(--indigo) 12%, transparent);color:var(--indigo)}
|
|
1660
1737
|
|
|
1661
|
-
[data-theme="dark"] .qa-diff-row.file{background:rgba(
|
|
1738
|
+
[data-theme="dark"] .qa-diff-row.file{background:rgba(242,251,245,.045);color:var(--muted)}
|
|
1662
1739
|
|
|
1663
1740
|
.qa-msg.qa-mine .qa-fold-btn{background:transparent}
|
|
1664
1741
|
|
|
1665
1742
|
.qa-msg.qa-mine .qa-fold-btn:hover{background:rgba(28,25,23,.05)}
|
|
1666
1743
|
|
|
1667
|
-
[data-theme="dark"] .qa-msg.qa-mine .qa-fold-btn:hover{background:rgba(
|
|
1744
|
+
[data-theme="dark"] .qa-msg.qa-mine .qa-fold-btn:hover{background:rgba(242,251,245,.07)}
|
|
1668
1745
|
|
|
1669
1746
|
.qa-acts{display:flex;align-items:center;justify-content:flex-start;gap:2px;min-width:0}
|
|
1670
1747
|
|
|
@@ -1697,7 +1774,7 @@
|
|
|
1697
1774
|
|
|
1698
1775
|
.qa-act-copy.copied .i-ok{display:block;stroke:var(--jade)}
|
|
1699
1776
|
|
|
1700
|
-
[data-theme="dark"] .qa-act:hover{background:rgba(
|
|
1777
|
+
[data-theme="dark"] .qa-act:hover{background:rgba(242,251,245,.09);color:var(--ink)}
|
|
1701
1778
|
|
|
1702
1779
|
/* ---- 任务列表(qaTodoNode / qaTodoFill,见 29-msg-variants)----
|
|
1703
1780
|
一族两形:工具卡明细里的「待办清单」与一条应答里唯一那块「任务列表」面板。
|
|
@@ -1752,10 +1829,10 @@
|
|
|
1752
1829
|
stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
|
|
1753
1830
|
.qa-todo-panel.open .qa-todo-toggle svg{transform:rotate(180deg)}
|
|
1754
1831
|
.qa-todo-panel:not(.open) .qa-todo-list{display:none}
|
|
1755
|
-
[data-theme="dark"] .qa-todo-hd{background:rgba(
|
|
1756
|
-
[data-theme="dark"] .qa-todo-ico{border-color
|
|
1757
|
-
[data-theme="dark"] .qa-todo-row.is-in_progress{color
|
|
1758
|
-
[data-theme="dark"] .qa-todo-row.is-completed{color
|
|
1832
|
+
[data-theme="dark"] .qa-todo-hd{background:rgba(242,251,245,.045);border-color:var(--md-border)}
|
|
1833
|
+
[data-theme="dark"] .qa-todo-ico{border-color:var(--faint)}
|
|
1834
|
+
[data-theme="dark"] .qa-todo-row.is-in_progress{color:var(--ink)}
|
|
1835
|
+
[data-theme="dark"] .qa-todo-row.is-completed{color:var(--muted)}
|
|
1759
1836
|
|
|
1760
1837
|
/* ============================================================================
|
|
1761
1838
|
* 令牌桥:magic-test 的调色板名字 → 各端宿主已有的令牌(**只用不定义**)
|
|
@@ -1768,6 +1845,24 @@
|
|
|
1768
1845
|
* 值是「兜底」:宿主给了同名令牌(--ink / --muted / …)就以宿主为准。
|
|
1769
1846
|
* ========================================================================== */
|
|
1770
1847
|
:where(:root) {
|
|
1848
|
+
/* 状态色的 **rgb 三通道**(2026-10-25 深色配色收口):
|
|
1849
|
+
深色覆盖里有一批「同色不同透明度」的叠加底(12 条 .05 / .04 / .03 …),
|
|
1850
|
+
写成 color-mix 会把 alpha 和颜色搅在一起、也没法一行改一处;
|
|
1851
|
+
透传三通道就能写出 rgba(var(--warning-rgb),.14):**颜色永远跟着主题令牌走**。
|
|
1852
|
+
⚠️ 不能写成 var(--amber-rgb, 217, 119, 6):兜底值里有逗号,语法上会被当成三个值。
|
|
1853
|
+
默认值就是本壳的琥珀 / 鎏金 / 玉绿 / 失败红;宿主想让叠加底跟着自己的令牌走,
|
|
1854
|
+
就在自己的 :root 里把 --warning-rgb 等四行改写成对应令牌的 rgb 通道。 */
|
|
1855
|
+
--warning-rgb: 217, 119, 6;
|
|
1856
|
+
--queued-rgb: 232, 199, 122;
|
|
1857
|
+
--success-rgb: 34, 197, 94;
|
|
1858
|
+
--fail-rgb: 248, 113, 113;
|
|
1859
|
+
/* 代码高亮里的「字符串」色:浅色代用的是绿松石 #0F766E(H175)。深色覆盖原来写的是
|
|
1860
|
+
薄荷 #5EEAD4(H166,压在深底上像荧光)—— 直接沿用同一支绿松石,两种主题的代码配色才一致。
|
|
1861
|
+
.md-body a 的「正文链接」默认也走这一支(那几行写成 color:#0F766E;color:var(--syntax-teal,#0F766E),
|
|
1862
|
+
浅色两个值相同 → 一个像素不变);深色覆盖再把正文链接显式换成 --amber(「正文里的可点」规则)。
|
|
1863
|
+
不在主题令牌里:它只服务本文件的 .hljs-string / 正文链接,不参与界面配色。 */
|
|
1864
|
+
--syntax-teal: #0F766E;
|
|
1865
|
+
|
|
1771
1866
|
/* 文字三级(magic-test: paper / paper-dim / paper-mute) */
|
|
1772
1867
|
--paper: var(--ink);
|
|
1773
1868
|
--paper-dim: var(--muted);
|