diff --git a/src/coding/proxy/server/dashboard.py b/src/coding/proxy/server/dashboard.py index 54533e6..c81b72c 100644 --- a/src/coding/proxy/server/dashboard.py +++ b/src/coding/proxy/server/dashboard.py @@ -557,6 +557,89 @@ def _build_favicon() -> bytes: .tab-btn:focus-visible { outline: 2px solid var(--accent-blue); outline-offset: 2px; } .tab-pane { display: none; } .tab-pane.active { display: block; } + + /* ── Model Calling 实时状态 ────────────────────────── */ + .model-calling-card { + margin-bottom: 5px; + } + .mc-empty { + text-align: center; + color: var(--text-muted); + padding: 16px 0; + font-size: 13px; + } + .mc-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); + gap: 8px; + } + .mc-model-row { + display: flex; + align-items: center; + gap: 10px; + padding: 8px 12px; + background: var(--bg-secondary); + border-radius: var(--radius-sm); + border: 1px solid var(--border-subtle); + } + .mc-model-name { + font-family: 'JetBrains Mono', monospace; + font-size: 12px; + color: var(--text-primary); + min-width: 140px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + .mc-bar-wrap { + flex: 1; + min-width: 60px; + height: 6px; + background: rgba(255,255,255,.06); + border-radius: 3px; + overflow: hidden; + } + .mc-bar-fill { + height: 100%; + border-radius: 3px; + transition: width .3s ease, background .3s ease; + } + .mc-bar-fill.mc-low { background: var(--accent-green); } + .mc-bar-fill.mc-mid { background: var(--accent-yellow); } + .mc-bar-fill.mc-high { background: var(--accent-red); } + .mc-stats { + display: flex; + align-items: center; + gap: 6px; + font-size: 11px; + font-family: 'JetBrains Mono', monospace; + color: var(--text-muted); + white-space: nowrap; + } + .mc-badge { + display: inline-flex; + align-items: center; + padding: 1px 6px; + border-radius: 4px; + font-size: 10px; + font-weight: 600; + font-family: 'JetBrains Mono', monospace; + } + .mc-badge-pending { + background: rgba(251,146,60,.15); + color: #fb923c; + } + .mc-badge-active { + background: rgba(74,222,128,.12); + color: #4ade80; + } + .mc-vendor-tag { + font-size: 10px; + color: var(--text-muted); + background: rgba(255,255,255,.06); + padding: 1px 6px; + border-radius: 3px; + }
@@ -626,6 +709,14 @@ def _build_favicon() -> bytes: + +