merge: maestro/tsk_KhcaF4zoESVe [tsk_KhcaF4zoESVe]

This commit is contained in:
maestro
2026-06-13 14:53:40 +08:00
2 changed files with 61 additions and 23 deletions
+1 -1
View File
@@ -103,7 +103,7 @@
<section id="gateSection" class="gate-section" hidden>
<div class="gate-stripe"></div>
<div class="sec-head gate-head"><span class="head-mark amber"></span>审批闸 · 等待裁决</div>
<div class="sec-head gate-head"><span class="head-mark violet"></span>审批闸 · 等待裁决</div>
<div id="gateList"></div>
</section>
+60 -22
View File
@@ -198,6 +198,7 @@ body::before {
#eventPanel .sec-head { padding: 18px 16px 10px; background: linear-gradient(var(--bg-deep) 75%, transparent); }
.head-mark { color: var(--green); }
.head-mark.amber { color: var(--amber); }
.head-mark.violet { color: var(--violet); }
.head-mark.cyan { color: var(--cyan); }
.side-head .btn, .sec-head .btn { margin-left: auto; letter-spacing: .1em; }
@@ -256,8 +257,9 @@ body::before {
.proj-meta { font-size: 11px; color: var(--muted); margin-top: 2px; }
.spacer { flex: 1; }
.gate-count {
font-size: 11px; letter-spacing: .12em; color: var(--amber);
border: 1px solid var(--amber-dim); padding: 4px 10px;
font-size: 11px; letter-spacing: .12em; color: var(--violet);
border: 1px solid var(--violet-dim); padding: 4px 10px;
border-radius: var(--radius-xs);
animation: pulse 2.2s infinite;
}
@@ -294,11 +296,13 @@ body::before {
.agent-empty {
padding: 12px 14px; color: var(--faint); font-size: 12px;
border: 1px dashed var(--line);
border-radius: var(--radius-md);
}
.agent-flex {
display: flex; gap: 20px; align-items: stretch;
background: var(--panel); border: 1px solid var(--cyan-dim);
padding: 12px 16px;
border-radius: var(--radius-md);
animation: rise .2s ease both;
}
.agent-big {
@@ -334,6 +338,7 @@ body::before {
.agent-run-kind {
flex: none; font-size: 10px; letter-spacing: .1em;
color: var(--cyan); border: 1px solid var(--cyan-dim); padding: 0 6px;
border-radius: var(--radius-xs);
}
.agent-run-time { flex: none; margin-left: auto; font-size: 10.5px; color: var(--faint); }
@@ -342,14 +347,17 @@ body::before {
.gate-stripe {
height: 5px;
background: repeating-linear-gradient(-45deg,
var(--amber) 0 9px, transparent 9px 18px);
var(--violet) 0 9px, transparent 9px 18px);
opacity: .8;
border-radius: var(--radius-xs);
}
.gate-head { padding-top: 12px; position: static; background: none; color: var(--amber); }
.gate-head { padding-top: 12px; position: static; background: none; color: var(--violet); }
.gate-card {
background: var(--panel);
border: 1px solid var(--amber-dim);
border: 1px solid var(--violet-dim);
border-radius: var(--radius-md);
overflow: hidden;
margin-bottom: 12px;
animation: rise .25s ease both;
}
@@ -362,11 +370,12 @@ body::before {
}
.gate-kind {
font-size: 10.5px; font-weight: 700; letter-spacing: .18em;
color: var(--bg); background: var(--amber);
color: var(--bg); background: var(--violet);
padding: 2px 8px;
border-radius: var(--radius-xs);
}
.gate-title { font-weight: 600; }
.gate-body { padding: 12px 14px; }
.gate-title { font-weight: 600; font-size: 13px; }
.gate-body { padding: 12px 14px; font-size: 12.5px; }
.gate-doc-label { font-size: 10.5px; color: var(--muted); letter-spacing: .18em; margin: 8px 0 4px; }
.gate-doc-label:first-child { margin-top: 0; }
@@ -374,6 +383,7 @@ pre.doc {
background: var(--bg-deep);
border: 1px solid var(--line-soft);
border-left: 2px solid var(--green-dim);
border-radius: var(--radius-sm);
padding: 10px 12px;
font-family: var(--mono); font-size: 12.5px;
white-space: pre-wrap; word-break: break-word;
@@ -401,6 +411,7 @@ pre.doc.empty { color: var(--faint); border-left-color: var(--line); }
letter-spacing: .08em;
background: transparent; color: var(--ink);
border: 1px solid var(--line);
border-radius: var(--radius-sm);
padding: 6px 14px; cursor: pointer;
transition: all .12s;
}
@@ -422,7 +433,7 @@ pre.doc.empty { color: var(--faint); border-left-color: var(--line); }
.btn:disabled { opacity: .4; cursor: not-allowed; }
/* ── 表单 ────────────────────────────────────────────────── */
.panel { background: var(--panel); border: 1px solid var(--line); }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-md); }
.form-panel { padding: 14px; margin-bottom: 14px; }
.form-row { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; }
.form-row + .form-row { margin-top: 12px; }
@@ -437,6 +448,7 @@ input[type=text], input[type=number], select, textarea {
font-family: var(--mono); font-size: 13px;
background: var(--bg-deep); color: var(--ink);
border: 1px solid var(--line);
border-radius: var(--radius-sm);
padding: 7px 10px;
outline: none;
transition: border-color .12s;
@@ -445,7 +457,7 @@ input:focus, select:focus, textarea:focus { border-color: var(--green-dim); box-
textarea { resize: vertical; min-height: 72px; width: 100%; }
/* 复杂度分段选择 */
.seg { display: inline-flex; border: 1px solid var(--line); }
.seg { display: inline-flex; border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; }
.seg input { position: absolute; opacity: 0; pointer-events: none; }
.seg label {
padding: 7px 13px; cursor: pointer;
@@ -462,6 +474,7 @@ textarea { resize: vertical; min-height: 72px; width: 100%; }
/* ── 任务树筛选栏 ─────────────────────────────────────────── */
.filter-bar {
background: var(--panel); border: 1px solid var(--line);
border-radius: var(--radius-md);
padding: 8px 10px; margin-bottom: 12px;
display: flex; flex-direction: column; gap: 7px;
}
@@ -472,6 +485,7 @@ textarea { resize: vertical; min-height: 72px; width: 100%; }
font-family: var(--mono); font-size: 10px; font-weight: 700; letter-spacing: .1em;
background: transparent; color: var(--faint);
border: 1px solid var(--line); padding: 2px 8px;
border-radius: var(--radius-xs);
cursor: pointer; transition: all .1s;
}
.fchip:hover { color: var(--ink); border-color: var(--muted); }
@@ -481,6 +495,7 @@ textarea { resize: vertical; min-height: 72px; width: 100%; }
.fgroup {
display: inline-flex; align-items: center; gap: 4px;
padding: 2px 4px; border: 1px dashed var(--line-soft);
border-radius: var(--radius-xs);
}
.fgroup-chip { color: var(--muted); }
.fgroup-chip.part { color: var(--amber); border-color: var(--amber-dim); }
@@ -493,6 +508,7 @@ textarea { resize: vertical; min-height: 72px; width: 100%; }
.tree-empty {
padding: 46px 0; text-align: center; color: var(--faint);
border: 1px dashed var(--line);
border-radius: var(--radius-md);
}
.tree-empty b { display: block; font-size: 15px; color: var(--muted); margin-bottom: 6px; letter-spacing: .2em; }
@@ -507,7 +523,7 @@ textarea { resize: vertical; min-height: 72px; width: 100%; }
transition: background .1s;
}
.task-row:hover { background: var(--panel); }
.task-row.is-gate { background: rgba(240,180,41,.045); }
.task-row.is-gate { background: rgba(184,142,245,.05); }
.task-row.expanded { background: var(--panel-2); }
.caret {
@@ -529,6 +545,7 @@ textarea { resize: vertical; min-height: 72px; width: 100%; }
.cplx {
flex: none; font-size: 10px; font-weight: 700; letter-spacing: .14em;
padding: 1px 7px; border: 1px solid;
border-radius: var(--radius-xs);
}
.cplx-hard { color: var(--red); border-color: var(--red-dim); background: rgba(255,93,93,.07); }
.cplx-medium { color: var(--amber); border-color: var(--amber-dim); background: rgba(240,180,41,.07); }
@@ -539,6 +556,7 @@ textarea { resize: vertical; min-height: 72px; width: 100%; }
display: inline-block; vertical-align: 1px; flex: none;
font-size: 10px; font-weight: 700; letter-spacing: .14em;
padding: 1px 7px; margin-left: 6px; border: 1px solid;
border-radius: var(--radius-xs);
}
.verdict-approve { color: var(--green); border-color: var(--green-dim); background: rgba(95,221,125,.1); }
.verdict-reject { color: var(--red); border-color: var(--red-dim); background: rgba(255,93,93,.1); }
@@ -556,7 +574,8 @@ button.cplx-btn:hover { box-shadow: 0 0 8px rgba(216,228,212,.18); }
position: absolute; top: calc(100% + 5px); right: 0; z-index: 60;
display: flex; gap: 5px;
background: var(--bg-deep); border: 1px solid var(--line);
padding: 6px; box-shadow: 0 10px 30px rgba(0,0,0,.65);
border-radius: var(--radius-md);
padding: 6px; box-shadow: var(--shadow-pop);
animation: rise .12s ease both;
}
.cplx-pop .cplx { cursor: pointer; }
@@ -568,12 +587,13 @@ button.cplx-btn:hover { box-shadow: 0 0 8px rgba(216,228,212,.18); }
flex: none; display: inline-flex; align-items: center; gap: 5px;
font-size: 11px; padding: 1px 8px;
border: 1px solid var(--line); color: var(--muted);
border-radius: var(--radius-xs);
white-space: nowrap;
}
.chip::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.chip-idle { color: var(--muted); }
.chip-work { color: var(--cyan); border-color: var(--cyan-dim); }
.chip-gate { color: var(--amber); border-color: var(--amber-dim); }
.chip-gate { color: var(--violet); border-color: var(--violet-dim); }
.chip-gate::before { animation: pulse 1.4s infinite; }
.chip-container { color: #9bb4c8; border-color: #2c3c4a; }
.chip-go { color: var(--green); border-color: var(--green-dim); }
@@ -634,6 +654,7 @@ button.cplx-btn:hover { box-shadow: 0 0 8px rgba(216,228,212,.18); }
.event-list li::before {
content: ''; position: absolute; left: 0; top: 13px;
width: 5px; height: 5px; background: var(--ev, var(--muted));
border-radius: 1.5px;
}
.ev-head { display: flex; gap: 8px; align-items: baseline; }
.ev-type { font-weight: 600; color: var(--ev, var(--ink)); letter-spacing: .04em; }
@@ -646,7 +667,7 @@ li.ev-created { --ev: var(--green); }
li.ev-status { --ev: var(--cyan); }
li.ev-approve { --ev: var(--green); }
li.ev-rejected { --ev: var(--red); }
li.ev-gatewait { --ev: var(--amber); }
li.ev-gatewait { --ev: var(--violet); }
li.ev-run { --ev: var(--cyan); }
li.ev-updated { --ev: var(--muted); }
@@ -658,7 +679,8 @@ li.ev-updated { --ev: var(--muted); }
position: relative; width: min(460px, 92vw);
padding: 18px 20px 20px;
display: flex; flex-direction: column; gap: 12px;
box-shadow: 0 0 0 1px var(--green-dim), 0 18px 60px rgba(0,0,0,.6);
border-radius: var(--radius-lg);
box-shadow: 0 0 0 1px var(--green-dim), var(--shadow-modal);
animation: rise .18s ease both;
}
.modal .sec-head { padding: 0 0 4px; position: static; background: none; }
@@ -672,10 +694,11 @@ li.ev-updated { --ev: var(--muted); }
font-family: var(--mono); font-size: 12.5px;
background: var(--bg-deep);
border: 1px solid var(--line);
border-radius: var(--radius-md);
padding: 9px 16px;
max-width: 70vw;
animation: toastIn .18s ease both;
box-shadow: 0 8px 30px rgba(0,0,0,.55);
box-shadow: var(--shadow-toast);
}
.toast.err { border-color: var(--red); color: var(--red); }
.toast.ok { border-color: var(--green-dim); color: var(--green); }
@@ -684,7 +707,7 @@ li.ev-updated { --ev: var(--muted); }
@keyframes toastIn { from { opacity: 0; transform: translateY(8px); } }
/* 待 CC 产出占位 */
.doc-pending { padding: 10px 12px; border: 1px dashed var(--line, #2a3a2a); color: var(--dim, #6a7a6a); font-style: italic; }
.doc-pending { padding: 10px 12px; border: 1px dashed var(--line, #2a3a2a); border-radius: var(--radius-sm); color: var(--dim, #6a7a6a); font-style: italic; }
/* ── 全局预览模式(全屏读方案 + 就地裁决) ── */
.preview-root { position: fixed; inset: 0; z-index: 1100; display: grid; place-items: center; }
@@ -693,7 +716,8 @@ li.ev-updated { --ev: var(--muted); }
.preview-panel {
position: relative; display: flex; flex-direction: column;
width: min(1080px, 94vw); height: 94vh;
background: var(--panel); border: 1px solid var(--amber-dim);
background: var(--panel); border: 1px solid var(--violet-dim);
border-radius: var(--radius-lg); overflow: hidden;
box-shadow: 0 0 0 1px var(--line-soft), 0 24px 64px rgba(0,0,0,.6);
}
.preview-head {
@@ -725,6 +749,7 @@ li.ev-updated { --ev: var(--muted); }
background: var(--bg-deep);
border: 1px solid var(--line-soft);
border-left: 2px solid var(--green-dim);
border-radius: var(--radius-sm);
padding: 12px 16px;
font-family: var(--mono); font-size: 12.5px; line-height: 1.7;
color: var(--ink);
@@ -746,11 +771,13 @@ li.ev-updated { --ev: var(--muted); }
.doc.md li { margin: 3px 0; }
.doc.md code {
background: var(--panel-2); border: 1px solid var(--line-soft);
border-radius: var(--radius-xs);
padding: 0 4px; color: var(--cyan); font-size: .95em;
}
.doc.md pre.codeblock {
background: var(--panel-2); border: 1px solid var(--line-soft);
border-left: 2px solid var(--cyan-dim);
border-radius: var(--radius-sm);
padding: 10px 12px; margin: 8px 0;
white-space: pre-wrap; word-break: break-word; overflow-x: auto;
}
@@ -770,6 +797,7 @@ li.ev-updated { --ev: var(--muted); }
.ready-count {
font-size: 11px; letter-spacing: .12em; color: var(--green);
border: 1px solid var(--green-dim); padding: 4px 10px;
border-radius: var(--radius-xs);
}
/* ── 顶栏徽章组:默认 图标+数量,hover 展开文字 ── */
@@ -778,6 +806,7 @@ li.ev-updated { --ev: var(--muted); }
display: inline-flex; align-items: center;
font-size: 11.5px; line-height: 1; letter-spacing: .08em;
height: 28px; padding: 0 10px; /* 固定高度对齐旁边的 .btn,防字形差异撑高 */
border-radius: var(--radius-sm);
cursor: default; white-space: nowrap;
}
.bdg .bdg-ico {
@@ -791,7 +820,7 @@ li.ev-updated { --ev: var(--muted); }
}
.bdg:hover .bdg-label { max-width: 8em; opacity: 1; margin-left: 5px; }
.bdg-gate { color: var(--amber); border: 1px solid var(--amber-dim); }
.bdg-gate { color: var(--violet); border: 1px solid var(--violet-dim); }
.bdg-gate:not(.zero) { animation: pulse 2.2s infinite; }
.bdg-ready { color: var(--green); border: 1px solid var(--green-dim); }
.bdg-run { color: var(--cyan); border: 1px solid var(--cyan-dim); }
@@ -803,6 +832,7 @@ li.ev-updated { --ev: var(--muted); }
flex: none; font-size: 10.5px; letter-spacing: .06em;
color: var(--amber); border: 1px dashed var(--amber-dim);
padding: 1px 7px; line-height: 1.5; white-space: nowrap;
border-radius: var(--radius-xs);
}
.dep-list { display: grid; gap: 4px; }
.dep-item {
@@ -810,6 +840,7 @@ li.ev-updated { --ev: var(--muted); }
font-size: 12px; padding: 4px 10px;
background: var(--bg-deep); border: 1px solid var(--line-soft);
border-left: 2px solid var(--amber-dim);
border-radius: var(--radius-sm);
}
.dep-item.ok { border-left-color: var(--green-dim); }
.dep-item.ok .dep-mark { color: var(--green); }
@@ -830,6 +861,7 @@ li.ev-updated { --ev: var(--muted); }
font-size: 12px; padding: 4px 10px; cursor: pointer;
background: var(--bg-deep); border: 1px solid var(--line-soft);
border-left: 2px solid var(--line-soft);
border-radius: var(--radius-sm);
transition: border-color .12s, background .12s;
}
.dep-pick:hover { background: var(--panel-2); border-color: var(--muted); }
@@ -859,7 +891,7 @@ li.ev-updated { --ev: var(--muted); }
.archive-subs { flex: none; font-size: 10.5px; color: var(--faint); }
.archive-time { flex: none; font-size: 11px; color: var(--faint); }
.archive-size { font-size: 11px; color: var(--muted); display: flex; gap: 6px; align-items: center; }
.archive-size select { background: var(--panel-2); color: var(--ink); border: 1px solid var(--line); padding: 2px 6px; font-family: var(--mono); }
.archive-size select { background: var(--panel-2); color: var(--ink); border: 1px solid var(--line); padding: 2px 6px; font-family: var(--mono); border-radius: var(--radius-sm); }
.archive-pager { display: flex; align-items: center; gap: 12px; padding: 10px 0; justify-content: center; }
.archive-page { font-size: 11px; color: var(--muted); }
@@ -921,6 +953,7 @@ li.ev-updated { --ev: var(--muted); }
padding: 6px 10px;
background: rgba(255,93,93,.06);
border: 1px solid var(--red-dim);
border-radius: var(--radius-sm);
}
.detail-action-confirm-del {
background: rgba(255,93,93,.09);
@@ -931,11 +964,11 @@ li.ev-updated { --ev: var(--muted); }
/* ── 归档详情:执行历史 + 转录回放 ── */
.run-list { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; }
.run-item { border: 1px solid var(--line-soft); background: var(--panel); padding: 8px 10px; }
.run-item { border: 1px solid var(--line-soft); background: var(--panel); padding: 8px 10px; border-radius: var(--radius-md); }
.run-head { display: flex; align-items: center; gap: 10px; font-size: 12px; flex-wrap: wrap; }
.run-head .spacer { flex: 1; }
.run-kind { color: var(--ink); font-weight: 600; }
.run-st { font-size: 11px; padding: 1px 6px; border: 1px solid var(--line); color: var(--muted); }
.run-st { font-size: 11px; padding: 1px 6px; border: 1px solid var(--line); color: var(--muted); border-radius: var(--radius-xs); }
.run-st-succeeded { color: var(--green); border-color: var(--green-dim); }
.run-st-failed { color: var(--red); border-color: var(--red-dim); }
.run-st-started { color: var(--cyan); border-color: var(--cyan-dim); }
@@ -958,6 +991,7 @@ li.ev-updated { --ev: var(--muted); }
.t-badge {
display: inline-block; font-size: 10px; letter-spacing: .08em;
padding: 1px 6px; margin-right: 8px; border: 1px solid var(--line); color: var(--muted);
border-radius: var(--radius-xs);
}
.t-badge-a { color: var(--green); border-color: var(--green-dim); }
.t-badge-r { color: var(--green); border-color: var(--green); }
@@ -969,6 +1003,7 @@ li.ev-updated { --ev: var(--muted); }
.t-trunc { color: var(--faint); font-size: 11px; margin-top: 2px; }
.t-pre {
margin: 4px 0 0; padding: 6px 8px; background: var(--bg-deep); border: 1px solid var(--line-soft);
border-radius: var(--radius-sm);
font-size: 11.5px; white-space: pre-wrap; word-break: break-word; max-height: 320px; overflow-y: auto;
}
.t-fold { margin-top: 4px; }
@@ -985,6 +1020,7 @@ li.ev-updated { --ev: var(--muted); }
}
.metric-card {
border: 1px solid var(--line); background: var(--panel);
border-radius: var(--radius-md);
padding: 10px 12px; min-width: 0;
}
.metric-card.est { border-style: dashed; }
@@ -1005,6 +1041,7 @@ li.ev-updated { --ev: var(--muted); }
.metric-models {
margin-top: 14px; border: 1px solid var(--line-soft);
background: var(--bg-deep); padding: 10px 12px;
border-radius: var(--radius-md);
}
.metric-models-head {
font-size: 10px; font-weight: 600; letter-spacing: .14em;
@@ -1018,6 +1055,7 @@ li.ev-updated { --ev: var(--muted); }
.metric-model-bar {
flex: 1; height: 8px; min-width: 40px;
background: var(--panel-2); border: 1px solid var(--line-soft); overflow: hidden;
border-radius: var(--radius-xs);
}
.metric-model-fill {
display: block; height: 100%;