agentworkshop 0.7.11 → 0.7.13

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 (84) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/CXutoGrn.js +14 -0
  3. package/.output/public/_nuxt/{BLzCac9K2.js → CcwJ2mrD2.js} +1 -1
  4. package/.output/public/_nuxt/{CGx-mtWf.js → D8xY-Yjc.js} +1 -1
  5. package/.output/public/_nuxt/DGVAuScD.js +1 -0
  6. package/.output/public/_nuxt/DVoWWlUW.js +1 -0
  7. package/.output/public/_nuxt/DaE5saZg.js +1 -0
  8. package/.output/public/_nuxt/Dsdy4Ua-.js +1 -0
  9. package/.output/public/_nuxt/{B8WV7GzS.js → E88a-JCG.js} +1 -1
  10. package/.output/public/_nuxt/bAFueD6a.js +1 -0
  11. package/.output/public/_nuxt/builds/latest.json +1 -1
  12. package/.output/public/_nuxt/builds/meta/bf43874b-06d3-4e20-a84d-e5b0d09e8a27.json +1 -0
  13. package/.output/public/_nuxt/dcw.rpqpOYQ8.css +1 -0
  14. package/.output/public/_nuxt/entry.Bv_GCmPP.css +1 -0
  15. package/.output/public/_nuxt/logs.BarkrvUp.css +1 -0
  16. package/.output/public/_nuxt/pages.BkE-AfIb.css +1 -0
  17. package/.output/public/_nuxt/permissions.DTRtZeTw.css +1 -0
  18. package/.output/public/_nuxt/plugins.BcSEwwGb.css +1 -0
  19. package/.output/public/_nuxt/tokens.BVXU1jOK.css +1 -0
  20. package/.output/public/_nuxt/workshop.CbymC2LY.css +1 -0
  21. package/.output/server/chunks/_/nitro.mjs +610 -609
  22. package/.output/server/chunks/_/user.schema.mjs +1 -1
  23. package/.output/server/chunks/_/user.schema.mjs.map +1 -1
  24. package/.output/server/chunks/build/{dcw-DqjHrl5Z.mjs → dcw-B0dtiHFG.mjs} +43 -43
  25. package/.output/server/chunks/build/dcw-B0dtiHFG.mjs.map +1 -0
  26. package/.output/server/chunks/build/{default-YcUHc1Ev.mjs → default-DdV642BY.mjs} +23 -2
  27. package/.output/server/chunks/build/{default-YcUHc1Ev.mjs.map → default-DdV642BY.mjs.map} +1 -1
  28. package/.output/server/chunks/build/{logs-Co854R4y.mjs → logs-UWXeNKy_.mjs} +34 -34
  29. package/.output/server/chunks/build/{logs-Co854R4y.mjs.map → logs-UWXeNKy_.mjs.map} +1 -1
  30. package/.output/server/chunks/build/{pages-DPC1Vp6w.mjs → pages-BmRUbGUi.mjs} +28 -18
  31. package/.output/server/chunks/build/pages-BmRUbGUi.mjs.map +1 -0
  32. package/.output/server/chunks/build/{permissions-Eu9e6hfZ.mjs → permissions-CxEgXic0.mjs} +12 -12
  33. package/.output/server/chunks/build/{permissions-Eu9e6hfZ.mjs.map → permissions-CxEgXic0.mjs.map} +1 -1
  34. package/.output/server/chunks/build/{plugins-D84mvK9G.mjs → plugins-wLIKHcIE.mjs} +17 -17
  35. package/.output/server/chunks/build/plugins-wLIKHcIE.mjs.map +1 -0
  36. package/.output/server/chunks/build/{tokens-CZpnEDVf.mjs → tokens-Dxnuw96_.mjs} +44 -75
  37. package/.output/server/chunks/build/tokens-Dxnuw96_.mjs.map +1 -0
  38. package/.output/server/chunks/build/{workshop-Crsai2Y9.mjs → workshop-CTcYDq2i.mjs} +21 -16
  39. package/.output/server/chunks/build/{workshop-Crsai2Y9.mjs.map → workshop-CTcYDq2i.mjs.map} +1 -1
  40. package/.output/server/chunks/routes/renderer.mjs +1 -1
  41. package/.output/server/chunks/virtual/entry.mjs +14 -12
  42. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  43. package/.output/server/package.json +1 -1
  44. package/app/assets/css/main.css +161 -0
  45. package/app/components/AwChart.vue +12 -2
  46. package/app/composables/useRouteMeta.ts +8 -1
  47. package/app/pages/dcw/index.vue +1079 -1079
  48. package/app/pages/index.vue +7 -2
  49. package/app/pages/logs/index.vue +623 -621
  50. package/app/pages/permissions/index.vue +330 -327
  51. package/app/pages/plugins/index.vue +6 -3
  52. package/app/pages/tokens.vue +11 -13
  53. package/app/pages/workshop/index.vue +3 -1
  54. package/i18n/locales/en.ts +1944 -1943
  55. package/i18n/locales/zh-CN.ts +1943 -1942
  56. package/package.json +1 -1
  57. package/scripts/_dbg-kicker-check.mjs +11 -0
  58. package/scripts/_dbg-perms-e2e.mjs +3 -3
  59. package/scripts/_dbg-plugins-e2e.mjs +1 -1
  60. package/scripts/_dbg-swatch-check.mjs +10 -0
  61. package/scripts/_dbg-ui-shots.mjs +28 -0
  62. package/server/data/dcw-rollback.json +6 -6
  63. package/server/data/dcws.json +345 -345
  64. package/server/repositories/user.repository.ts +4 -3
  65. package/server/schemas/user.schema.ts +2 -2
  66. package/.output/public/_nuxt/B5CYgFAD.js +0 -14
  67. package/.output/public/_nuxt/Bckshc9V.js +0 -1
  68. package/.output/public/_nuxt/D7jiode2.js +0 -1
  69. package/.output/public/_nuxt/DEaY_uvR.js +0 -1
  70. package/.output/public/_nuxt/builds/meta/88479a5b-ce6a-400f-9737-1cc9f54b1fe5.json +0 -1
  71. package/.output/public/_nuxt/d_Sz9KGm.js +0 -1
  72. package/.output/public/_nuxt/dcw.DcDjwvqv.css +0 -1
  73. package/.output/public/_nuxt/entry.B03HBJGC.css +0 -1
  74. package/.output/public/_nuxt/logs.BO-BSyjm.css +0 -1
  75. package/.output/public/_nuxt/pages.CytEOfUs.css +0 -1
  76. package/.output/public/_nuxt/permissions.CwZo6t1V.css +0 -1
  77. package/.output/public/_nuxt/plugins.Clsky_kl.css +0 -1
  78. package/.output/public/_nuxt/tJuVvBSl.js +0 -1
  79. package/.output/public/_nuxt/tokens.BPLe9ioQ.css +0 -1
  80. package/.output/public/_nuxt/workshop.BIdoGfoC.css +0 -1
  81. package/.output/server/chunks/build/dcw-DqjHrl5Z.mjs.map +0 -1
  82. package/.output/server/chunks/build/pages-DPC1Vp6w.mjs.map +0 -1
  83. package/.output/server/chunks/build/plugins-D84mvK9G.mjs.map +0 -1
  84. package/.output/server/chunks/build/tokens-CZpnEDVf.mjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentworkshop-prod",
3
- "version": "0.7.11",
3
+ "version": "0.7.13",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "dependencies": {
@@ -1255,3 +1255,164 @@ ul.task-list {
1255
1255
  animation-duration: 200ms !important;
1256
1256
  }
1257
1257
  }
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
+ }
@@ -10,6 +10,7 @@ import {
10
10
  TooltipComponent,
11
11
  } from 'echarts/components'
12
12
  import VChart from 'vue-echarts'
13
+ import { computed } from 'vue'
13
14
  import type { PropType } from 'vue'
14
15
  import type { EChartsOption } from 'echarts'
15
16
 
@@ -27,18 +28,27 @@ use([
27
28
  DataZoomComponent,
28
29
  ])
29
30
 
30
- defineProps({
31
+ /** Warm Editorial 图表色序(替代 ECharts 默认荧光绿/蓝;与 main.css --chart-* 同源) */
32
+ const EDITORIAL_PALETTE = ['#4a6b57', '#8aa07c', '#c9a26a', '#b3714f', '#6f8296', '#4e4e4e']
33
+
34
+ const props = defineProps({
31
35
  option: {
32
36
  type: Object as PropType<EChartsOption>,
33
37
  required: true,
34
38
  },
35
39
  })
40
+
41
+ // 未显式给 color 的图表统一走编辑色板;给了的尊重页面意图
42
+ const merged = computed<EChartsOption>(() => ({
43
+ color: EDITORIAL_PALETTE,
44
+ ...props.option,
45
+ }))
36
46
  </script>
37
47
 
38
48
  <template>
39
49
  <VChart
40
50
  v-bind="$attrs"
41
- :option="option"
51
+ :option="merged"
42
52
  autoresize
43
53
  />
44
54
  </template>
@@ -26,6 +26,11 @@ export function useRouteMeta() {
26
26
  '/workshop/channel-templates': { key: 'meta.ctpl', icon: 'i-tabler-layout-grid-add' },
27
27
  '/town': { key: 'menu.town', icon: 'i-tabler-map-2' },
28
28
  '/tokens': { key: 'menu.tokens', icon: 'i-tabler-key' },
29
+ '/daq': { key: 'menu.daq', icon: 'i-tabler-activity' },
30
+ '/dcw': { key: 'menu.dcw', icon: 'i-tabler-settings-automation' },
31
+ '/logs': { key: 'menu.logs', icon: 'i-tabler-list-details' },
32
+ '/permissions': { key: 'menu.permissions', icon: 'i-tabler-shield-lock' },
33
+ '/plugins': { key: 'menu.plugins', icon: 'i-tabler-puzzle' },
29
34
  '/users': { key: 'menu.users', icon: 'i-tabler-users-group' },
30
35
  '/monitor': { key: 'menu.monitor', icon: 'i-tabler-cpu' },
31
36
  '/settings': { key: 'menu.settings', icon: 'i-tabler-settings' },
@@ -43,7 +48,9 @@ export function useRouteMeta() {
43
48
  return { title: name ?? `${t('header.workspace')} ${id.slice(0, 6)}`, icon: 'i-tabler-console' }
44
49
  }
45
50
 
46
- return { title: path.split('/').filter(Boolean).pop() ?? '·', icon: 'i-tabler-point' }
51
+ // 单段动态路径(daqs/dcws 等)取末段;纯 slug 至少首字母大写,不再裸显示
52
+ const last = path.split('/').filter(Boolean).pop() ?? '·'
53
+ return { title: last.charAt(0).toUpperCase() + last.slice(1), icon: 'i-tabler-point' }
47
54
  }
48
55
 
49
56
  return { metaFor }