mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-31 19:16:29 +00:00
feat(desktop): linkify 'Nous portal' in the cloud no-agents message
When Hermes Cloud discovery returns zero agents, the empty-state message now renders 'Nous portal' as a hyperlink to https://portal.nousresearch.com/agents (opened via the app's ExternalLink → shell.openExternal), so the user can jump straight to creating an agent instead of finding the portal manually. The cloudNoAgents i18n string becomes { before, linkText, after } (en + zh) so each locale controls link placement; ja/zh-hant fall back to en via defineLocale. No external-link icon on this inline link to keep the sentence clean. tsc + eslint clean; link verified present in the packaged renderer bundle.
This commit is contained in:
parent
cd658937d4
commit
f99353c549
4 changed files with 19 additions and 4 deletions
|
|
@ -10,6 +10,7 @@ import type {
|
|||
DesktopConnectionProbeResult
|
||||
} from '@/global'
|
||||
import { useI18n } from '@/i18n'
|
||||
import { ExternalLink } from '@/lib/external-link'
|
||||
import { AlertCircle, Check, Cloud, FileText, Globe, Loader2, LogIn, Monitor, RefreshCw } from '@/lib/icons'
|
||||
import { cn } from '@/lib/utils'
|
||||
import { notify, notifyError } from '@/store/notifications'
|
||||
|
|
@ -795,7 +796,13 @@ export function GatewaySettings() {
|
|||
) : cloudAgents.length === 0 ? (
|
||||
<div className="flex items-start gap-2 py-3 text-[length:var(--conversation-caption-font-size)] text-(--ui-text-tertiary)">
|
||||
<AlertCircle className="mt-0.5 size-4 shrink-0" />
|
||||
{g.cloudNoAgents}
|
||||
<span>
|
||||
{g.cloudNoAgents.before}
|
||||
<ExternalLink href="https://portal.nousresearch.com/agents" showExternalIcon={false}>
|
||||
{g.cloudNoAgents.linkText}
|
||||
</ExternalLink>
|
||||
{g.cloudNoAgents.after}
|
||||
</span>
|
||||
</div>
|
||||
) : (
|
||||
<div className="grid gap-1">
|
||||
|
|
|
|||
|
|
@ -545,7 +545,11 @@ export const en: Translations = {
|
|||
cloudOrgChange: 'Change org',
|
||||
cloudOrgRole: role => `Role: ${role}`,
|
||||
cloudLoadingAgents: 'Loading your agents…',
|
||||
cloudNoAgents: 'No agents found on this account. Create one in the Nous portal, then refresh.',
|
||||
cloudNoAgents: {
|
||||
before: 'No agents found on this account. Create one in the ',
|
||||
linkText: 'Nous portal',
|
||||
after: ', then refresh.'
|
||||
},
|
||||
cloudRefresh: 'Refresh',
|
||||
cloudConnect: 'Connect',
|
||||
cloudConnecting: 'Connecting…',
|
||||
|
|
|
|||
|
|
@ -456,7 +456,7 @@ export interface Translations {
|
|||
cloudOrgChange: string
|
||||
cloudOrgRole: (role: string) => string
|
||||
cloudLoadingAgents: string
|
||||
cloudNoAgents: string
|
||||
cloudNoAgents: { before: string; linkText: string; after: string }
|
||||
cloudRefresh: string
|
||||
cloudConnect: string
|
||||
cloudConnecting: string
|
||||
|
|
|
|||
|
|
@ -734,7 +734,11 @@ export const zh: Translations = {
|
|||
cloudOrgChange: '切换组织',
|
||||
cloudOrgRole: role => `角色:${role}`,
|
||||
cloudLoadingAgents: '正在加载你的智能体…',
|
||||
cloudNoAgents: '此账户下未找到智能体。请在 Nous 门户中创建一个,然后刷新。',
|
||||
cloudNoAgents: {
|
||||
before: '此账户下未找到智能体。请在',
|
||||
linkText: 'Nous 门户',
|
||||
after: '中创建一个,然后刷新。'
|
||||
},
|
||||
cloudRefresh: '刷新',
|
||||
cloudConnect: '连接',
|
||||
cloudConnecting: '正在连接…',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue