agentworkshop 0.7.22 → 0.7.23

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.
Files changed (61) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{BAbAEW0D.js → BJbhwS5o.js} +1 -1
  3. package/.output/public/_nuxt/Bo8t5fkJ.js +1 -0
  4. package/.output/public/_nuxt/{QT54MQV9.js → C53drffV.js} +1 -1
  5. package/.output/public/_nuxt/{0exC4jVL.js → CEHmSufQ.js} +1 -1
  6. package/.output/public/_nuxt/{D6B0xnjk.js → Dc32T41C.js} +1 -1
  7. package/.output/public/_nuxt/{Ci0uX4c4.js → DtzZqC0z.js} +1 -1
  8. package/.output/public/_nuxt/{c3mwkHWP.js → Ko9mMsJj.js} +3 -3
  9. package/.output/public/_nuxt/_id_.C-YXjn8Q.css +1 -0
  10. package/.output/public/_nuxt/_id_.MbzdFygI.css +1 -0
  11. package/.output/public/_nuxt/_wsId_.BqWBlY7X.css +1 -0
  12. package/.output/public/_nuxt/builds/latest.json +1 -1
  13. package/.output/public/_nuxt/builds/meta/1adc96e0-8bbd-4a79-ac7e-b6952556fef8.json +1 -0
  14. package/.output/public/_nuxt/daq.3OKj58HH.css +1 -0
  15. package/.output/public/_nuxt/dcw.rXH2fc2Z.css +1 -0
  16. package/.output/public/_nuxt/entry.OR_psZHp.css +1 -0
  17. package/.output/public/_nuxt/logs.DMOM-iHe.css +1 -0
  18. package/.output/server/chunks/_/nitro.mjs +744 -744
  19. package/.output/server/chunks/build/{_id_-B9RvEQFC.mjs → _id_-DQDqj-cZ.mjs} +31 -31
  20. package/.output/server/chunks/build/{_id_-B9RvEQFC.mjs.map → _id_-DQDqj-cZ.mjs.map} +1 -1
  21. package/.output/server/chunks/build/{_id_-CqF0R5W5.mjs → _id_-DY6v6sqB.mjs} +135 -135
  22. package/.output/server/chunks/build/{_id_-CqF0R5W5.mjs.map → _id_-DY6v6sqB.mjs.map} +1 -1
  23. package/.output/server/chunks/build/{_wsId_-YC2t_fRt.mjs → _wsId_-C2O5zZsI.mjs} +4 -4
  24. package/.output/server/chunks/build/{_wsId_-YC2t_fRt.mjs.map → _wsId_-C2O5zZsI.mjs.map} +1 -1
  25. package/.output/server/chunks/build/{daq-Bhwwz9vp.mjs → daq-B-3xCp_2.mjs} +103 -103
  26. package/.output/server/chunks/build/{daq-Bhwwz9vp.mjs.map → daq-B-3xCp_2.mjs.map} +1 -1
  27. package/.output/server/chunks/build/{dcw-CBPaFj2f.mjs → dcw-BL2dhuz7.mjs} +43 -43
  28. package/.output/server/chunks/build/{dcw-CBPaFj2f.mjs.map → dcw-BL2dhuz7.mjs.map} +1 -1
  29. package/.output/server/chunks/build/{logs-Bz1p6x_5.mjs → logs-Dto_umFY.mjs} +44 -38
  30. package/.output/server/chunks/build/logs-Dto_umFY.mjs.map +1 -0
  31. package/.output/server/chunks/routes/renderer.mjs +1 -1
  32. package/.output/server/chunks/virtual/entry.mjs +14 -6
  33. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  34. package/.output/server/package.json +1 -1
  35. package/app/assets/css/main.css +306 -161
  36. package/app/components/workshop/blocks/ClusterArtifact.vue +0 -16
  37. package/app/pages/daq/[id].vue +919 -938
  38. package/app/pages/daq/index.vue +1 -22
  39. package/app/pages/dcw/[id].vue +1 -4
  40. package/app/pages/dcw/index.vue +1 -30
  41. package/app/pages/logs/index.vue +99 -87
  42. package/i18n/locales/en.ts +3 -0
  43. package/i18n/locales/zh-CN.ts +5 -0
  44. package/package.json +1 -1
  45. package/scripts/_dbg-logs-ui-e2e.py +125 -0
  46. package/server/data/daqs.json +101 -101
  47. package/server/data/dcw-rollback.json +21 -10
  48. package/server/data/dcw-runs.json +25 -27
  49. package/server/data/dcw-writes.json +12 -0
  50. package/server/data/dcws.json +505 -216
  51. package/server/data/line-runs.json +18 -18
  52. package/.output/public/_nuxt/C_2bTK0C.js +0 -1
  53. package/.output/public/_nuxt/_id_.C2VHq_vT.css +0 -1
  54. package/.output/public/_nuxt/_id_.Dswy2p0I.css +0 -1
  55. package/.output/public/_nuxt/_wsId_.BFyCuUwS.css +0 -1
  56. package/.output/public/_nuxt/builds/meta/e2341fc0-6f3f-4680-abf8-935a7c9fb912.json +0 -1
  57. package/.output/public/_nuxt/daq.BTdEun-8.css +0 -1
  58. package/.output/public/_nuxt/dcw.rpqpOYQ8.css +0 -1
  59. package/.output/public/_nuxt/entry.DRUzDwmX.css +0 -1
  60. package/.output/public/_nuxt/logs.BarkrvUp.css +0 -1
  61. package/.output/server/chunks/build/logs-Bz1p6x_5.mjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentworkshop-prod",
3
- "version": "0.7.22",
3
+ "version": "0.7.23",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "dependencies": {
@@ -617,6 +617,151 @@ ul.task-list {
617
617
  border-color: var(--line-strong);
618
618
  }
619
619
 
620
+ /* ── 页面按钮词汇(全局唯一权威定义,原各页散落定义已收编)──
621
+ * pill-btn 主操作(accent 药丸)/ outline 次级 / danger·stop 危险;
622
+ * ghost-btn 取消/次要;mini-btn 轻量紧凑。形态语言与 aw-pill 同族。 */
623
+ .pill-btn {
624
+ display: inline-flex;
625
+ align-items: center;
626
+ justify-content: center;
627
+ gap: 6px;
628
+ padding: 7px 15px;
629
+ font-family: var(--font-body);
630
+ font-size: 12.5px;
631
+ font-weight: 600;
632
+ line-height: 1.2;
633
+ color: var(--on-accent);
634
+ cursor: pointer;
635
+ user-select: none;
636
+ background: var(--accent);
637
+ border: 1px solid var(--accent);
638
+ border-radius: var(--radius-pill);
639
+ text-decoration: none;
640
+ transition:
641
+ background-color var(--transition-fast),
642
+ border-color var(--transition-fast),
643
+ color var(--transition-fast),
644
+ box-shadow var(--transition-fast),
645
+ transform 160ms cubic-bezier(0.22, 1, 0.36, 1);
646
+ }
647
+
648
+ .pill-btn:hover:not(:disabled) {
649
+ background: var(--accent-strong);
650
+ border-color: var(--accent-strong);
651
+ box-shadow: 0 0 14px var(--accent-soft);
652
+ }
653
+
654
+ .pill-btn:active:not(:disabled) {
655
+ transform: scale(0.97);
656
+ }
657
+
658
+ .pill-btn:disabled {
659
+ opacity: 0.45;
660
+ cursor: default;
661
+ }
662
+
663
+ .pill-btn.outline {
664
+ color: var(--ink);
665
+ background: var(--paper-raised);
666
+ border-color: var(--line-strong);
667
+ }
668
+
669
+ .pill-btn.outline:hover:not(:disabled) {
670
+ background: var(--paper-deep);
671
+ border-color: var(--line-strong);
672
+ box-shadow: none;
673
+ }
674
+
675
+ .pill-btn.danger,
676
+ .pill-btn.stop {
677
+ color: var(--tone-danger-dot);
678
+ background: var(--tone-danger-bg);
679
+ border-color: transparent;
680
+ }
681
+
682
+ .pill-btn.danger:hover:not(:disabled),
683
+ .pill-btn.stop:hover:not(:disabled) {
684
+ background: color-mix(in srgb, var(--tone-danger-dot) 26%, transparent);
685
+ box-shadow: none;
686
+ }
687
+
688
+ .ghost-btn {
689
+ display: inline-flex;
690
+ align-items: center;
691
+ justify-content: center;
692
+ gap: 6px;
693
+ padding: 7px 14px;
694
+ font-family: var(--font-body);
695
+ font-size: 12.5px;
696
+ font-weight: 500;
697
+ line-height: 1.2;
698
+ color: var(--ink-soft);
699
+ cursor: pointer;
700
+ background: transparent;
701
+ border: 1px solid var(--line-strong);
702
+ border-radius: var(--radius-pill);
703
+ transition:
704
+ background-color var(--transition-fast),
705
+ border-color var(--transition-fast),
706
+ color var(--transition-fast),
707
+ transform 160ms cubic-bezier(0.22, 1, 0.36, 1);
708
+ }
709
+
710
+ .ghost-btn:hover:not(:disabled) {
711
+ color: var(--ink);
712
+ background: var(--hover-tint);
713
+ }
714
+
715
+ .ghost-btn:active:not(:disabled) {
716
+ transform: scale(0.97);
717
+ }
718
+
719
+ .ghost-btn:disabled {
720
+ opacity: 0.45;
721
+ cursor: default;
722
+ }
723
+
724
+ .mini-btn {
725
+ display: inline-flex;
726
+ align-items: center;
727
+ justify-content: center;
728
+ gap: 4px;
729
+ padding: 4px 11px;
730
+ font-family: var(--font-body);
731
+ font-size: 12px;
732
+ font-weight: 500;
733
+ line-height: 1.3;
734
+ color: var(--ink-soft);
735
+ cursor: pointer;
736
+ background: var(--paper-deep);
737
+ border: 1px solid var(--line-strong);
738
+ border-radius: var(--radius-chip);
739
+ transition:
740
+ background-color var(--transition-fast),
741
+ border-color var(--transition-fast),
742
+ color var(--transition-fast),
743
+ transform 160ms cubic-bezier(0.22, 1, 0.36, 1);
744
+ }
745
+
746
+ .mini-btn:hover:not(:disabled) {
747
+ color: var(--ink);
748
+ background: var(--hover-tint);
749
+ border-color: var(--ink-fainter);
750
+ }
751
+
752
+ .mini-btn:active:not(:disabled) {
753
+ transform: scale(0.97);
754
+ }
755
+
756
+ .mini-btn.danger {
757
+ color: var(--tone-danger-dot);
758
+ }
759
+
760
+ .mini-btn:disabled {
761
+ opacity: 0.45;
762
+ cursor: default;
763
+ }
764
+
620
765
  /* 幽灵图标钮(28px 方,hover 浮 surface;按压缩放反馈) */
621
766
  .aw-ghost {
622
767
  display: inline-flex;
@@ -1255,164 +1400,164 @@ ul.task-list {
1255
1400
  animation-duration: 200ms !important;
1256
1401
  }
1257
1402
  }
1258
-
1259
- /* ============================================================
1260
- * Warm Editorial · v2 polish(0.7.12)
1261
- * 评审驱动的五笔:图表色板归位 / 表格系统细化 / 空态组件 / 页眉归队 / 动效补全。
1262
- * 原则不变:transform/opacity only;reduced-motion 收敛;反 AI 味。
1263
- * ============================================================ */
1264
-
1265
- :root {
1266
- /* 图表调色板:暖纸体系的同类色序(替代 ECharts 默认荧光绿/蓝绿琥珀三连) */
1267
- --chart-1: #4a6b57; /* 墨绿 —— 首序 */
1268
- --chart-2: #8aa07c; /* 苔绿 */
1269
- --chart-3: #c9a26a; /* 琥珀纸 */
1270
- --chart-4: #b3714f; /* 陶赭 */
1271
- --chart-5: #6f8296; /* 青灰 */
1272
- --chart-track: color-mix(in srgb, var(--ink) 8%, transparent);
1273
-
1274
- /* 动效时长刻度(animate 规范:UI <300ms;hover 100-160;浮层 150-250) */
1275
- --dur-press: 120ms;
1276
- --dur-control: 160ms;
1277
- --dur-overlay: 220ms;
1278
- }
1279
-
1280
- /* ── 图表:坐标轴/图例融入油墨体系;数据序用暖纸色板 ── */
1281
- .aw-chart .ant-table,
1282
- .aw-chart text {
1283
- font-family: var(--font-body);
1284
- }
1285
-
1286
- /* ── 表格系统细化:数字等宽 / 行内操作渐显 / 表头字距 ── */
1287
- .ant-table .ant-table-cell {
1288
- font-variant-numeric: tabular-nums;
1289
- }
1290
-
1291
- .ant-table .ant-table-tbody > tr {
1292
- transition: background-color var(--transition-fast);
1293
- }
1294
-
1295
- /* 行内操作默认半隐,行悬停渐显(降低常驻视觉噪音;触屏/键盘可达性不受影响) */
1296
- @media (hover: hover) and (pointer: fine) {
1297
- .ant-table .ant-table-tbody .row-quiet {
1298
- opacity: 0.45;
1299
- transition: opacity var(--transition-fast);
1300
- }
1301
-
1302
- .ant-table .ant-table-tbody > tr:hover .row-quiet,
1303
- .ant-table .ant-table-tbody > tr:focus-within .row-quiet {
1304
- opacity: 1;
1305
- }
1306
- }
1307
-
1308
- /* ── 空态:细线一道 + 衬线一句 + 导语(拒绝大块剪影图形) ── */
1309
- .aw-empty {
1310
- display: flex;
1311
- flex-direction: column;
1312
- gap: 10px;
1313
- align-items: center;
1314
- padding: 72px 0;
1315
- text-align: center;
1316
- }
1317
-
1318
- .aw-empty::before {
1319
- content: '';
1320
- width: 44px;
1321
- height: 1px;
1322
- background: var(--ink-fainter);
1323
- }
1324
-
1325
- .aw-empty .aw-empty-title {
1326
- font-family: var(--font-display);
1327
- font-size: 19px;
1328
- color: var(--ink-soft);
1329
- }
1330
-
1331
- .aw-empty .aw-empty-sub {
1332
- max-width: 46ch;
1333
- font-size: 12.5px;
1334
- color: var(--ink-faint);
1335
- }
1336
-
1337
- /* ── 状态呼吸点:运行中/live 信号(2s 缓呼吸;reduced-motion 静止) ── */
1338
- .aw-live-dot {
1339
- display: inline-block;
1340
- width: 7px;
1341
- height: 7px;
1342
- margin-right: 6px;
1343
- vertical-align: 1px;
1344
- border-radius: 50%;
1345
- background: var(--tone-live-dot, #b9770e);
1346
- }
1347
-
1348
- @media (prefers-reduced-motion: no-preference) {
1349
- .aw-live-dot {
1350
- animation: aw-breathe 2.2s ease-in-out infinite;
1351
- }
1352
-
1353
- @keyframes aw-breathe {
1354
- 0%, 100% { opacity: 1; }
1355
- 50% { opacity: 0.35; }
1356
- }
1357
- }
1358
-
1359
- /* ── 卡片悬停抬升:统一递给所有 .aw-liftable(4px 上移 + hairline 转墨) ── */
1360
- @media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
1361
- .aw-liftable {
1362
- transition:
1363
- transform var(--dur-control) var(--ease-out-quart),
1364
- border-color var(--transition-fast),
1365
- box-shadow var(--dur-control) var(--ease-out-quart);
1366
- }
1367
-
1368
- .aw-liftable:hover {
1369
- transform: translateY(-3px);
1370
- border-color: color-mix(in srgb, var(--ink) 24%, transparent);
1371
- box-shadow: 0 6px 18px rgb(12 10 9 / 7%);
1372
- }
1373
- }
1374
-
1375
- /* ── 页面进场编排的网格扩展:stagger 之前只覆盖 6 个子元素,补到 12(卡片墙/表格页) ── */
1376
- @media (prefers-reduced-motion: no-preference) {
1377
- .aw-stagger > :nth-child(7) { animation-delay: 0.3s; }
1378
- .aw-stagger > :nth-child(8) { animation-delay: 0.35s; }
1379
- .aw-stagger > :nth-child(9) { animation-delay: 0.4s; }
1380
- .aw-stagger > :nth-child(10) { animation-delay: 0.45s; }
1381
- .aw-stagger > :nth-child(11) { animation-delay: 0.5s; }
1382
- .aw-stagger > :nth-child(12) { animation-delay: 0.55s; }
1383
- }
1384
-
1385
- /* ── 表头对齐:左对齐与正文一致(数字列右对齐由页面按列声明) ── */
1386
- .ant-table .ant-table-thead > tr > th {
1387
- text-align: left;
1388
- }
1389
-
1390
- /* ── 空表占位:替换 ant 默认黑色团状图形为细线风格 ── */
1391
- .ant-empty-image {
1392
- display: flex;
1393
- justify-content: center;
1394
- }
1395
-
1396
- .ant-empty-image svg {
1397
- width: 44px;
1398
- height: 44px;
1399
- fill: none;
1400
- stroke: var(--ink-fainter);
1401
- stroke-width: 1.25;
1402
- opacity: 0.8;
1403
- }
1404
-
1405
- .ant-empty-description {
1406
- color: var(--ink-faint);
1407
- font-size: 12.5px;
1408
- }
1409
-
1410
- /* ── tokens 吊销:安静墨灰,悬停转红(红色只留给确认瞬间) ── */
1411
- .tok-revoke {
1412
- color: var(--ink-faint) !important;
1413
- transition: color var(--transition-fast);
1414
- }
1415
-
1416
- .tok-revoke:hover {
1417
- color: var(--tone-danger-dot, #c25a4e) !important;
1418
- }
1403
+
1404
+ /* ============================================================
1405
+ * Warm Editorial · v2 polish(0.7.12)
1406
+ * 评审驱动的五笔:图表色板归位 / 表格系统细化 / 空态组件 / 页眉归队 / 动效补全。
1407
+ * 原则不变:transform/opacity only;reduced-motion 收敛;反 AI 味。
1408
+ * ============================================================ */
1409
+
1410
+ :root {
1411
+ /* 图表调色板:暖纸体系的同类色序(替代 ECharts 默认荧光绿/蓝绿琥珀三连) */
1412
+ --chart-1: #4a6b57; /* 墨绿 —— 首序 */
1413
+ --chart-2: #8aa07c; /* 苔绿 */
1414
+ --chart-3: #c9a26a; /* 琥珀纸 */
1415
+ --chart-4: #b3714f; /* 陶赭 */
1416
+ --chart-5: #6f8296; /* 青灰 */
1417
+ --chart-track: color-mix(in srgb, var(--ink) 8%, transparent);
1418
+
1419
+ /* 动效时长刻度(animate 规范:UI <300ms;hover 100-160;浮层 150-250) */
1420
+ --dur-press: 120ms;
1421
+ --dur-control: 160ms;
1422
+ --dur-overlay: 220ms;
1423
+ }
1424
+
1425
+ /* ── 图表:坐标轴/图例融入油墨体系;数据序用暖纸色板 ── */
1426
+ .aw-chart .ant-table,
1427
+ .aw-chart text {
1428
+ font-family: var(--font-body);
1429
+ }
1430
+
1431
+ /* ── 表格系统细化:数字等宽 / 行内操作渐显 / 表头字距 ── */
1432
+ .ant-table .ant-table-cell {
1433
+ font-variant-numeric: tabular-nums;
1434
+ }
1435
+
1436
+ .ant-table .ant-table-tbody > tr {
1437
+ transition: background-color var(--transition-fast);
1438
+ }
1439
+
1440
+ /* 行内操作默认半隐,行悬停渐显(降低常驻视觉噪音;触屏/键盘可达性不受影响) */
1441
+ @media (hover: hover) and (pointer: fine) {
1442
+ .ant-table .ant-table-tbody .row-quiet {
1443
+ opacity: 0.45;
1444
+ transition: opacity var(--transition-fast);
1445
+ }
1446
+
1447
+ .ant-table .ant-table-tbody > tr:hover .row-quiet,
1448
+ .ant-table .ant-table-tbody > tr:focus-within .row-quiet {
1449
+ opacity: 1;
1450
+ }
1451
+ }
1452
+
1453
+ /* ── 空态:细线一道 + 衬线一句 + 导语(拒绝大块剪影图形) ── */
1454
+ .aw-empty {
1455
+ display: flex;
1456
+ flex-direction: column;
1457
+ gap: 10px;
1458
+ align-items: center;
1459
+ padding: 72px 0;
1460
+ text-align: center;
1461
+ }
1462
+
1463
+ .aw-empty::before {
1464
+ content: '';
1465
+ width: 44px;
1466
+ height: 1px;
1467
+ background: var(--ink-fainter);
1468
+ }
1469
+
1470
+ .aw-empty .aw-empty-title {
1471
+ font-family: var(--font-display);
1472
+ font-size: 19px;
1473
+ color: var(--ink-soft);
1474
+ }
1475
+
1476
+ .aw-empty .aw-empty-sub {
1477
+ max-width: 46ch;
1478
+ font-size: 12.5px;
1479
+ color: var(--ink-faint);
1480
+ }
1481
+
1482
+ /* ── 状态呼吸点:运行中/live 信号(2s 缓呼吸;reduced-motion 静止) ── */
1483
+ .aw-live-dot {
1484
+ display: inline-block;
1485
+ width: 7px;
1486
+ height: 7px;
1487
+ margin-right: 6px;
1488
+ vertical-align: 1px;
1489
+ border-radius: 50%;
1490
+ background: var(--tone-live-dot, #b9770e);
1491
+ }
1492
+
1493
+ @media (prefers-reduced-motion: no-preference) {
1494
+ .aw-live-dot {
1495
+ animation: aw-breathe 2.2s ease-in-out infinite;
1496
+ }
1497
+
1498
+ @keyframes aw-breathe {
1499
+ 0%, 100% { opacity: 1; }
1500
+ 50% { opacity: 0.35; }
1501
+ }
1502
+ }
1503
+
1504
+ /* ── 卡片悬停抬升:统一递给所有 .aw-liftable(4px 上移 + hairline 转墨) ── */
1505
+ @media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
1506
+ .aw-liftable {
1507
+ transition:
1508
+ transform var(--dur-control) var(--ease-out-quart),
1509
+ border-color var(--transition-fast),
1510
+ box-shadow var(--dur-control) var(--ease-out-quart);
1511
+ }
1512
+
1513
+ .aw-liftable:hover {
1514
+ transform: translateY(-3px);
1515
+ border-color: color-mix(in srgb, var(--ink) 24%, transparent);
1516
+ box-shadow: 0 6px 18px rgb(12 10 9 / 7%);
1517
+ }
1518
+ }
1519
+
1520
+ /* ── 页面进场编排的网格扩展:stagger 之前只覆盖 6 个子元素,补到 12(卡片墙/表格页) ── */
1521
+ @media (prefers-reduced-motion: no-preference) {
1522
+ .aw-stagger > :nth-child(7) { animation-delay: 0.3s; }
1523
+ .aw-stagger > :nth-child(8) { animation-delay: 0.35s; }
1524
+ .aw-stagger > :nth-child(9) { animation-delay: 0.4s; }
1525
+ .aw-stagger > :nth-child(10) { animation-delay: 0.45s; }
1526
+ .aw-stagger > :nth-child(11) { animation-delay: 0.5s; }
1527
+ .aw-stagger > :nth-child(12) { animation-delay: 0.55s; }
1528
+ }
1529
+
1530
+ /* ── 表头对齐:左对齐与正文一致(数字列右对齐由页面按列声明) ── */
1531
+ .ant-table .ant-table-thead > tr > th {
1532
+ text-align: left;
1533
+ }
1534
+
1535
+ /* ── 空表占位:替换 ant 默认黑色团状图形为细线风格 ── */
1536
+ .ant-empty-image {
1537
+ display: flex;
1538
+ justify-content: center;
1539
+ }
1540
+
1541
+ .ant-empty-image svg {
1542
+ width: 44px;
1543
+ height: 44px;
1544
+ fill: none;
1545
+ stroke: var(--ink-fainter);
1546
+ stroke-width: 1.25;
1547
+ opacity: 0.8;
1548
+ }
1549
+
1550
+ .ant-empty-description {
1551
+ color: var(--ink-faint);
1552
+ font-size: 12.5px;
1553
+ }
1554
+
1555
+ /* ── tokens 吊销:安静墨灰,悬停转红(红色只留给确认瞬间) ── */
1556
+ .tok-revoke {
1557
+ color: var(--ink-faint) !important;
1558
+ transition: color var(--transition-fast);
1559
+ }
1560
+
1561
+ .tok-revoke:hover {
1562
+ color: var(--tone-danger-dot, #c25a4e) !important;
1563
+ }
@@ -55,22 +55,6 @@ const expanded = ref(props.block.dupStream)
55
55
  font-size: 10px;
56
56
  color: var(--ink-faint);
57
57
  }
58
- .mini-btn {
59
- padding: 1px 10px;
60
- font-family: var(--font-mono);
61
- font-size: 10px;
62
- color: var(--ink-faint);
63
- cursor: pointer;
64
- background: transparent;
65
- border: 1px solid var(--line-strong);
66
- border-radius: var(--radius-chip);
67
- transition: color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
68
- }
69
- .mini-btn:hover {
70
- color: var(--ink);
71
- background: var(--hover-tint);
72
- border-color: var(--ink-fainter);
73
- }
74
58
  .artifact-cluster > :deep(.artifact-card) {
75
59
  margin-top: 4px;
76
60
  }