From 72783f90d5a204d77c975599e2499269acdf5be5 Mon Sep 17 00:00:00 2001 From: Jyun1998 Date: Sat, 19 Sep 2026 19:43:33 +0900 Subject: [PATCH 1/3] feat(macos): add CodexBar-inspired menu bar usage monitor --- .../src/content/docs/guides/web-dashboard.md | 17 + .../macos-menu-bar-monitor/providers.jpg | Bin 0 -> 116964 bytes .../macos-menu-bar-monitor/usage.jpg | Bin 0 -> 116491 bytes gui/.eslint/i18n-allowlist.ts | 3 + gui/src/App.tsx | 4 + gui/src/app-routing.ts | 3 + gui/src/i18n/de.ts | 42 ++ gui/src/i18n/en.ts | 42 ++ gui/src/i18n/fr.ts | 42 ++ gui/src/i18n/ja.ts | 42 ++ gui/src/i18n/ko.ts | 42 ++ gui/src/i18n/ru.ts | 42 ++ gui/src/i18n/tr.ts | 42 ++ gui/src/i18n/vi.ts | 42 ++ gui/src/i18n/zh-TW.ts | 42 ++ gui/src/i18n/zh.ts | 42 ++ gui/src/pages/MonitorDashboardCard.tsx | 197 +++++++++ gui/src/pages/monitor-dashboard-utils.ts | 127 ++++++ gui/src/styles-dashboard-workspace.css | 60 +++ gui/tests/dashboard-tabs.test.ts | 12 + gui/tests/monitor-dashboard-utils.test.ts | 54 +++ gui/tests/sidebar-rows.test.ts | 2 +- native/menubar/.gitignore | 1 + native/menubar/Customization.swift | 103 +++++ native/menubar/Dashboard.swift | 136 +++++++ native/menubar/Localization.swift | 35 ++ native/menubar/MonitorData.swift | 316 ++++++++++++++ native/menubar/README.md | 227 +++++++++++ native/menubar/SelfTest.swift | 144 +++++++ native/menubar/WebBridge.swift | 174 ++++++++ native/menubar/build.sh | 23 ++ native/menubar/main.swift | 385 ++++++++++++++++++ 32 files changed, 2442 insertions(+), 1 deletion(-) create mode 100644 docs/pr-assets/macos-menu-bar-monitor/providers.jpg create mode 100644 docs/pr-assets/macos-menu-bar-monitor/usage.jpg create mode 100644 gui/src/pages/MonitorDashboardCard.tsx create mode 100644 gui/src/pages/monitor-dashboard-utils.ts create mode 100644 gui/tests/monitor-dashboard-utils.test.ts create mode 100644 native/menubar/.gitignore create mode 100644 native/menubar/Customization.swift create mode 100644 native/menubar/Dashboard.swift create mode 100644 native/menubar/Localization.swift create mode 100644 native/menubar/MonitorData.swift create mode 100644 native/menubar/README.md create mode 100644 native/menubar/SelfTest.swift create mode 100644 native/menubar/WebBridge.swift create mode 100644 native/menubar/build.sh create mode 100644 native/menubar/main.swift diff --git a/docs-site/src/content/docs/guides/web-dashboard.md b/docs-site/src/content/docs/guides/web-dashboard.md index ed8f4cb709..da865f6608 100644 --- a/docs-site/src/content/docs/guides/web-dashboard.md +++ b/docs-site/src/content/docs/guides/web-dashboard.md @@ -76,6 +76,23 @@ one column and model/effort controls share another. On narrower screens, control labels in the same reading order. Long version labels are shortened visually; hover the version badge or the version value to read the full value. +### Local monitor + +The **Graphs · accounts · display** sidebar page (`#monitor`) displays the optional menu-bar +monitor’s usage and settings inside the existing dashboard, without a separate native window. +The page has **Usage** and **Providers** tabs, using the dashboard’s shared tab and select styles. +Display settings appear directly below the Usage graph; provider visibility controls live in Providers. +The full JSON editor is collapsed under Display settings until expanded. +The panel refreshes every five seconds while the tab is visible and shows token history, compact +account and provider quota bars, and summary totals. If the monitor is unavailable, the rest of +the OpenCodex dashboard continues to work. + +Use the graph, provider-visibility and model-filter controls, or edit the complete configuration +as JSON under **Monitor settings**. This includes the +chart style and grouping, time range, bucket size, aggregation, token metric, model filters, +provider visibility, display text, colours, and graph dimensions. Saving uses the configuration +revision currently shown by the monitor; if somebody else changed it first, discard the stale draft and reapply your edits. Chart regeneration happens asynchronously after a successful save. + ## What you can do | Area | What it does | diff --git a/docs/pr-assets/macos-menu-bar-monitor/providers.jpg b/docs/pr-assets/macos-menu-bar-monitor/providers.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6974091a46eddfa1068bf8083104823f01a7c73b GIT binary patch literal 116964 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

3mF^n#`ESos;A8lba76QS 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 j3Sub$0YDli$TsLw9K0~VPhzNg0NK6n2w`BRiz literal 0 HcmV?d00001 diff --git a/docs/pr-assets/macos-menu-bar-monitor/usage.jpg b/docs/pr-assets/macos-menu-bar-monitor/usage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f389210e8f6d53ff9efe928c5fe21209460946bc GIT binary patch literal 116491 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

pLxQ&OBYNF!+i^O40NX^N}D^O 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 z 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

$?Dicm zW2(UEq=~f+=1f&ivpS8swD83j57zK%E*Ym=nU`5KbXxgmjF@LK^TZKlH#P02bnR)IFlwkYqMQ13-LnazYr{6*LROF*$_uztY%~ORg7_mM?&z(8i@$x4 ze(Up&_`?Ci>j{&}q8NA-i=KL>P*GJMn-{FE=uU>+eCT1{>Je?B+KHt%DhfXpTxks-K+P1TjCJ!$icqqY0UZ+R0y`!3-qU)gxfR$)Pb3}!tK5QEufUhx zFq|`dgn)~5y8_wV91KstbHQKB_S+{6%5NdxXsO%s>p--ynAQCqjZ#lY_RltP0*|}b ztJE@=d*bRIA%>kEQi_wgAYJ@aAHc;rKuAux*(%c*S;)$rOto_W7Lqc8Vc27R0IaI_y zlTjhFQ;-~sbtjznnY@aNti`}nyU1^=o^0C6Ip3!^+kaxB@i%-A@VJAwjR7jC03{>Y9Jh|+`@#$_>U28y?5D5x&R2?XgL|xx|DH?s i&*odeZP@--CqUty++X#${lUN$sE};$kARcEjQ(Hr0>mEx literal 0 HcmV?d00001 diff --git a/gui/.eslint/i18n-allowlist.ts b/gui/.eslint/i18n-allowlist.ts index 805d7dcfbc..e9b442e790 100644 --- a/gui/.eslint/i18n-allowlist.ts +++ b/gui/.eslint/i18n-allowlist.ts @@ -40,6 +40,7 @@ const TECHNICAL_UNITS = new Set([ "ms", "k", "1M", + "M", // Decimal token unit used by the native monitor. "c", "w", "v", @@ -53,6 +54,8 @@ const TECHNICAL_UNITS = new Set([ /** Non-UI technical strings (API paths, CSS, shell, headers, debug fields). */ export function isTechnicalLiteral(value: string): boolean { + // Literal template field suffixes, not translatable UI copy. + if ([".raw", ".compact", ".formatted"].includes(value)) return true; const trimmed = value.trim(); if (!trimmed) return true; diff --git a/gui/src/App.tsx b/gui/src/App.tsx index b7ec8f9db0..b50ff02b3a 100644 --- a/gui/src/App.tsx +++ b/gui/src/App.tsx @@ -1,6 +1,7 @@ import { useEffect, useRef, useState } from "react"; import { useKeyedClientResource } from "./client-resource"; import Dashboard from "./pages/Dashboard"; +import { MonitorDashboardCard } from "./pages/MonitorDashboardCard"; import Providers from "./pages/Providers"; import Models from "./pages/Models"; import Subagents from "./pages/Subagents"; @@ -35,6 +36,7 @@ const PAGE_TKEY: Record = { subagents: "nav.subagents", logs: "nav.logs", usage: "nav.usage", + monitor: "nav.monitor", storage: "nav.storage", remote: "nav.remote", "codex-set": "nav.codexSet", @@ -69,6 +71,7 @@ const NAV: NavEntry[] = [ { id: "subagents", tkey: "nav.subagents", Icon: IconBot }, { id: "logs", tkey: "nav.logs", Icon: IconList }, { id: "usage", tkey: "nav.usage", Icon: IconActivity }, + { id: "monitor", tkey: "nav.monitor", Icon: IconActivity }, { id: "storage", tkey: "nav.storage", Icon: IconHardDrive }, { id: "remote", tkey: "nav.remote", Icon: IconMonitor }, { id: "integrations", tkey: "nav.integrations", Icon: IconGlobe }, @@ -443,6 +446,7 @@ export default function App() { )} {page === "dashboard" && } + {page === "monitor" &&

{t("nav.monitor")}

} {page === "startup" && } {page === "providers" && } {page === "models" && } diff --git a/gui/src/app-routing.ts b/gui/src/app-routing.ts index 9dbf4d28bc..85a1743fa0 100644 --- a/gui/src/app-routing.ts +++ b/gui/src/app-routing.ts @@ -4,6 +4,7 @@ import { normalizeHashPath } from "./hash-routing"; export type Page = | "dashboard" + | "monitor" | "startup" | "providers" | "models" @@ -17,6 +18,7 @@ export type Page = export const VALID_PAGES = new Set([ "dashboard", + "monitor", "startup", "providers", "models", @@ -109,6 +111,7 @@ export const INTEGRATION_TAB_HASHES = [ export function hashBelongsToPage(rawHash: string, page: Page): boolean { return rawHash === page + || (page === "monitor" && ["monitor/providers", "monitor/settings"].includes(rawHash)) || (page === "logs" && rawHash === "logs/debug") || (page === "codex-set" && rawHash === "codex-set/prompt") || (page === "models" && (MODELS_TAB_HASHES as readonly string[]).includes(rawHash)) diff --git a/gui/src/i18n/de.ts b/gui/src/i18n/de.ts index 8a48248ba7..30a3904a65 100644 --- a/gui/src/i18n/de.ts +++ b/gui/src/i18n/de.ts @@ -5,6 +5,48 @@ import type { TKey } from "./en"; * German i18n catalog, generated from en.ts. Must match the `TKey` set (compile-checked). */ export const de: Record = { + "monitor.averageNote": "Values are per-series request averages/maxima; stacked height is not the average/maximum of all requests.", + "nav.monitor": "Graphs · accounts · display", + "monitor.showToday": "Today’s usage", + "monitor.showAccounts": "Account and provider usage", + "monitor.showModels": "Today’s model list", + "monitor.showCost": "Estimated cost", + "monitor.modelFilter": "Graph model filter", + "monitor.allModels": "All models (include new models)", + "monitor.displaySettings": "Anzeigeeinstellungen", + "monitor.title": "Local monitor", + "monitor.graph": "Token usage graph", + "monitor.empty": "No usage recorded for this range.", + "monitor.shortQuota": "Short window", + "monitor.weeklyQuota": "Weekly", + "monitor.settings": "Monitor settings", + "monitor.config": "Configuration JSON", + "monitor.unavailable": "The local monitor is unavailable.", + "monitor.invalidConfig": "Configuration must be valid JSON.", + "monitor.stale": "Settings changed elsewhere. Refresh and save again.", + "monitor.saveFailed": "Could not save monitor settings.", + "monitor.chartStyle": "Chart style", + "monitor.line": "Line", + "monitor.stackedBar": "Stacked bars", + "monitor.grouping": "Group by", + "monitor.model": "Model", + "monitor.modelAccount": "Model and account", + "monitor.hours": "History", + "monitor.bucket": "Bucket minutes", + "monitor.aggregation": "Aggregation", + "monitor.sum": "Sum", + "monitor.average": "Average", + "monitor.max": "Maximum", + "monitor.metric": "Token metric", + "monitor.total": "Total", + "monitor.input": "Input", + "monitor.output": "Output", + "monitor.cached": "Cached", + "monitor.display": "Show graph", + "monitor.on": "On", + "monitor.off": "Off", + "monitor.tokensAxis": "Tokens", + "monitor.timeAxis": "Time", "usage.incomplete": "Einige Nutzungsdatensätze konnten nicht berücksichtigt werden. Anzahlen, Datumsangaben und Ranglisten beruhen nur auf lesbaren Datensätzen.", "models.pickerOrder.usageIncomplete": "Die Reihenfolge nach Nutzung kann wegen unvollständiger Nutzungsdaten nicht gespeichert werden. Wählen Sie eine andere Reihenfolge oder reparieren Sie zuerst den Verlauf.", "api.attribution.noRecordedUse": "Keine Nutzung in lesbaren Datensätzen", diff --git a/gui/src/i18n/en.ts b/gui/src/i18n/en.ts index 9be7b42263..9a55a4ed97 100644 --- a/gui/src/i18n/en.ts +++ b/gui/src/i18n/en.ts @@ -6,6 +6,48 @@ * `{var}` are plain interpolations. */ export const en = { + "monitor.averageNote": "Values are per-series request averages/maxima; stacked height is not the average/maximum of all requests.", + "nav.monitor": "Graphs · accounts · display", + "monitor.showToday": "Today’s usage", + "monitor.showAccounts": "Account and provider usage", + "monitor.showModels": "Today’s model list", + "monitor.showCost": "Estimated cost", + "monitor.modelFilter": "Graph model filter", + "monitor.allModels": "All models (include new models)", + "monitor.displaySettings": "Display settings", + "monitor.title": "Local monitor", + "monitor.graph": "Token usage graph", + "monitor.empty": "No usage recorded for this range.", + "monitor.shortQuota": "Short window", + "monitor.weeklyQuota": "Weekly", + "monitor.settings": "Monitor settings", + "monitor.config": "Configuration JSON", + "monitor.unavailable": "The local monitor is unavailable.", + "monitor.invalidConfig": "Configuration must be valid JSON.", + "monitor.stale": "Settings changed elsewhere. Refresh and save again.", + "monitor.saveFailed": "Could not save monitor settings.", + "monitor.chartStyle": "Chart style", + "monitor.line": "Line", + "monitor.stackedBar": "Stacked bars", + "monitor.grouping": "Group by", + "monitor.model": "Model", + "monitor.modelAccount": "Model and account", + "monitor.hours": "History", + "monitor.bucket": "Bucket minutes", + "monitor.aggregation": "Aggregation", + "monitor.sum": "Sum", + "monitor.average": "Average", + "monitor.max": "Maximum", + "monitor.metric": "Token metric", + "monitor.total": "Total", + "monitor.input": "Input", + "monitor.output": "Output", + "monitor.cached": "Cached", + "monitor.display": "Show graph", + "monitor.on": "On", + "monitor.off": "Off", + "monitor.tokensAxis": "Tokens", + "monitor.timeAxis": "Time", "usage.incomplete": "Some usage records could not be included. Counts, dates, and rankings reflect readable records only.", "models.pickerOrder.usageIncomplete": "Cannot save most-used order because usage history is incomplete. Choose another order or repair the history first.", "api.attribution.noRecordedUse": "No use in readable records", diff --git a/gui/src/i18n/fr.ts b/gui/src/i18n/fr.ts index 9c119d17d3..80fa911977 100644 --- a/gui/src/i18n/fr.ts +++ b/gui/src/i18n/fr.ts @@ -4,6 +4,48 @@ import type { TKey } from "./en"; * French i18n catalog. Must match the `TKey` set. */ export const fr: Record = { + "monitor.averageNote": "Les valeurs sont des moyennes ou maxima par requête et par série ; la hauteur empilée ne représente pas la moyenne ou le maximum de toutes les requêtes.", + "nav.monitor": "Graphiques, comptes et affichage", + "monitor.showToday": "Utilisation du jour", + "monitor.showAccounts": "Utilisation des comptes et fournisseurs", + "monitor.showModels": "Modèles utilisés aujourd’hui", + "monitor.showCost": "Coût estimé", + "monitor.modelFilter": "Filtrer les modèles du graphique", + "monitor.allModels": "Tous les modèles, y compris les nouveaux", + "monitor.displaySettings": "Paramètres d’affichage", + "monitor.title": "Moniteur local", + "monitor.graph": "Graphique des jetons utilisés", + "monitor.empty": "Aucune utilisation enregistrée sur cette période.", + "monitor.shortQuota": "Période courte", + "monitor.weeklyQuota": "Hebdomadaire", + "monitor.settings": "Paramètres du moniteur", + "monitor.config": "Configuration au format JSON", + "monitor.unavailable": "Le moniteur local est indisponible.", + "monitor.invalidConfig": "La configuration doit être un document JSON valide.", + "monitor.stale": "Les paramètres ont été modifiés ailleurs. Actualisez puis enregistrez à nouveau.", + "monitor.saveFailed": "Impossible d’enregistrer les paramètres du moniteur.", + "monitor.chartStyle": "Type de graphique", + "monitor.line": "Courbe", + "monitor.stackedBar": "Barres empilées", + "monitor.grouping": "Regrouper par", + "monitor.model": "Modèle", + "monitor.modelAccount": "Modèle et compte", + "monitor.hours": "Historique", + "monitor.bucket": "Intervalle en minutes", + "monitor.aggregation": "Méthode de calcul", + "monitor.sum": "Somme", + "monitor.average": "Moyenne", + "monitor.max": "Valeur maximale", + "monitor.metric": "Mesure des jetons", + "monitor.total": "Total des jetons", + "monitor.input": "Entrée", + "monitor.output": "Sortie", + "monitor.cached": "En cache", + "monitor.display": "Afficher le graphique", + "monitor.on": "Activé", + "monitor.off": "Désactivé", + "monitor.tokensAxis": "Jetons", + "monitor.timeAxis": "Temps", "usage.incomplete": "Certains enregistrements d’utilisation n’ont pas pu être inclus. Les totaux, dates et classements reposent uniquement sur les enregistrements lisibles.", "models.pickerOrder.usageIncomplete": "Impossible d’enregistrer l’ordre par utilisation : l’historique est incomplet. Choisissez un autre ordre ou réparez d’abord l’historique.", "api.attribution.noRecordedUse": "Aucune utilisation dans les enregistrements lisibles", diff --git a/gui/src/i18n/ja.ts b/gui/src/i18n/ja.ts index dd283a9299..d86b489c08 100644 --- a/gui/src/i18n/ja.ts +++ b/gui/src/i18n/ja.ts @@ -4,6 +4,48 @@ import type { TKey } from "./en"; * Japanese i18n catalog; must match the `TKey` set (compile-checked). */ export const ja: Record = { + "monitor.averageNote": "Values are per-series request averages/maxima; stacked height is not the average/maximum of all requests.", + "nav.monitor": "Graphs · accounts · display", + "monitor.showToday": "Today’s usage", + "monitor.showAccounts": "Account and provider usage", + "monitor.showModels": "Today’s model list", + "monitor.showCost": "Estimated cost", + "monitor.modelFilter": "Graph model filter", + "monitor.allModels": "All models (include new models)", + "monitor.displaySettings": "表示設定", + "monitor.title": "Local monitor", + "monitor.graph": "Token usage graph", + "monitor.empty": "No usage recorded for this range.", + "monitor.shortQuota": "Short window", + "monitor.weeklyQuota": "Weekly", + "monitor.settings": "Monitor settings", + "monitor.config": "Configuration JSON", + "monitor.unavailable": "The local monitor is unavailable.", + "monitor.invalidConfig": "Configuration must be valid JSON.", + "monitor.stale": "Settings changed elsewhere. Refresh and save again.", + "monitor.saveFailed": "Could not save monitor settings.", + "monitor.chartStyle": "Chart style", + "monitor.line": "Line", + "monitor.stackedBar": "Stacked bars", + "monitor.grouping": "Group by", + "monitor.model": "Model", + "monitor.modelAccount": "Model and account", + "monitor.hours": "History", + "monitor.bucket": "Bucket minutes", + "monitor.aggregation": "Aggregation", + "monitor.sum": "Sum", + "monitor.average": "Average", + "monitor.max": "Maximum", + "monitor.metric": "Token metric", + "monitor.total": "Total", + "monitor.input": "Input", + "monitor.output": "Output", + "monitor.cached": "Cached", + "monitor.display": "Show graph", + "monitor.on": "On", + "monitor.off": "Off", + "monitor.tokensAxis": "Tokens", + "monitor.timeAxis": "Time", "usage.incomplete": "一部の使用履歴を集計できませんでした。回数、日付、順位は読み取れる記録のみを反映しています。", "models.pickerOrder.usageIncomplete": "使用履歴が不完全なため、使用回数順を保存できません。別の順序を選ぶか、履歴を修復してください。", "api.attribution.noRecordedUse": "読み取れる記録に使用履歴なし", diff --git a/gui/src/i18n/ko.ts b/gui/src/i18n/ko.ts index 1a1909a74f..cc4a73c8d2 100644 --- a/gui/src/i18n/ko.ts +++ b/gui/src/i18n/ko.ts @@ -4,6 +4,48 @@ import type { TKey } from "./en"; * Korean i18n catalog; must match the `TKey` set (compile-checked). */ export const ko: Record = { + "monitor.averageNote": "각 범례의 요청당 평균/최대입니다. 누적 막대 전체 높이는 전체 요청의 평균/최대가 아닙니다.", + "nav.monitor": "그래프·계정·표시 설정", + "monitor.showToday": "오늘 사용량", + "monitor.showAccounts": "계정·프로바이더 사용량", + "monitor.showModels": "오늘 모델별 목록", + "monitor.showCost": "추정 비용", + "monitor.modelFilter": "그래프 모델 필터", + "monitor.allModels": "모든 모델 (새 모델 자동 포함)", + "monitor.displaySettings": "표시 설정", + "monitor.title": "로컬 모니터", + "monitor.graph": "토큰 사용량 그래프", + "monitor.empty": "이 기간에는 기록된 사용량이 없습니다.", + "monitor.shortQuota": "세션", + "monitor.weeklyQuota": "주간", + "monitor.settings": "그래프 · 계정 · 표시 설정", + "monitor.config": "문구 · 색상 · 크기 등 전체 설정 (JSON)", + "monitor.unavailable": "메뉴 막대의 OpenCodex Monitor를 실행하면 연결됩니다.", + "monitor.invalidConfig": "구성은 유효한 JSON이어야 합니다.", + "monitor.stale": "다른 곳에서 설정이 바뀌었습니다. 새로 고친 뒤 다시 저장하세요.", + "monitor.saveFailed": "모니터 설정을 저장하지 못했습니다.", + "monitor.chartStyle": "그래프 형태", + "monitor.line": "선", + "monitor.stackedBar": "누적 막대", + "monitor.grouping": "범례", + "monitor.model": "모델별", + "monitor.modelAccount": "모델 + 계정별", + "monitor.hours": "조회 범위 (시간)", + "monitor.bucket": "집계 간격 (분)", + "monitor.aggregation": "계산 방식", + "monitor.sum": "토큰 합계", + "monitor.average": "요청당 평균", + "monitor.max": "요청당 최대", + "monitor.metric": "토큰 종류", + "monitor.total": "전체", + "monitor.input": "입력", + "monitor.output": "출력", + "monitor.cached": "캐시 읽기", + "monitor.display": "그래프 표시", + "monitor.on": "켜기", + "monitor.off": "끄기", + "monitor.tokensAxis": "토큰 수", + "monitor.timeAxis": "시간", "usage.incomplete": "일부 사용량 기록을 집계하지 못했습니다. 횟수, 날짜, 순위는 읽을 수 있는 기록만 반영합니다.", "models.pickerOrder.usageIncomplete": "사용량 이력이 불완전해 많이 사용한 순서를 저장할 수 없습니다. 다른 순서를 선택하거나 이력을 복구하세요.", "api.attribution.noRecordedUse": "읽을 수 있는 기록에 사용 내역 없음", diff --git a/gui/src/i18n/ru.ts b/gui/src/i18n/ru.ts index 485c0b302a..66ce383673 100644 --- a/gui/src/i18n/ru.ts +++ b/gui/src/i18n/ru.ts @@ -4,6 +4,48 @@ import type { TKey } from "./en"; * Russian i18n catalog; must match the `TKey` set (compile-checked). */ export const ru: Record = { + "monitor.averageNote": "Values are per-series request averages/maxima; stacked height is not the average/maximum of all requests.", + "nav.monitor": "Graphs · accounts · display", + "monitor.showToday": "Today’s usage", + "monitor.showAccounts": "Account and provider usage", + "monitor.showModels": "Today’s model list", + "monitor.showCost": "Estimated cost", + "monitor.modelFilter": "Graph model filter", + "monitor.allModels": "All models (include new models)", + "monitor.displaySettings": "Настройки отображения", + "monitor.title": "Local monitor", + "monitor.graph": "Token usage graph", + "monitor.empty": "No usage recorded for this range.", + "monitor.shortQuota": "Short window", + "monitor.weeklyQuota": "Weekly", + "monitor.settings": "Monitor settings", + "monitor.config": "Configuration JSON", + "monitor.unavailable": "The local monitor is unavailable.", + "monitor.invalidConfig": "Configuration must be valid JSON.", + "monitor.stale": "Settings changed elsewhere. Refresh and save again.", + "monitor.saveFailed": "Could not save monitor settings.", + "monitor.chartStyle": "Chart style", + "monitor.line": "Line", + "monitor.stackedBar": "Stacked bars", + "monitor.grouping": "Group by", + "monitor.model": "Model", + "monitor.modelAccount": "Model and account", + "monitor.hours": "History", + "monitor.bucket": "Bucket minutes", + "monitor.aggregation": "Aggregation", + "monitor.sum": "Sum", + "monitor.average": "Average", + "monitor.max": "Maximum", + "monitor.metric": "Token metric", + "monitor.total": "Total", + "monitor.input": "Input", + "monitor.output": "Output", + "monitor.cached": "Cached", + "monitor.display": "Show graph", + "monitor.on": "On", + "monitor.off": "Off", + "monitor.tokensAxis": "Tokens", + "monitor.timeAxis": "Time", "usage.incomplete": "Часть записей об использовании не удалось учесть. Счётчики, даты и рейтинги основаны только на читаемых записях.", "models.pickerOrder.usageIncomplete": "Нельзя сохранить порядок по частоте использования: история неполная. Выберите другой порядок или сначала восстановите историю.", "api.attribution.noRecordedUse": "В читаемых записях использование не найдено", diff --git a/gui/src/i18n/tr.ts b/gui/src/i18n/tr.ts index a1d59281c9..a6f8d2e36e 100644 --- a/gui/src/i18n/tr.ts +++ b/gui/src/i18n/tr.ts @@ -5,6 +5,48 @@ import type { TKey } from "./en"; * Turkish i18n catalog. Must match the `TKey` set (compile-checked). */ export const tr: Record = { + "monitor.averageNote": "Values are per-series request averages/maxima; stacked height is not the average/maximum of all requests.", + "nav.monitor": "Graphs · accounts · display", + "monitor.showToday": "Today’s usage", + "monitor.showAccounts": "Account and provider usage", + "monitor.showModels": "Today’s model list", + "monitor.showCost": "Estimated cost", + "monitor.modelFilter": "Graph model filter", + "monitor.allModels": "All models (include new models)", + "monitor.displaySettings": "Görünüm ayarları", + "monitor.title": "Local monitor", + "monitor.graph": "Token usage graph", + "monitor.empty": "No usage recorded for this range.", + "monitor.shortQuota": "Short window", + "monitor.weeklyQuota": "Weekly", + "monitor.settings": "Monitor settings", + "monitor.config": "Configuration JSON", + "monitor.unavailable": "The local monitor is unavailable.", + "monitor.invalidConfig": "Configuration must be valid JSON.", + "monitor.stale": "Settings changed elsewhere. Refresh and save again.", + "monitor.saveFailed": "Could not save monitor settings.", + "monitor.chartStyle": "Chart style", + "monitor.line": "Line", + "monitor.stackedBar": "Stacked bars", + "monitor.grouping": "Group by", + "monitor.model": "Model", + "monitor.modelAccount": "Model and account", + "monitor.hours": "History", + "monitor.bucket": "Bucket minutes", + "monitor.aggregation": "Aggregation", + "monitor.sum": "Sum", + "monitor.average": "Average", + "monitor.max": "Maximum", + "monitor.metric": "Token metric", + "monitor.total": "Total", + "monitor.input": "Input", + "monitor.output": "Output", + "monitor.cached": "Cached", + "monitor.display": "Show graph", + "monitor.on": "On", + "monitor.off": "Off", + "monitor.tokensAxis": "Tokens", + "monitor.timeAxis": "Time", "usage.incomplete": "Bazı kullanım kayıtları dahil edilemedi. Sayılar, tarihler ve sıralamalar yalnızca okunabilir kayıtlara dayanır.", "models.pickerOrder.usageIncomplete": "Kullanım geçmişi eksik olduğundan en çok kullanılan sıralaması kaydedilemiyor. Başka bir sıralama seçin veya önce geçmişi onarın.", "api.attribution.noRecordedUse": "Okunabilir kayıtlarda kullanım yok", diff --git a/gui/src/i18n/vi.ts b/gui/src/i18n/vi.ts index a6ef50b7f8..3a3c0c80de 100644 --- a/gui/src/i18n/vi.ts +++ b/gui/src/i18n/vi.ts @@ -6,6 +6,48 @@ import type { TKey } from "./en"; * Technical terms and model identifiers intentionally remain English. */ export const vi: Record = { + "monitor.averageNote": "Values are per-series request averages/maxima; stacked height is not the average/maximum of all requests.", + "nav.monitor": "Graphs · accounts · display", + "monitor.showToday": "Today’s usage", + "monitor.showAccounts": "Account and provider usage", + "monitor.showModels": "Today’s model list", + "monitor.showCost": "Estimated cost", + "monitor.modelFilter": "Graph model filter", + "monitor.allModels": "All models (include new models)", + "monitor.displaySettings": "Display settings", + "monitor.title": "Local monitor", + "monitor.graph": "Token usage graph", + "monitor.empty": "No usage recorded for this range.", + "monitor.shortQuota": "Short window", + "monitor.weeklyQuota": "Weekly", + "monitor.settings": "Monitor settings", + "monitor.config": "Configuration JSON", + "monitor.unavailable": "The local monitor is unavailable.", + "monitor.invalidConfig": "Configuration must be valid JSON.", + "monitor.stale": "Settings changed elsewhere. Refresh and save again.", + "monitor.saveFailed": "Could not save monitor settings.", + "monitor.chartStyle": "Chart style", + "monitor.line": "Line", + "monitor.stackedBar": "Stacked bars", + "monitor.grouping": "Group by", + "monitor.model": "Model", + "monitor.modelAccount": "Model and account", + "monitor.hours": "History", + "monitor.bucket": "Bucket minutes", + "monitor.aggregation": "Aggregation", + "monitor.sum": "Sum", + "monitor.average": "Average", + "monitor.max": "Maximum", + "monitor.metric": "Token metric", + "monitor.total": "Total", + "monitor.input": "Input", + "monitor.output": "Output", + "monitor.cached": "Cached", + "monitor.display": "Show graph", + "monitor.on": "On", + "monitor.off": "Off", + "monitor.tokensAxis": "Tokens", + "monitor.timeAxis": "Time", "usage.incomplete": "Không thể đưa một số bản ghi sử dụng vào. Số lượng, ngày tháng và thứ hạng chỉ phản ánh các bản ghi có thể đọc được.", "models.pickerOrder.usageIncomplete": "Không thể lưu thứ tự dùng nhiều nhất vì lịch sử sử dụng không đầy đủ. Hãy chọn thứ tự khác hoặc sửa lịch sử trước.", "api.attribution.noRecordedUse": "Không có lượt sử dụng trong các bản ghi có thể đọc được", diff --git a/gui/src/i18n/zh-TW.ts b/gui/src/i18n/zh-TW.ts index 0ca62560f4..17fa5b12d3 100644 --- a/gui/src/i18n/zh-TW.ts +++ b/gui/src/i18n/zh-TW.ts @@ -2,6 +2,48 @@ import type { TKey } from "./en"; /** Traditional Chinese (Taiwan) UI strings — keys must match `en.ts` 1:1. */ export const zhTW: Record = { + "monitor.averageNote": "數值為各序列每次請求的平均值或最大值;堆疊高度不代表所有請求的平均值或最大值。", + "nav.monitor": "圖表 · 帳戶 · 顯示", + "monitor.showToday": "今日用量", + "monitor.showAccounts": "帳戶與供應商用量", + "monitor.showModels": "今日模型清單", + "monitor.showCost": "預估費用", + "monitor.modelFilter": "篩選圖表模型", + "monitor.allModels": "所有模型(包含新模型)", + "monitor.displaySettings": "顯示設定", + "monitor.title": "本機監控", + "monitor.graph": "權杖用量圖表", + "monitor.empty": "此時段尚無用量紀錄。", + "monitor.shortQuota": "短期額度", + "monitor.weeklyQuota": "每週額度", + "monitor.settings": "監控設定", + "monitor.config": "JSON 設定", + "monitor.unavailable": "本機監控目前無法使用。", + "monitor.invalidConfig": "設定必須是有效的 JSON。", + "monitor.stale": "設定已在其他地方變更,請重新整理後再儲存。", + "monitor.saveFailed": "無法儲存監控設定。", + "monitor.chartStyle": "圖表類型", + "monitor.line": "折線圖", + "monitor.stackedBar": "堆疊長條圖", + "monitor.grouping": "分組依據", + "monitor.model": "模型", + "monitor.modelAccount": "模型與帳戶", + "monitor.hours": "歷史範圍", + "monitor.bucket": "時間間隔(分鐘)", + "monitor.aggregation": "計算方式", + "monitor.sum": "總和", + "monitor.average": "平均值", + "monitor.max": "最大值", + "monitor.metric": "權杖指標", + "monitor.total": "總計", + "monitor.input": "輸入", + "monitor.output": "輸出", + "monitor.cached": "快取", + "monitor.display": "顯示圖表", + "monitor.on": "開啟", + "monitor.off": "關閉", + "monitor.tokensAxis": "權杖數", + "monitor.timeAxis": "時間", "usage.incomplete": "部分用量記錄無法納入。次數、日期和排名僅反映可讀取的記錄。", "models.pickerOrder.usageIncomplete": "用量歷史不完整,無法儲存最常用排序。請選擇其他排序或先修復歷史記錄。", "api.attribution.noRecordedUse": "可讀取的記錄中沒有使用記錄", diff --git a/gui/src/i18n/zh.ts b/gui/src/i18n/zh.ts index 277cda2e64..e318d922f8 100644 --- a/gui/src/i18n/zh.ts +++ b/gui/src/i18n/zh.ts @@ -4,6 +4,48 @@ import type { TKey } from "./en"; * Chinese i18n catalog; must match the `TKey` set (compile-checked). */ export const zh: Record = { + "monitor.averageNote": "Values are per-series request averages/maxima; stacked height is not the average/maximum of all requests.", + "nav.monitor": "Graphs · accounts · display", + "monitor.showToday": "Today’s usage", + "monitor.showAccounts": "Account and provider usage", + "monitor.showModels": "Today’s model list", + "monitor.showCost": "Estimated cost", + "monitor.modelFilter": "Graph model filter", + "monitor.allModels": "All models (include new models)", + "monitor.displaySettings": "显示设置", + "monitor.title": "Local monitor", + "monitor.graph": "Token usage graph", + "monitor.empty": "No usage recorded for this range.", + "monitor.shortQuota": "Short window", + "monitor.weeklyQuota": "Weekly", + "monitor.settings": "Monitor settings", + "monitor.config": "Configuration JSON", + "monitor.unavailable": "The local monitor is unavailable.", + "monitor.invalidConfig": "Configuration must be valid JSON.", + "monitor.stale": "Settings changed elsewhere. Refresh and save again.", + "monitor.saveFailed": "Could not save monitor settings.", + "monitor.chartStyle": "Chart style", + "monitor.line": "Line", + "monitor.stackedBar": "Stacked bars", + "monitor.grouping": "Group by", + "monitor.model": "Model", + "monitor.modelAccount": "Model and account", + "monitor.hours": "History", + "monitor.bucket": "Bucket minutes", + "monitor.aggregation": "Aggregation", + "monitor.sum": "Sum", + "monitor.average": "Average", + "monitor.max": "Maximum", + "monitor.metric": "Token metric", + "monitor.total": "Total", + "monitor.input": "Input", + "monitor.output": "Output", + "monitor.cached": "Cached", + "monitor.display": "Show graph", + "monitor.on": "On", + "monitor.off": "Off", + "monitor.tokensAxis": "Tokens", + "monitor.timeAxis": "Time", "usage.incomplete": "部分用量记录无法计入。次数、日期和排名仅反映可读取的记录。", "models.pickerOrder.usageIncomplete": "用量历史不完整,无法保存最常用排序。请选择其他排序或先修复历史记录。", "api.attribution.noRecordedUse": "可读取的记录中没有使用记录", diff --git a/gui/src/pages/MonitorDashboardCard.tsx b/gui/src/pages/MonitorDashboardCard.tsx new file mode 100644 index 0000000000..e7180033c4 --- /dev/null +++ b/gui/src/pages/MonitorDashboardCard.tsx @@ -0,0 +1,197 @@ +import { useEffect, useRef, useState } from "react"; +import { createBoundedFetch, type BoundedFetch } from "../bounded-fetch"; +import { Select } from "../ui"; +import { navigateHash } from "../hash-routing"; +import { useI18n } from "../i18n/shared"; +import { startVisibilityPoll } from "../visibility-poll"; +import { monitorNumberFields, monitorTemplateRows, monitorTemplate, monitorRemaining, monitorSeriesPaths, monitorStackedBars, type MonitorPoint } from "./monitor-dashboard-utils"; + +const MONITOR_BASE = "http://127.0.0.1:10101"; + +type MonitorConfig = Record; +type MonitorState = { + config: MonitorConfig; + revision: string; + graph?: { start: number; end: number; points: MonitorPoint[]; availableModels?: string[]; seriesSources?: Record; aggregation?: string; bucketSeconds?: number; missing?: number; skipped?: number; truncated?: boolean }; + usage?: { summary?: { requests?: number; totalTokens?: number; inputTokens?: number; outputTokens?: number; estimatedCostUsd?: number; unpricedRequests?: number; unmeteredRequests?: number }; models?: Array<{provider:string;model:string;requests:number;totalTokens:number}>; providers?: Array<{provider:string;requests:number;totalTokens:number}> }; + accounts?: Array<{ id: string; email?: string; alias?: string; logLabel?: string; plan?: string; name?: string }>; + quotas?: Record; + providerNames?: string[]; + providerWindows?: Record>; + providerErrors?: Record; + updated?: number; + failure?: string; + graphError?: string; + quotaError?: string; +}; + +function themeColor(value: unknown): string | undefined { + return value === "primary" ? "var(--text)" : value === "secondary" ? "var(--muted)" : typeof value === "string" && /^#[0-9a-f]{6}$/i.test(value) ? value : undefined; +} + +function QuotaBar({ label, value, reset, config }: { label: string; value: number | undefined; reset?: number; config: MonitorConfig }) { + const remaining = monitorRemaining(value, reset); + return
{label}
{remaining === null ? "—" : `${Math.round(remaining)}%`}
; +} + +function readMonitorTab() { return window.location.hash === "#monitor/providers" ? "providers" : "usage"; } + +export function MonitorDashboardCard() { + const { locale, t } = useI18n(); + const [tab, setTab] = useState(readMonitorTab); + useEffect(() => { + const sync = () => setTab(readMonitorTab()); + window.addEventListener("hashchange", sync); + window.addEventListener("popstate", sync); + return () => { window.removeEventListener("hashchange", sync); window.removeEventListener("popstate", sync); }; + }, []); + const tabs = [{id:"usage",label:t("nav.usage")},{id:"providers",label:t("nav.providers")}]; + const selectTab = (id: string) => { setTab(id); navigateHash(id === "usage" ? "monitor" : `monitor/${id}`); }; + + const [state, setState] = useState(null); + const [draft, setDraft] = useState(""); + const [dirty, setDirty] = useState(false); + const [saving, setSaving] = useState(false); + const [connectionError, setConnectionError] = useState(null); + const [error, setError] = useState(null); + const dirtyRef = useRef(false); + const requestGeneration = useRef(0); + const revisionRef = useRef(null); + const refreshRef = useRef<() => Promise>(async () => undefined); + + useEffect(() => { dirtyRef.current = dirty; }, [dirty]); + useEffect(() => { + let cancelled = false; + let inFlight = false; + let active: BoundedFetch | null = null; + const refresh = async () => { + if (inFlight) return; + inFlight = true; + const generation = requestGeneration.current; + const bounded = createBoundedFetch(4_000); + active = bounded; + try { + const response = await fetch(`${MONITOR_BASE}/state`, { credentials: "omit", cache: "no-store", signal: bounded.signal }); + if (!response.ok) throw new Error(`HTTP ${response.status}`); + const next = await response.json() as MonitorState; + if (cancelled || generation !== requestGeneration.current) return; + setState(next); + setConnectionError(null); + if (!dirtyRef.current) { + revisionRef.current = next.revision; + setDraft(JSON.stringify(next.config, null, 2)); + } + } catch { + if (!cancelled) setConnectionError(t("monitor.unavailable")); + } finally { + bounded.clear(); + if (active === bounded) active = null; + inFlight = false; + } + }; + refreshRef.current = refresh; + void refresh(); + const stop = startVisibilityPoll(() => void refresh(), 5_000); + return () => { cancelled = true; active?.controller.abort(); active?.clear(); stop(); }; + }, [t]); + + const save = async () => { + if (!state) return; + let config: MonitorConfig; + try { config = JSON.parse(draft) as MonitorConfig; if (!config || typeof config !== "object" || Array.isArray(config)) throw new Error(); } + catch { setError(t("monitor.invalidConfig")); return; } + requestGeneration.current += 1; + setSaving(true); setError(null); + const bounded = createBoundedFetch(6_000); + try { + const response = await fetch(`${MONITOR_BASE}/config`, { method: "POST", credentials: "omit", signal: bounded.signal, headers: { "Content-Type": "application/json", "X-Monitor-Request": "1" }, body: JSON.stringify({ config, revision: revisionRef.current ?? state.revision }) }); + if (response.status === 409) throw new Error(t("monitor.stale")); + if (!response.ok) throw new Error(t("monitor.saveFailed")); + const next = await response.json() as MonitorState | undefined; + requestGeneration.current += 1; + if (next?.config) { setState(next); revisionRef.current = next.revision; setDraft(JSON.stringify(next.config, null, 2)); } + dirtyRef.current = false; + setDirty(false); + await refreshRef.current(); + } catch (cause) { setError(cause instanceof Error ? cause.message : t("monitor.saveFailed")); } + finally { bounded.clear(); setSaving(false); } + }; + + let config = state?.config ?? {}; + try { const parsed: unknown = JSON.parse(draft); if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) config = parsed as MonitorConfig; } catch { /* retain the last valid server config while editing malformed JSON */ } + const setDraftConfig = (patch: MonitorConfig) => { + let current = config; + try { current = JSON.parse(draft) as MonitorConfig; } catch { /* preserve the raw invalid JSON for correction */ } + setDraft(JSON.stringify({ ...current, ...patch }, null, 2)); + dirtyRef.current = true; + setDirty(true); + }; + const show = (key: string) => config[key] !== false; + const chartHeight = typeof config.dashboardGraphHeight === "number" ? Math.min(800, Math.max(150, config.dashboardGraphHeight)) : 300; + const palette = Array.isArray(config.graphPalette) ? config.graphPalette.filter((color): color is string => typeof color === "string") : []; + const modelColors = typeof config.modelColors === "object" && config.modelColors ? config.modelColors as Record : {}; + const colorFor = (name: string, index: number) => themeColor(modelColors[name] ?? modelColors[state?.graph?.seriesSources?.[name] ?? ""] ?? palette[index % palette.length]) ?? `var(--monitor-${index % 6})`; + const selectedModels = Array.isArray(config.models) ? new Set(config.models) : null; + const hiddenProviders = new Set(Array.isArray(config.hiddenProviders) ? config.hiddenProviders.filter((name): name is string => typeof name === "string") : []); + const paths = monitorSeriesPaths(state?.graph?.points ?? [], 720, chartHeight, state?.graph); + const bars = monitorStackedBars(state?.graph?.points ?? [], 720, chartHeight, state?.graph); + const summary = state?.usage?.summary; + const fields = monitorNumberFields(summary ?? {}, locale); + const lines = (key: string) => Array.isArray(config[key]) ? (config[key] as unknown[]).filter((line): line is string => typeof line === "string") : []; + const buckets = new Map(); + let maximum = 1, start = Infinity, end = -Infinity; + for (const point of state?.graph?.points ?? []) { + start = Math.min(start, point.date); end = Math.max(end, point.date); + maximum = Math.max(maximum, point.tokens); + buckets.set(point.date, (buckets.get(point.date) ?? 0) + point.tokens); + } + if (config.chartStyle === "stackedBar") for (const total of buckets.values()) maximum = Math.max(maximum, total); + if (state?.graph && Number.isFinite(state.graph.start) && state.graph.end > state.graph.start) { start = state.graph.start; end = state.graph.end; } + else if (config.chartStyle === "stackedBar") end += state?.graph?.bucketSeconds ?? 0; + const axisNumber = (value: number) => new Intl.NumberFormat(locale, {notation:"compact", maximumFractionDigits:1}).format(value); + const timeLabel = (value: number) => new Date(value * 1000).toLocaleString(locale, {month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"}); + + return <> +
+ {tabs.map((item,index) => )} +
+
+

{tabs.find(item => item.id === tab)?.label}

{state?.updated ? new Date(state.updated * 1000).toLocaleTimeString(locale) : t("common.loading")}
+ {connectionError &&

{connectionError}

} + {[state?.failure, state?.graphError, state?.quotaError].filter(Boolean).map((message,index) =>

{message}

)} + {error &&

{error}

} + {tab === "usage" && show("showToday") &&
+ {monitorTemplate(String(config.todayTitle ?? ""), fields)} +
{monitorTemplateRows(lines("todayLines")).map(line => {monitorTemplate(line.text, fields)})}
+ {show("showCost") &&
{monitorTemplateRows(lines("costLines")).map(line => {monitorTemplate(line.text, fields)})}
} +
} + {tab === "usage" && show("showChart") &&
+ {paths.length ? {t("monitor.graph")}{[0, 0.5, 1].map(ratio => {axisNumber(maximum*ratio)})}{Number.isFinite(start) && [0,0.5,1].map(ratio => {timeLabel(start+(end-start)*ratio)})}{t("monitor.tokensAxis")}{t("monitor.timeAxis")}{config.chartStyle === "stackedBar" ? bars.map((bar, index) => ) : paths.map((series, index) => )} :

{t("monitor.empty")}

} + {paths.length > 0 &&
{paths.map((series, index) => {series.name})}
} +
} + {tab === "usage" && show("showChart") && state?.graph && state.graph.aggregation !== "sum" &&

{t("monitor.averageNote")}

} + {tab === "providers" &&
{(state?.providerNames ?? []).map(name => )}
} + {tab === "providers" &&
+ {!hiddenProviders.has("openai") && (state?.accounts ?? []).map(account => { const quota = state?.quotas?.[account.id]; return
{account.name ?? account.email ?? account.id}{(account.email || account.plan) && {[account.email, account.plan].filter(Boolean).join(" · ")}}
; })} + {(state?.providerNames ?? []).filter(provider => provider !== "openai" && !hiddenProviders.has(provider)).map(provider =>
{provider}{monitorTemplate(String(config.providerUsageTemplate ?? ""), monitorNumberFields(state?.usage?.providers?.find(item => item.provider === provider) ?? {}, locale))}{typeof state?.providerErrors?.[provider] === "string" && {String(state.providerErrors[provider])}}{(state?.providerWindows?.[provider] ?? []).map(window => )}
)} +
} + {tab === "usage" && show("showModels") &&
{(state?.usage?.models ?? []).map(model =>
{model.provider}/{model.model}{monitorTemplate(String(config.providerUsageTemplate ?? ""),monitorNumberFields(model,locale))}
)}
} + {tab === "usage" &&

{t("monitor.displaySettings")}

+
{t("monitor.chartStyle")} setDraftConfig({chartGrouping:value})} options={[{value:"model",label:t("monitor.model")},{value:"modelAccount",label:t("monitor.modelAccount")}]} />
+
{t("monitor.hours")} setDraftConfig({ bucketMinutes: Math.min(1440, Math.max(1, Number(event.target.value) || 1)) })} /> +
{t("monitor.aggregation")} setDraftConfig({tokenMetric:value})} options={[{value:"total",label:t("monitor.total")},{value:"input",label:t("monitor.input")},{value:"output",label:t("monitor.output")},{value:"cached",label:t("monitor.cached")}]} />
+
{t("monitor.display")} setDraftConfig({[key]:event.target.checked})}/>{t(label)})}
{t("monitor.modelFilter")}
{(state?.graph?.availableModels ?? []).map(model => )}
{t("monitor.config")}