返回 DeepSeek-Reasonix
statusBarItems.ts
根目录 / desktop / frontend / src / lib / statusBarItems.ts
1 export const STATUS_BAR_ITEM_IDS = [
2 "model",
3 "workspace",
4 "git_branch",
5 "cache",
6 "cache_avg",
7 "session_tokens",
8 "turn_tokens",
9 "turn_cost",
10 "session_turns",
11 "context",
12 "compact",
13 "cost",
14 "balance",
15 ] as const;
16
17 export type StatusBarItemId = typeof STATUS_BAR_ITEM_IDS[number];
18
19 export const DEFAULT_STATUS_BAR_ITEMS: StatusBarItemId[] = [...STATUS_BAR_ITEM_IDS];
20
21 const statusBarItemSet = new Set<string>(STATUS_BAR_ITEM_IDS);
22
23 export function normalizeStatusBarItems(items: readonly string[] | null | undefined): StatusBarItemId[] {
24 const out: StatusBarItemId[] = [];
25 const seen = new Set<string>();
26 for (const raw of items ?? []) {
27 const id = String(raw ?? "").trim();
28 if (!statusBarItemSet.has(id) || seen.has(id)) continue;
29 out.push(id as StatusBarItemId);
30 seen.add(id);
31 }
32 return out.length > 0 ? out : [...DEFAULT_STATUS_BAR_ITEMS];
33 }
34
34 lines TYPESCRIPT