* feat(ui): add utilities, theming, and i18n updates (slice 2 of dashboard-v2) UI utilities and theming improvements extracted from dashboard-v2-structure: Icons & formatting: - icons.ts: expanded icon set for new dashboard views - format.ts: date/number formatting helpers - tool-labels.ts: human-readable tool name mappings Theming: - theme.ts: enhanced theme resolution and system theme support - theme-transition.ts: simplified transition logic - storage.ts: theme parsing improvements for settings persistence Navigation & types: - navigation.ts: extended tab definitions for dashboard-v2 - app-view-state.ts: expanded view state management - types.ts: new type definitions (HealthSummary, ModelCatalogEntry, etc.) Components: - components/dashboard-header.ts: reusable header component i18n: - Updated en, pt-BR, zh-CN, zh-TW locales with new dashboard strings All changes are additive or backwards-compatible. Build passes. Part of #36853. * ui: fix theme and locale review regressions * ui: fix review follow-ups for dashboard tabs * ui: allowlist locale password placeholder false positives * ui: fix theme mode and locale regressions * Vincentkoc code/pr 41500 route fix (#43829) * UI: keep unfinished settings routes hidden * UI: normalize light theme data token * UI: restore cron type compatibility --------- Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
/**
|
|
* Map raw tool names to human-friendly labels for the chat UI.
|
|
* Unknown tools are title-cased with underscores replaced by spaces.
|
|
*/
|
|
|
|
export const TOOL_LABELS: Record<string, string> = {
|
|
exec: "Run Command",
|
|
bash: "Run Command",
|
|
read: "Read File",
|
|
write: "Write File",
|
|
edit: "Edit File",
|
|
apply_patch: "Apply Patch",
|
|
web_search: "Web Search",
|
|
web_fetch: "Fetch Page",
|
|
browser: "Browser",
|
|
message: "Send Message",
|
|
image: "Generate Image",
|
|
canvas: "Canvas",
|
|
cron: "Cron",
|
|
gateway: "Gateway",
|
|
nodes: "Nodes",
|
|
memory_search: "Search Memory",
|
|
memory_get: "Get Memory",
|
|
session_status: "Session Status",
|
|
sessions_list: "List Sessions",
|
|
sessions_history: "Session History",
|
|
sessions_send: "Send to Session",
|
|
sessions_spawn: "Spawn Session",
|
|
agents_list: "List Agents",
|
|
};
|
|
|
|
export function friendlyToolName(raw: string): string {
|
|
const mapped = TOOL_LABELS[raw];
|
|
if (mapped) {
|
|
return mapped;
|
|
}
|
|
// Title-case fallback: "some_tool_name" → "Some Tool Name"
|
|
return raw.replace(/_/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
|
|
}
|