feat: add sidebar

This commit is contained in:
Austin Pickett 2026-04-22 23:25:17 -04:00
parent 7db2703b33
commit e5d2815b41
41 changed files with 2469 additions and 1391 deletions

View file

@ -6,6 +6,7 @@ export const en: Translations = {
saving: "Saving...",
cancel: "Cancel",
close: "Close",
confirm: "Confirm",
delete: "Delete",
refresh: "Refresh",
retry: "Retry",
@ -42,26 +43,43 @@ export const en: Translations = {
expand: "Expand",
general: "General",
messaging: "Messaging",
pluginLoadFailed:
"Could not load this plugins script. Check the Network tab (dashboard-plugins/…) and the servers plugin path.",
pluginNotRegistered:
"The plugins script did not call register(), or the script errored. Open the browser console for details.",
},
app: {
brand: "Hermes Agent",
brandShort: "HA",
webUi: "Web UI",
closeNavigation: "Close navigation",
footer: {
name: "Hermes Agent",
org: "Nous Research",
},
nav: {
status: "Status",
sessions: "Sessions",
analytics: "Analytics",
logs: "Logs",
cron: "Cron",
skills: "Skills",
config: "Config",
keys: "Keys",
activeSessionsLabel: "Active Sessions:",
gatewayStatusLabel: "Gateway Status:",
gatewayStrip: {
failed: "Start failed",
off: "Off",
running: "Running",
starting: "Starting",
stopped: "Stopped",
},
nav: {
analytics: "Analytics",
config: "Config",
cron: "Cron",
keys: "Keys",
logs: "Logs",
sessions: "Sessions",
skills: "Skills",
},
navigation: "Navigation",
openNavigation: "Open navigation",
sessionsActiveCount: "{count} active",
statusOverview: "Status overview",
system: "System",
webUi: "Web UI",
},
status: {
@ -106,6 +124,11 @@ export const en: Translations = {
noMessages: "No messages",
untitledSession: "Untitled session",
deleteSession: "Delete session",
confirmDeleteTitle: "Delete session?",
confirmDeleteMessage:
"This permanently removes the conversation and all of its messages. This cannot be undone.",
sessionDeleted: "Session deleted",
failedToDelete: "Failed to delete session",
previousPage: "Previous page",
nextPage: "Next page",
roles: {
@ -153,6 +176,9 @@ export const en: Translations = {
},
cron: {
confirmDeleteMessage:
"This removes the job from the schedule. This cannot be undone.",
confirmDeleteTitle: "Delete scheduled job?",
newJob: "New Cron Job",
nameOptional: "Name (optional)",
namePlaceholder: "e.g. Daily summary",
@ -182,6 +208,8 @@ export const en: Translations = {
searchPlaceholder: "Search skills and toolsets...",
enabledOf: "{enabled}/{total} enabled",
all: "All",
categories: "Categories",
filters: "Filters",
noSkills: "No skills found. Skills are loaded from ~/.hermes/skills/",
noSkillsMatch: "No skills match your search or filter.",
skillCount: "{count} skill{s}",
@ -197,6 +225,8 @@ export const en: Translations = {
config: {
configPath: "~/.hermes/config.yaml",
filters: "Filters",
sections: "Sections",
exportConfig: "Export config as JSON",
importConfig: "Import config from JSON",
resetDefaults: "Reset to defaults",
@ -231,8 +261,11 @@ export const en: Translations = {
},
env: {
description: "Manage API keys and secrets stored in",
changesNote: "Changes are saved to disk immediately. Active sessions pick up new keys automatically.",
confirmClearMessage:
"The stored value for this variable will be removed from your .env file. This cannot be undone from the UI.",
confirmClearTitle: "Clear this key?",
description: "Manage API keys and secrets stored in",
hideAdvanced: "Hide Advanced",
showAdvanced: "Show Advanced",
llmProviders: "LLM Providers",

View file

@ -7,6 +7,7 @@ export interface Translations {
saving: string;
cancel: string;
close: string;
confirm: string;
delete: string;
refresh: string;
retry: string;
@ -43,27 +44,42 @@ export interface Translations {
expand: string;
general: string;
messaging: string;
pluginLoadFailed: string;
pluginNotRegistered: string;
};
// ── App shell ──
app: {
brand: string;
brandShort: string;
webUi: string;
closeNavigation: string;
footer: {
name: string;
org: string;
};
nav: {
status: string;
sessions: string;
analytics: string;
logs: string;
cron: string;
skills: string;
config: string;
keys: string;
activeSessionsLabel: string;
gatewayStatusLabel: string;
gatewayStrip: {
failed: string;
off: string;
running: string;
starting: string;
stopped: string;
};
nav: {
analytics: string;
config: string;
cron: string;
keys: string;
logs: string;
sessions: string;
skills: string;
};
navigation: string;
openNavigation: string;
sessionsActiveCount: string;
statusOverview: string;
system: string;
webUi: string;
};
// ── Status page ──
@ -110,6 +126,10 @@ export interface Translations {
noMessages: string;
untitledSession: string;
deleteSession: string;
confirmDeleteTitle: string;
confirmDeleteMessage: string;
sessionDeleted: string;
failedToDelete: string;
previousPage: string;
nextPage: string;
roles: {
@ -160,6 +180,8 @@ export interface Translations {
// ── Cron page ──
cron: {
confirmDeleteMessage: string;
confirmDeleteTitle: string;
newJob: string;
nameOptional: string;
namePlaceholder: string;
@ -190,6 +212,8 @@ export interface Translations {
searchPlaceholder: string;
enabledOf: string;
all: string;
categories: string;
filters: string;
noSkills: string;
noSkillsMatch: string;
skillCount: string;
@ -206,6 +230,8 @@ export interface Translations {
// ── Config page ──
config: {
configPath: string;
filters: string;
sections: string;
exportConfig: string;
importConfig: string;
resetDefaults: string;
@ -241,20 +267,22 @@ export interface Translations {
// ── Env / Keys page ──
env: {
description: string;
changesNote: string;
hideAdvanced: string;
showAdvanced: string;
llmProviders: string;
providersConfigured: string;
confirmClearMessage: string;
confirmClearTitle: string;
description: string;
enterValue: string;
getKey: string;
hideAdvanced: string;
hideValue: string;
keysCount: string;
llmProviders: string;
notConfigured: string;
notSet: string;
keysCount: string;
enterValue: string;
providersConfigured: string;
replaceCurrentValue: string;
showAdvanced: string;
showValue: string;
hideValue: string;
};
// ── OAuth ──

View file

@ -6,6 +6,7 @@ export const zh: Translations = {
saving: "保存中...",
cancel: "取消",
close: "关闭",
confirm: "确认",
delete: "删除",
refresh: "刷新",
retry: "重试",
@ -42,26 +43,42 @@ export const zh: Translations = {
expand: "展开",
general: "通用",
messaging: "消息平台",
pluginLoadFailed:
"无法加载此插件的脚本。请检查网络请求dashboard-plugins/…)以及服务器上的插件路径。",
pluginNotRegistered: "插件脚本未调用 register(),或执行出错。请打开浏览器控制台查看详情。",
},
app: {
brand: "Hermes Agent",
brandShort: "HA",
webUi: "管理面板",
closeNavigation: "关闭导航",
footer: {
name: "Hermes Agent",
org: "Nous Research",
},
nav: {
status: "状态",
sessions: "会话",
analytics: "分析",
logs: "日志",
cron: "定时任务",
skills: "技能",
config: "配置",
keys: "密钥",
activeSessionsLabel: "活跃会话:",
gatewayStatusLabel: "网关状态:",
gatewayStrip: {
failed: "启动失败",
off: "关闭",
running: "运行中",
starting: "启动中",
stopped: "已停止",
},
nav: {
analytics: "分析",
config: "配置",
cron: "定时任务",
keys: "密钥",
logs: "日志",
sessions: "会话",
skills: "技能",
},
navigation: "导航",
openNavigation: "打开导航",
sessionsActiveCount: "{count} 个活跃",
statusOverview: "状态概览",
system: "系统",
webUi: "管理面板",
},
status: {
@ -106,6 +123,10 @@ export const zh: Translations = {
noMessages: "暂无消息",
untitledSession: "无标题会话",
deleteSession: "删除会话",
confirmDeleteTitle: "删除会话?",
confirmDeleteMessage: "此操作将永久删除对话及其所有消息,无法恢复。",
sessionDeleted: "会话已删除",
failedToDelete: "删除会话失败",
previousPage: "上一页",
nextPage: "下一页",
roles: {
@ -153,6 +174,8 @@ export const zh: Translations = {
},
cron: {
confirmDeleteMessage: "将从此计划移除该任务,此操作无法撤销。",
confirmDeleteTitle: "删除定时任务?",
newJob: "新建定时任务",
nameOptional: "名称(可选)",
namePlaceholder: "例如:每日总结",
@ -182,6 +205,8 @@ export const zh: Translations = {
searchPlaceholder: "搜索技能和工具集...",
enabledOf: "已启用 {enabled}/{total}",
all: "全部",
categories: "分类",
filters: "筛选",
noSkills: "未找到技能。技能从 ~/.hermes/skills/ 加载",
noSkillsMatch: "没有匹配的技能。",
skillCount: "{count} 个技能",
@ -197,6 +222,8 @@ export const zh: Translations = {
config: {
configPath: "~/.hermes/config.yaml",
filters: "筛选",
sections: "分类",
exportConfig: "导出配置为 JSON",
importConfig: "从 JSON 导入配置",
resetDefaults: "恢复默认值",
@ -231,8 +258,10 @@ export const zh: Translations = {
},
env: {
description: "管理存储在以下位置的 API 密钥和凭据",
changesNote: "更改会立即保存到磁盘。活跃会话将自动获取新密钥。",
confirmClearMessage: "该变量的已存值将从 .env 文件中删除。无法在此界面撤销。",
confirmClearTitle: "清除此密钥?",
description: "管理存储在以下位置的 API 密钥和凭据",
hideAdvanced: "隐藏高级选项",
showAdvanced: "显示高级选项",
llmProviders: "LLM 提供商",