agentworkshop 0.7.22 → 0.7.24

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 (208) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/0jKrzLuM.js +19 -0
  3. package/.output/public/_nuxt/{Cor9siSf.js → 6PZPfFcO.js} +1 -1
  4. package/.output/public/_nuxt/BAfp6tmu.js +14 -0
  5. package/.output/public/_nuxt/{B-xskWta.js → BCJFMBQ6.js} +1 -1
  6. package/.output/public/_nuxt/{DNxVTfhe.js → BMb80_tm.js} +1 -1
  7. package/.output/public/_nuxt/{n3vMFfrv.js → Bc-_IsBP.js} +3 -3
  8. package/.output/public/_nuxt/BvNJUu3s.js +1 -0
  9. package/.output/public/_nuxt/C1CSiSBN.js +1 -0
  10. package/.output/public/_nuxt/CAGL7TNK.js +1 -0
  11. package/.output/public/_nuxt/{ed5qX-x5.js → CDLv-n51.js} +1 -1
  12. package/.output/public/_nuxt/CJviSvm-.js +1 -0
  13. package/.output/public/_nuxt/CLZWFhZC.js +1 -0
  14. package/.output/public/_nuxt/{Cr9DkD1d.js → CYzpZzB_.js} +1 -1
  15. package/.output/public/_nuxt/Cb3SnTM8.js +1 -0
  16. package/.output/public/_nuxt/CjXIpPMR.js +1 -0
  17. package/.output/public/_nuxt/CmHzfVc5.js +3 -0
  18. package/.output/public/_nuxt/Cn3J3NXR.js +23 -0
  19. package/.output/public/_nuxt/Coik560n.js +1 -0
  20. package/.output/public/_nuxt/{DA4lxCWC2.js → Ct68Z0232.js} +1 -1
  21. package/.output/public/_nuxt/CuVGPuP1.js +1 -0
  22. package/.output/public/_nuxt/CxY6LfeN.js +1 -0
  23. package/.output/public/_nuxt/{CfVAr2nf.js → Cz9gD2Yo.js} +1 -1
  24. package/.output/public/_nuxt/D6HDb-vN2.js +1 -0
  25. package/.output/public/_nuxt/{E88a-JCG.js → DGAOugLt.js} +1 -1
  26. package/.output/public/_nuxt/DKHcFE1i.js +1 -0
  27. package/.output/public/_nuxt/{BxtpDtzC.js → DNQF_TXX.js} +1 -1
  28. package/.output/public/_nuxt/DSa2O56y.js +1 -0
  29. package/.output/public/_nuxt/DUToq-k_.js +1 -0
  30. package/.output/public/_nuxt/Dfe8vXdG.js +1 -0
  31. package/.output/public/_nuxt/{0exC4jVL.js → Djir5rSD.js} +2 -2
  32. package/.output/public/_nuxt/DjtE7AYt.js +1 -0
  33. package/.output/public/_nuxt/{BBwMH_hG.js → DoAlYsiF.js} +1 -1
  34. package/.output/public/_nuxt/{DWcEk1ur2.js → DvgKXPgu2.js} +1 -1
  35. package/.output/public/_nuxt/JOwsShod.js +2 -0
  36. package/.output/public/_nuxt/X6IraCTB.js +1 -0
  37. package/.output/public/_nuxt/_id_.C-YXjn8Q.css +1 -0
  38. package/.output/public/_nuxt/_id_.MbzdFygI.css +1 -0
  39. package/.output/public/_nuxt/_wsId_.BqWBlY7X.css +1 -0
  40. package/.output/public/_nuxt/{CYBq3kS7.js → b50gYVZl.js} +1 -1
  41. package/.output/public/_nuxt/builds/latest.json +1 -1
  42. package/.output/public/_nuxt/builds/meta/024de5f7-6a10-4f53-82ab-bc65f3ec9e35.json +1 -0
  43. package/.output/public/_nuxt/daq.3OKj58HH.css +1 -0
  44. package/.output/public/_nuxt/dcw.rXH2fc2Z.css +1 -0
  45. package/.output/public/_nuxt/entry.AZM1Culo.css +1 -0
  46. package/.output/public/_nuxt/logs.DMOM-iHe.css +1 -0
  47. package/.output/public/_nuxt/monitor.B--1dPzs.css +1 -0
  48. package/.output/public/_nuxt/permissions.B1pjGChZ.css +1 -0
  49. package/.output/public/_nuxt/plugins.DpCuwaJt.css +1 -0
  50. package/.output/public/_nuxt/tokens.xRb1fSPU.css +1 -0
  51. package/.output/public/_nuxt/users.DuAt_Zwf.css +1 -0
  52. package/.output/public/_nuxt/workshop.BJg84pOK.css +1 -0
  53. package/.output/server/chunks/_/nitro.mjs +777 -798
  54. package/.output/server/chunks/build/{OmpTerminalPanel-Ban3yJZ4.mjs → OmpTerminalPanel-Cw_Vw9oO.mjs} +3 -3
  55. package/.output/server/chunks/build/{OmpTerminalPanel-Ban3yJZ4.mjs.map → OmpTerminalPanel-Cw_Vw9oO.mjs.map} +1 -1
  56. package/.output/server/chunks/build/{_id_-B9RvEQFC.mjs → _id_-DQDqj-cZ.mjs} +31 -31
  57. package/.output/server/chunks/build/{_id_-B9RvEQFC.mjs.map → _id_-DQDqj-cZ.mjs.map} +1 -1
  58. package/.output/server/chunks/build/{_id_-CqF0R5W5.mjs → _id_-DY6v6sqB.mjs} +135 -135
  59. package/.output/server/chunks/build/{_id_-CqF0R5W5.mjs.map → _id_-DY6v6sqB.mjs.map} +1 -1
  60. package/.output/server/chunks/build/{_wsId_-YC2t_fRt.mjs → _wsId_-D38Vx6Ky.mjs} +11 -13
  61. package/.output/server/chunks/build/{_wsId_-YC2t_fRt.mjs.map → _wsId_-D38Vx6Ky.mjs.map} +1 -1
  62. package/.output/server/chunks/build/{agents--6bzGtES.mjs → agents-GnmUGZir.mjs} +6 -8
  63. package/.output/server/chunks/build/agents-GnmUGZir.mjs.map +1 -0
  64. package/.output/server/chunks/build/button-DEcZFcqN.mjs +1 -1
  65. package/.output/server/chunks/build/{card-CCPQoKlh.mjs → card-Dipvaykh.mjs} +4 -4
  66. package/.output/server/chunks/build/{card-CCPQoKlh.mjs.map → card-Dipvaykh.mjs.map} +1 -1
  67. package/.output/server/chunks/build/{channel-templates-C1Bb-U75.mjs → channel-templates-B4z6v8Z5.mjs} +4 -6
  68. package/.output/server/chunks/build/channel-templates-B4z6v8Z5.mjs.map +1 -0
  69. package/.output/server/chunks/build/{checkbox-Dv1kjaUZ.mjs → checkbox-dzcpU_Cd.mjs} +2 -2
  70. package/.output/server/chunks/build/{checkbox-Dv1kjaUZ.mjs.map → checkbox-dzcpU_Cd.mjs.map} +1 -1
  71. package/.output/server/chunks/build/{daq-Bhwwz9vp.mjs → daq-B-3xCp_2.mjs} +103 -103
  72. package/.output/server/chunks/build/{daq-Bhwwz9vp.mjs.map → daq-B-3xCp_2.mjs.map} +1 -1
  73. package/.output/server/chunks/build/{dcw-CBPaFj2f.mjs → dcw-BL2dhuz7.mjs} +43 -43
  74. package/.output/server/chunks/build/{dcw-CBPaFj2f.mjs.map → dcw-BL2dhuz7.mjs.map} +1 -1
  75. package/.output/server/chunks/build/{default-DdV642BY.mjs → default-CLf5m0NE.mjs} +2 -3
  76. package/.output/server/chunks/build/{default-DdV642BY.mjs.map → default-CLf5m0NE.mjs.map} +1 -1
  77. package/.output/server/chunks/build/dropdown-vhn1NPFs.mjs +1 -1
  78. package/.output/server/chunks/build/{input-number-CZ3ZrCsy.mjs → input-number-Bd55elNN.mjs} +3 -3
  79. package/.output/server/chunks/build/{input-number-CZ3ZrCsy.mjs.map → input-number-Bd55elNN.mjs.map} +1 -1
  80. package/.output/server/chunks/build/{input-DxDqeyQW.mjs → input-sf_BT6o6.mjs} +553 -5
  81. package/.output/server/chunks/build/input-sf_BT6o6.mjs.map +1 -0
  82. package/.output/server/chunks/build/{logs-Bz1p6x_5.mjs → logs-Dto_umFY.mjs} +44 -38
  83. package/.output/server/chunks/build/logs-Dto_umFY.mjs.map +1 -0
  84. package/.output/server/chunks/build/menu-WCrlpYVh.mjs +2 -2
  85. package/.output/server/chunks/build/modal-yvUquPj5.mjs +2 -2
  86. package/.output/server/chunks/build/{monitor-miqq9xHB.mjs → monitor-Cp4V-H2n.mjs} +70 -192
  87. package/.output/server/chunks/build/monitor-Cp4V-H2n.mjs.map +1 -0
  88. package/.output/server/chunks/build/{pages-D9tOoJsf.mjs → pages-Dc2H1QFu.mjs} +2 -3
  89. package/.output/server/chunks/build/pages-Dc2H1QFu.mjs.map +1 -0
  90. package/.output/server/chunks/build/{permissions-CxEgXic0.mjs → permissions-BTRW2CVd.mjs} +288 -194
  91. package/.output/server/chunks/build/permissions-BTRW2CVd.mjs.map +1 -0
  92. package/.output/server/chunks/build/{plugins-wLIKHcIE.mjs → plugins-DZR0T4Mh.mjs} +17 -17
  93. package/.output/server/chunks/build/{plugins-wLIKHcIE.mjs.map → plugins-DZR0T4Mh.mjs.map} +1 -1
  94. package/.output/server/chunks/build/popconfirm-CRaHcz5O.mjs +1 -1
  95. package/.output/server/chunks/build/{segmented-ChmQZwz6.mjs → segmented-LPPREMtZ.mjs} +336 -5
  96. package/.output/server/chunks/build/{segmented-ChmQZwz6.mjs.map → segmented-LPPREMtZ.mjs.map} +1 -1
  97. package/.output/server/chunks/build/{settings-BPBll_7K.mjs → settings-UfGyDgM7.mjs} +6 -8
  98. package/.output/server/chunks/build/settings-UfGyDgM7.mjs.map +1 -0
  99. package/.output/server/chunks/build/space-CCBYAkXt.mjs +1 -1
  100. package/.output/server/chunks/build/switch-CelRXpcy.mjs +1 -1
  101. package/.output/server/chunks/build/{table-BtksyDlQ.mjs → table-Cswq-l2r.mjs} +5 -5
  102. package/.output/server/chunks/build/{table-BtksyDlQ.mjs.map → table-Cswq-l2r.mjs.map} +1 -1
  103. package/.output/server/chunks/build/{tabs-DQv-_-R6.mjs → tabs-BM3tAh_J.mjs} +2 -2
  104. package/.output/server/chunks/build/{tabs-DQv-_-R6.mjs.map → tabs-BM3tAh_J.mjs.map} +1 -1
  105. package/.output/server/chunks/build/{tag-A0tZ2Ouq.mjs → tag-NO9jEqKy.mjs} +3 -3
  106. package/.output/server/chunks/build/{tag-A0tZ2Ouq.mjs.map → tag-NO9jEqKy.mjs.map} +1 -1
  107. package/.output/server/chunks/build/{teams-DD8ZXTKL.mjs → teams-Cbg27MWW.mjs} +4 -6
  108. package/.output/server/chunks/build/teams-Cbg27MWW.mjs.map +1 -0
  109. package/.output/server/chunks/build/{tokens-Dxnuw96_.mjs → tokens-Bmm6rDfj.mjs} +296 -200
  110. package/.output/server/chunks/build/tokens-Bmm6rDfj.mjs.map +1 -0
  111. package/.output/server/chunks/build/{users-D6RNylrW.mjs → users-B50HHrfi.mjs} +12 -13
  112. package/.output/server/chunks/build/users-B50HHrfi.mjs.map +1 -0
  113. package/.output/server/chunks/build/{workshop-CTcYDq2i.mjs → workshop-81xhz368.mjs} +21 -22
  114. package/.output/server/chunks/build/workshop-81xhz368.mjs.map +1 -0
  115. package/.output/server/chunks/routes/renderer.mjs +2 -2
  116. package/.output/server/chunks/virtual/entry.mjs +53 -21
  117. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  118. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  119. package/.output/server/package.json +1 -1
  120. package/app/app.vue +7 -0
  121. package/app/assets/css/main.css +318 -162
  122. package/app/components/workshop/blocks/ClusterArtifact.vue +0 -16
  123. package/app/pages/daq/[id].vue +919 -938
  124. package/app/pages/daq/index.vue +1 -22
  125. package/app/pages/dcw/[id].vue +1 -4
  126. package/app/pages/dcw/index.vue +1 -30
  127. package/app/pages/logs/index.vue +99 -87
  128. package/app/pages/monitor.vue +56 -68
  129. package/app/pages/permissions/index.vue +86 -82
  130. package/app/pages/plugins/index.vue +12 -7
  131. package/app/pages/tokens.vue +94 -96
  132. package/app/pages/users.vue +10 -18
  133. package/app/pages/workshop/index.vue +34 -5
  134. package/i18n/locales/en.ts +4 -1
  135. package/i18n/locales/zh-CN.ts +6 -1
  136. package/package.json +1 -1
  137. package/scripts/_dbg-logs-ui-e2e.py +126 -0
  138. package/scripts/_dbg-ui-survey.py +52 -0
  139. package/server/data/daqs.json +101 -101
  140. package/server/data/dcw-lines.json +7 -0
  141. package/server/data/dcw-products.json +7 -0
  142. package/server/data/dcw-recipes.json +22 -0
  143. package/server/data/dcw-rollback.json +84 -10
  144. package/server/data/dcw-runs.json +52 -54
  145. package/server/data/dcw-writes.json +36 -0
  146. package/server/data/dcws.json +533 -216
  147. package/server/data/line-runs.json +18 -18
  148. package/.output/public/_nuxt/BAbAEW0D.js +0 -1
  149. package/.output/public/_nuxt/BWC4HQHQ.js +0 -1
  150. package/.output/public/_nuxt/BbZAzXjZ2.js +0 -1
  151. package/.output/public/_nuxt/BgOhoDTI.js +0 -1
  152. package/.output/public/_nuxt/BuiGDfMB.js +0 -1
  153. package/.output/public/_nuxt/BxPPAkGA.js +0 -3
  154. package/.output/public/_nuxt/C_2bTK0C.js +0 -1
  155. package/.output/public/_nuxt/CcwJ2mrD2.js +0 -1
  156. package/.output/public/_nuxt/Ci0uX4c4.js +0 -1
  157. package/.output/public/_nuxt/D6B0xnjk.js +0 -1
  158. package/.output/public/_nuxt/DTYBfjRY.js +0 -1
  159. package/.output/public/_nuxt/DVoWWlUW.js +0 -1
  160. package/.output/public/_nuxt/Dhqra7NB.js +0 -1
  161. package/.output/public/_nuxt/DlRO_q5L.js +0 -1
  162. package/.output/public/_nuxt/DsUUYP292.js +0 -1
  163. package/.output/public/_nuxt/Dsdy4Ua-.js +0 -1
  164. package/.output/public/_nuxt/QT54MQV9.js +0 -1
  165. package/.output/public/_nuxt/RzXYI9FM.js +0 -23
  166. package/.output/public/_nuxt/UtviM1bg.js +0 -1
  167. package/.output/public/_nuxt/_id_.C2VHq_vT.css +0 -1
  168. package/.output/public/_nuxt/_id_.Dswy2p0I.css +0 -1
  169. package/.output/public/_nuxt/_wsId_.BFyCuUwS.css +0 -1
  170. package/.output/public/_nuxt/bAFueD6a.js +0 -1
  171. package/.output/public/_nuxt/builds/meta/e2341fc0-6f3f-4680-abf8-935a7c9fb912.json +0 -1
  172. package/.output/public/_nuxt/c3mwkHWP.js +0 -14
  173. package/.output/public/_nuxt/daq.BTdEun-8.css +0 -1
  174. package/.output/public/_nuxt/dbi5bHkY.js +0 -2
  175. package/.output/public/_nuxt/dcw.rpqpOYQ8.css +0 -1
  176. package/.output/public/_nuxt/eHYnGew0.js +0 -19
  177. package/.output/public/_nuxt/entry.DRUzDwmX.css +0 -1
  178. package/.output/public/_nuxt/jyQyulh-.js +0 -1
  179. package/.output/public/_nuxt/logs.BarkrvUp.css +0 -1
  180. package/.output/public/_nuxt/monitor.CmwpEUCI.css +0 -1
  181. package/.output/public/_nuxt/permissions.DTRtZeTw.css +0 -1
  182. package/.output/public/_nuxt/plugins.BcSEwwGb.css +0 -1
  183. package/.output/public/_nuxt/tokens.BVXU1jOK.css +0 -1
  184. package/.output/public/_nuxt/users.D8lcLE62.css +0 -1
  185. package/.output/public/_nuxt/workshop.CbymC2LY.css +0 -1
  186. package/.output/public/_nuxt/zVkqCZ78.js +0 -1
  187. package/.output/server/chunks/build/Col-biaNnEPf.mjs +0 -338
  188. package/.output/server/chunks/build/Col-biaNnEPf.mjs.map +0 -1
  189. package/.output/server/chunks/build/agents--6bzGtES.mjs.map +0 -1
  190. package/.output/server/chunks/build/channel-templates-C1Bb-U75.mjs.map +0 -1
  191. package/.output/server/chunks/build/hasIn-vQ9LWt-J.mjs +0 -554
  192. package/.output/server/chunks/build/hasIn-vQ9LWt-J.mjs.map +0 -1
  193. package/.output/server/chunks/build/input-DxDqeyQW.mjs.map +0 -1
  194. package/.output/server/chunks/build/logs-Bz1p6x_5.mjs.map +0 -1
  195. package/.output/server/chunks/build/monitor-miqq9xHB.mjs.map +0 -1
  196. package/.output/server/chunks/build/pages-D9tOoJsf.mjs.map +0 -1
  197. package/.output/server/chunks/build/permissions-CxEgXic0.mjs.map +0 -1
  198. package/.output/server/chunks/build/settings-BPBll_7K.mjs.map +0 -1
  199. package/.output/server/chunks/build/teams-DD8ZXTKL.mjs.map +0 -1
  200. package/.output/server/chunks/build/tokens-Dxnuw96_.mjs.map +0 -1
  201. package/.output/server/chunks/build/useSiteConfig-DJe_KMVr.mjs +0 -27
  202. package/.output/server/chunks/build/useSiteConfig-DJe_KMVr.mjs.map +0 -1
  203. package/.output/server/chunks/build/users-D6RNylrW.mjs.map +0 -1
  204. package/.output/server/chunks/build/workshop-CTcYDq2i.mjs.map +0 -1
  205. /package/.output/public/_nuxt/{CNs_Ozdc.js → CNs_Ozdc2.js} +0 -0
  206. /package/.output/public/_nuxt/{Cno6kYiO.js → Cno6kYiO2.js} +0 -0
  207. /package/.output/public/_nuxt/{DAR70Lf5.js → DAR70Lf52.js} +0 -0
  208. /package/.output/public/_nuxt/{ORt9oDIy2.js → ORt9oDIy.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentworkshop-prod",
3
- "version": "0.7.22",
3
+ "version": "0.7.24",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "dependencies": {
package/app/app.vue CHANGED
@@ -8,6 +8,13 @@ const store = useAppStore()
8
8
  const config = useRuntimeConfig().public
9
9
  const runtimeCfg = useRuntimeConfigStore()
10
10
 
11
+ // SSR 首帧 antd token 跟随服务端 theme.mode:store 默认深色,若服务端配置为浅色而客户端
12
+ // 挂载后才翻转,cssinjs 的 hash 相同样式不会重新注入,浅色下组件会缺 padding/格线等基础样式。
13
+ const site = useSiteConfig()
14
+ if (import.meta.server) {
15
+ store.isDark = (site.themeMode ?? 'dark') !== 'light'
16
+ }
17
+
11
18
  const antdLocale = computed(() => (locale.value.startsWith('en') ? enUS : zhCN))
12
19
 
13
20
  /** 将 hex 向白混合(lighten),供暗色模式强调色提亮 */
@@ -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;
@@ -1074,7 +1219,7 @@ ul.task-list {
1074
1219
  border-radius: var(--radius-chip);
1075
1220
  }
1076
1221
 
1077
- /* 表格:表头 Inter 小标(caption-uppercase),行线 hairline */
1222
+ /* 表格:表头 Inter 小标(caption-uppercase),行线 hairline;禁止竖向格线(操作台横向扫描语言) */
1078
1223
  .ant-table {
1079
1224
  background: transparent;
1080
1225
  }
@@ -1089,14 +1234,25 @@ ul.task-list {
1089
1234
  border-bottom: 1px solid var(--line-strong) !important;
1090
1235
  }
1091
1236
 
1237
+ .ant-table .ant-table-thead > tr > th,
1238
+ .ant-table .ant-table-tbody > tr > td {
1239
+ border-inline-end: none !important;
1240
+ }
1241
+
1092
1242
  .ant-table .ant-table-tbody > tr > td {
1093
1243
  border-bottom-color: var(--divider-hair);
1244
+ font-variant-numeric: tabular-nums;
1094
1245
  }
1095
1246
 
1096
1247
  .ant-table .ant-table-tbody > tr:hover > td {
1097
1248
  background: var(--hover-tint) !important;
1098
1249
  }
1099
1250
 
1251
+ /* 空态:收敛默认内边距,与玻璃卡同族 */
1252
+ .ant-table .ant-table-placeholder {
1253
+ background: transparent;
1254
+ }
1255
+
1100
1256
  /* 描述列表:标签 Inter 小标、值等宽 */
1101
1257
  .ant-descriptions .ant-descriptions-item-label {
1102
1258
  font-family: var(--font-body);
@@ -1255,164 +1411,164 @@ ul.task-list {
1255
1411
  animation-duration: 200ms !important;
1256
1412
  }
1257
1413
  }
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
- }
1414
+
1415
+ /* ============================================================
1416
+ * Warm Editorial · v2 polish(0.7.12)
1417
+ * 评审驱动的五笔:图表色板归位 / 表格系统细化 / 空态组件 / 页眉归队 / 动效补全。
1418
+ * 原则不变:transform/opacity only;reduced-motion 收敛;反 AI 味。
1419
+ * ============================================================ */
1420
+
1421
+ :root {
1422
+ /* 图表调色板:暖纸体系的同类色序(替代 ECharts 默认荧光绿/蓝绿琥珀三连) */
1423
+ --chart-1: #4a6b57; /* 墨绿 —— 首序 */
1424
+ --chart-2: #8aa07c; /* 苔绿 */
1425
+ --chart-3: #c9a26a; /* 琥珀纸 */
1426
+ --chart-4: #b3714f; /* 陶赭 */
1427
+ --chart-5: #6f8296; /* 青灰 */
1428
+ --chart-track: color-mix(in srgb, var(--ink) 8%, transparent);
1429
+
1430
+ /* 动效时长刻度(animate 规范:UI <300ms;hover 100-160;浮层 150-250) */
1431
+ --dur-press: 120ms;
1432
+ --dur-control: 160ms;
1433
+ --dur-overlay: 220ms;
1434
+ }
1435
+
1436
+ /* ── 图表:坐标轴/图例融入油墨体系;数据序用暖纸色板 ── */
1437
+ .aw-chart .ant-table,
1438
+ .aw-chart text {
1439
+ font-family: var(--font-body);
1440
+ }
1441
+
1442
+ /* ── 表格系统细化:数字等宽 / 行内操作渐显 / 表头字距 ── */
1443
+ .ant-table .ant-table-cell {
1444
+ font-variant-numeric: tabular-nums;
1445
+ }
1446
+
1447
+ .ant-table .ant-table-tbody > tr {
1448
+ transition: background-color var(--transition-fast);
1449
+ }
1450
+
1451
+ /* 行内操作默认半隐,行悬停渐显(降低常驻视觉噪音;触屏/键盘可达性不受影响) */
1452
+ @media (hover: hover) and (pointer: fine) {
1453
+ .ant-table .ant-table-tbody .row-quiet {
1454
+ opacity: 0.45;
1455
+ transition: opacity var(--transition-fast);
1456
+ }
1457
+
1458
+ .ant-table .ant-table-tbody > tr:hover .row-quiet,
1459
+ .ant-table .ant-table-tbody > tr:focus-within .row-quiet {
1460
+ opacity: 1;
1461
+ }
1462
+ }
1463
+
1464
+ /* ── 空态:细线一道 + 衬线一句 + 导语(拒绝大块剪影图形) ── */
1465
+ .aw-empty {
1466
+ display: flex;
1467
+ flex-direction: column;
1468
+ gap: 10px;
1469
+ align-items: center;
1470
+ padding: 72px 0;
1471
+ text-align: center;
1472
+ }
1473
+
1474
+ .aw-empty::before {
1475
+ content: '';
1476
+ width: 44px;
1477
+ height: 1px;
1478
+ background: var(--ink-fainter);
1479
+ }
1480
+
1481
+ .aw-empty .aw-empty-title {
1482
+ font-family: var(--font-display);
1483
+ font-size: 19px;
1484
+ color: var(--ink-soft);
1485
+ }
1486
+
1487
+ .aw-empty .aw-empty-sub {
1488
+ max-width: 46ch;
1489
+ font-size: 12.5px;
1490
+ color: var(--ink-faint);
1491
+ }
1492
+
1493
+ /* ── 状态呼吸点:运行中/live 信号(2s 缓呼吸;reduced-motion 静止) ── */
1494
+ .aw-live-dot {
1495
+ display: inline-block;
1496
+ width: 7px;
1497
+ height: 7px;
1498
+ margin-right: 6px;
1499
+ vertical-align: 1px;
1500
+ border-radius: 50%;
1501
+ background: var(--tone-live-dot, #b9770e);
1502
+ }
1503
+
1504
+ @media (prefers-reduced-motion: no-preference) {
1505
+ .aw-live-dot {
1506
+ animation: aw-breathe 2.2s ease-in-out infinite;
1507
+ }
1508
+
1509
+ @keyframes aw-breathe {
1510
+ 0%, 100% { opacity: 1; }
1511
+ 50% { opacity: 0.35; }
1512
+ }
1513
+ }
1514
+
1515
+ /* ── 卡片悬停抬升:统一递给所有 .aw-liftable(4px 上移 + hairline 转墨) ── */
1516
+ @media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
1517
+ .aw-liftable {
1518
+ transition:
1519
+ transform var(--dur-control) var(--ease-out-quart),
1520
+ border-color var(--transition-fast),
1521
+ box-shadow var(--dur-control) var(--ease-out-quart);
1522
+ }
1523
+
1524
+ .aw-liftable:hover {
1525
+ transform: translateY(-3px);
1526
+ border-color: color-mix(in srgb, var(--ink) 24%, transparent);
1527
+ box-shadow: 0 6px 18px rgb(12 10 9 / 7%);
1528
+ }
1529
+ }
1530
+
1531
+ /* ── 页面进场编排的网格扩展:stagger 之前只覆盖 6 个子元素,补到 12(卡片墙/表格页) ── */
1532
+ @media (prefers-reduced-motion: no-preference) {
1533
+ .aw-stagger > :nth-child(7) { animation-delay: 0.3s; }
1534
+ .aw-stagger > :nth-child(8) { animation-delay: 0.35s; }
1535
+ .aw-stagger > :nth-child(9) { animation-delay: 0.4s; }
1536
+ .aw-stagger > :nth-child(10) { animation-delay: 0.45s; }
1537
+ .aw-stagger > :nth-child(11) { animation-delay: 0.5s; }
1538
+ .aw-stagger > :nth-child(12) { animation-delay: 0.55s; }
1539
+ }
1540
+
1541
+ /* ── 表头对齐:左对齐与正文一致(数字列右对齐由页面按列声明) ── */
1542
+ .ant-table .ant-table-thead > tr > th {
1543
+ text-align: left;
1544
+ }
1545
+
1546
+ /* ── 空表占位:替换 ant 默认黑色团状图形为细线风格 ── */
1547
+ .ant-empty-image {
1548
+ display: flex;
1549
+ justify-content: center;
1550
+ }
1551
+
1552
+ .ant-empty-image svg {
1553
+ width: 44px;
1554
+ height: 44px;
1555
+ fill: none;
1556
+ stroke: var(--ink-fainter);
1557
+ stroke-width: 1.25;
1558
+ opacity: 0.8;
1559
+ }
1560
+
1561
+ .ant-empty-description {
1562
+ color: var(--ink-faint);
1563
+ font-size: 12.5px;
1564
+ }
1565
+
1566
+ /* ── tokens 吊销:安静墨灰,悬停转红(红色只留给确认瞬间) ── */
1567
+ .tok-revoke {
1568
+ color: var(--ink-faint) !important;
1569
+ transition: color var(--transition-fast);
1570
+ }
1571
+
1572
+ .tok-revoke:hover {
1573
+ color: var(--tone-danger-dot, #c25a4e) !important;
1574
+ }
@@ -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
  }