mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-10-20 22:41:23 +02:00
style: compact dashboard token usage subtitle
This commit is contained in:
1 parent
4eda42dc10
commit
5d14daf486
8 files changed
+11
-19
No files matched your search
@@ -47221,8 +47221,6 @@ html[data-theme="dark"] { --tool-blocked-color: #f4bc62; }
|
||||
}
|
||||
|
||||
/* Provider-reported token analysis, scoped by the dashboard project selector. */
|
||||
.dashboard-kpi-sub--tokens { row-gap: 2px; }
|
||||
#dashboard-kpi-token-cache-text { flex-basis: 100%; }
|
||||
.token-usage-panel { margin-bottom: 20px; padding: 18px 22px; }
|
||||
.token-usage-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
|
||||
.token-usage-toolbar { display: flex; align-items: center; gap: 12px; margin-top: 18px; }
|
||||
|
||||
@@ -288,7 +288,7 @@
|
||||
"successRate": "Tool success rate",
|
||||
"tokenUsage": "Token usage",
|
||||
"usageCacheHitRate": "Cache hit {{rate}}",
|
||||
"tokenUsageSub": "Last {{days}} days: {{calls}} calls · Today {{today}}",
|
||||
"tokenUsageSub": "Today {{today}} · Cache hit {{rate}}",
|
||||
"noTokenUsageYet": "No usage yet",
|
||||
"clickToViewTasks": "Click to view tasks",
|
||||
"clickToViewChat": "Click to view conversations",
|
||||
|
||||
@@ -288,7 +288,7 @@
|
||||
"successRate": "Успешность инструментов",
|
||||
"tokenUsage": "Расход токенов",
|
||||
"usageCacheHitRate": "Попадания в кэш {{rate}}",
|
||||
"tokenUsageSub": "За {{days}} дней {{calls}} вызовов · сегодня {{today}}",
|
||||
"tokenUsageSub": "Сегодня {{today}} · Кэш {{rate}}",
|
||||
"noTokenUsageYet": "Расхода пока нет",
|
||||
"clickToViewTasks": "Открыть задачи",
|
||||
"clickToViewChat": "Открыть диалоги",
|
||||
|
||||
@@ -288,7 +288,7 @@
|
||||
"successRate": "工具执行成功率",
|
||||
"tokenUsage": "Token 用量",
|
||||
"usageCacheHitRate": "缓存命中 {{rate}}",
|
||||
"tokenUsageSub": "近 {{days}} 天 {{calls}} 次调用 · 今日 {{today}}",
|
||||
"tokenUsageSub": "今日 {{today}} · 缓存命中 {{rate}}",
|
||||
"noTokenUsageYet": "暂无用量",
|
||||
"clickToViewTasks": "点击查看任务管理",
|
||||
"clickToViewChat": "点击查看对话",
|
||||
|
||||
@@ -72,7 +72,6 @@ async function refreshDashboard() {
|
||||
setKpiSubText('dashboard-kpi-tools-sub-text', '…');
|
||||
setKpiSubText('dashboard-kpi-rate-sub-text', '…');
|
||||
setKpiSubText('dashboard-kpi-token-sub-text', '…');
|
||||
setKpiSubText('dashboard-kpi-token-cache-text', '…');
|
||||
hideEl('dashboard-kpi-vuln-critical-badge');
|
||||
hideEl('dashboard-alert-banner');
|
||||
setRecentVulnsLoading();
|
||||
@@ -443,7 +442,6 @@ async function refreshDashboard() {
|
||||
setEl('dashboard-kpi-tools-calls', '-');
|
||||
setEl('dashboard-kpi-token-usage', '-');
|
||||
setKpiSubText('dashboard-kpi-token-sub-text', '-');
|
||||
setKpiSubText('dashboard-kpi-token-cache-text', '-');
|
||||
setKpiSubText('dashboard-kpi-tasks-sub-text', '-');
|
||||
setKpiSubText('dashboard-kpi-vuln-sub-text', '-');
|
||||
setKpiSubText('dashboard-kpi-tools-sub-text', '-');
|
||||
@@ -715,13 +713,10 @@ function renderDashboardTokenUsage(res) {
|
||||
if (!summary) {
|
||||
setEl('dashboard-kpi-token-usage', '-');
|
||||
setKpiSubText('dashboard-kpi-token-sub-text', '-');
|
||||
setKpiSubText('dashboard-kpi-token-cache-text', '-');
|
||||
return;
|
||||
}
|
||||
const cacheRate = tokenUsageCacheRate(summary);
|
||||
setKpiSubText('dashboard-kpi-token-cache-text', dt('dashboard.usageCacheHitRate', { rate: cacheRate }, '缓存命中 ' + cacheRate));
|
||||
const total = Number(summary.totalTokens || 0);
|
||||
const calls = Number(summary.modelCalls || 0);
|
||||
const today = res && res.today ? Number(res.today.totalTokens || 0) : 0;
|
||||
if (!Number.isFinite(total) || total <= 0) {
|
||||
setEl('dashboard-kpi-token-usage', '0');
|
||||
@@ -731,10 +726,9 @@ function renderDashboardTokenUsage(res) {
|
||||
setEl('dashboard-kpi-token-usage', formatTokenUsageCompact(total));
|
||||
setKpiSubText('dashboard-kpi-token-sub-text',
|
||||
dt('dashboard.tokenUsageSub', {
|
||||
days: 7,
|
||||
today: formatTokenUsageCompact(today),
|
||||
calls: Number.isFinite(calls) ? calls : 0
|
||||
}, '近 7 天 ' + (Number.isFinite(calls) ? calls : 0) + ' 次调用 · 今日 ' + formatTokenUsageCompact(today)));
|
||||
rate: cacheRate
|
||||
}, '今日 ' + formatTokenUsageCompact(today) + ' · 缓存命中 ' + cacheRate));
|
||||
}
|
||||
|
||||
function formatTokenUsageCompact(num) {
|
||||
|
||||
@@ -75,7 +75,8 @@ test('all supported languages expose usage labels and interpolation placeholders
|
||||
for (const key of ['usageView', 'usageScope', 'usageCacheRead', 'usageCacheWrite', 'usageTrend', 'usageCacheHitRate']) assert.ok(data.dashboard[key]);
|
||||
assert.ok(data.settings.nav.tokenUsage);
|
||||
assert.match(data.dashboard.usageCacheHitRate, /\{\{rate\}\}/);
|
||||
assert.match(data.dashboard.tokenUsageSub, /\{\{days\}\}/);
|
||||
assert.match(data.dashboard.tokenUsageSub, /\{\{today\}\}/);
|
||||
assert.match(data.dashboard.tokenUsageSub, /\{\{rate\}\}/);
|
||||
assert.match(data.chat.turnTokenUsageTitle, /\{\{cacheWrite\}\}/);
|
||||
}
|
||||
});
|
||||
@@ -39,7 +39,7 @@
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
<link rel="stylesheet" href="/static/css/style.css?v=20261011-token-settings">
|
||||
<link rel="stylesheet" href="/static/css/style.css?v=20261011-token-settings-compact">
|
||||
<link rel="stylesheet" href="/static/css/tool-guard.css?v=20260907-7">
|
||||
<link rel="stylesheet" href="/static/css/chat-plan-progress.css?v=20260813-4">
|
||||
<link rel="stylesheet" href="/static/css/c2.css">
|
||||
@@ -562,9 +562,8 @@
|
||||
<span class="dashboard-kpi-icon dashboard-kpi-icon-tokens" aria-hidden="true"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h16"/><path d="M4 12h16"/><path d="M4 17h16"/><path d="M8 3 6 21"/><path d="m18 3-2 18"/></svg></span>
|
||||
</div>
|
||||
<div class="dashboard-kpi-value" id="dashboard-kpi-token-usage">-</div>
|
||||
<div class="dashboard-kpi-sub dashboard-kpi-sub--tokens">
|
||||
<div class="dashboard-kpi-sub">
|
||||
<span class="dashboard-kpi-sub-text" id="dashboard-kpi-token-sub-text">-</span>
|
||||
<span class="dashboard-kpi-sub-text" id="dashboard-kpi-token-cache-text">-</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -7017,7 +7016,7 @@
|
||||
<script src="/static/js/info-collect.js?v=20260717-1"></script>
|
||||
<script src="/static/js/assets.js?v=20260717-7"></script>
|
||||
<script src="/static/js/agents.js"></script>
|
||||
<script src="/static/js/dashboard.js?v=20261011-token-settings"></script>
|
||||
<script src="/static/js/dashboard.js?v=20261011-token-settings-compact"></script>
|
||||
<script src="/static/js/chat-scroll.js?v=20260815-1"></script>
|
||||
<script src="/static/js/monitor.js?v=20261011-token-usage"></script>
|
||||
<script src="/static/js/chat.js?v=20261011-token-usage"></script>
|
||||
|
||||
Reference in new issue
Block a user