// panels + echoPages + agentsContent

export const panelsZh = {
  panels: {
    agents: {
      title: '智能体',
      connected: '已连接',
      refresh: '刷新智能体状态',
      retry: '重试',
      failedToLoad: '加载智能体失败',
      mcpServer: 'MCP 服务器',
      stopped: '已停止',
      sectionConnected: '已连接',
      sectionDetected: '已检测',
      sectionNotDetected: '未检测到',
      noAgents: '未检测到智能体。',
      autoRefresh: '每 30 秒自动刷新',
      connect: '连接',
      installing: '安装中...',
      install: '安装',
      installSuccess: '已安装',
      installFailed: '安装失败',
      retryInstall: '重试',
      // Snippet section
      copyConfig: '复制配置',
      copied: '已复制!',
      transportLocal: '本地',
      transportRemote: '远程',
      configPath: '配置路径',
      noAuthWarning: '未设置 Token — 请在高级配置中设置',
      // Skills section
      skillsTitle: '技能',
      skillsActive: '已启用',
      builtinSkills: '内置',
      newSkill: '+ 新建',
      // Footer
      advancedConfig: '高级配置 →',
      channels: '频道',
      navOverview: '总览',
      navAssistant: 'Assistant',
      navAgent: 'Agent',
      navCapabilities: 'Skills & MCP',
      navRuns: '活动日志',
      navPresets: 'Assistant',
      navMcp: 'MCP',
      navSkills: '技能',
      navChannels: '频道',
      navNetwork: '网络',
      navSessions: '会话',
      navActivity: '活动',
      activitySubtitle: 'Agent 操作审计日志。',
      activity: {
        loading: '正在加载活动...',
        empty: '暂无 Agent 操作记录。',
        emptyHint: '已连接 Agent 的操作将显示在这里。',
        agentLabel: 'Agent',
      },
      // A2A tab
      a2aTabTitle: '远程 Agent',
      a2aTabEmpty: '无远程 Agent',
      a2aTabEmptyHint: '发现远程 Agent 以启用跨 Agent 委派。',
      a2aRemoveAgent: '移除',
      rosterLabel: '当前环境',
      notFoundDetail: '本机未检测到该智能体客户端。请安装后刷新列表。',
      skillsEmptyHint: '请在「Skills & MCP」中启用或编辑技能。',
      backToList: '返回',
      closeAgentDetail: '关闭',
      agentDetailPanelAria: '智能体连接配置',
      agentDetailTransport: '传输方式',
      agentDetailSnippet: '配置片段',
      // A2A
      a2aLabel: 'A2A',
      a2aReady: 'A2A 就绪',
      a2aChecking: '检测 A2A 中...',
      a2aUnavailable: 'A2A 不可用',
      a2aRemote: '远程',
      a2aDiscover: '发现远程 Agent',
      a2aDiscoverHint: '通过 URL 连接外部 A2A Agent',
      a2aDiscoverPlaceholder: 'https://agent.example.com',
      a2aDiscovering: '发现中...',
      a2aDiscoverSuccess: 'Agent 已发现！',
      a2aDiscoverFailed: '未在此 URL 找到 A2A Agent',
      a2aDiscoverFailedHint: '该服务器可能不支持 A2A 协议，请检查 URL 后重试。',
      a2aSkills: '技能',
      a2aEndpoint: '端点',
      a2aVersion: '版本',
      a2aCapabilities: 'A2A 能力',
      a2aStatus: '状态',
      a2aConnected: '已连接，A2A 就绪',
      a2aNoRemote: '无远程 Agent',
      a2aNoRemoteHint: '发现远程 Agent 以启用跨 Agent 委派。',
      a2aDelegations: '近期委派',
      a2aDelegationsEmpty: '暂无委派记录',
      a2aDelegationCompleted: '已完成',
      a2aDelegationFailed: '失败',
      a2aDelegationPending: '进行中',
      a2aDelegationCanceled: '已取消',
      // ACP / Network tab
      acpSectionTitle: '已安装智能体',
      acpSectionDesc: (n: number) => `已检测到 ${n} 个智能体`,
      acpNoInstalled: '未检测到编程智能体。安装一个即可在 MindOS 中直接委派任务。',
      acpAvailableTitle: '注册表中可用',
      acpAvailableDesc: (n: number) => `还有 ${n} 个智能体可安装`,
      acpShowAvailable: '展开',
      acpHideAvailable: '收起',
      acpCopyCmd: '复制',
      acpCopied: '已复制',
      acpTransportNpx: 'npx',
      acpTransportBinary: '二进制',
      acpTransportUvx: 'uvx',
      acpTransportStdio: 'stdio',
      acpUseAgent: '使用',
      acpComingSoon: '即将上线 — 当前可通过 MindOS 调用',
      acpReady: '就绪',
      acpNotInstalled: '未安装',
      acpScan: '重新扫描',
      acpInstallHint: (cmd: string) => `安装命令: ${cmd}`,
      acpInstall: '安装',
      acpInstalling: '安装中…',
      acpLoading: '加载 ACP 注册表中…',
      acpLoadFailed: '加载 ACP 注册表失败。',
      acpRetry: '重试',
      acpQuickReview: '代码审查',
      acpQuickFix: '修复Bug',
      acpQuickExplain: '解释项目',
      acpUseWith: (name: string) => `使用 ${name} `,
      acpDefaultAgent: 'MindOS',
      acpSelectAgent: '选择 Agent',
      acpChangeAgent: '切换 Agent',
      acpConfigToggle: '配置',
      acpConfigCommand: '命令',
      acpConfigArgs: '参数',
      acpConfigEnv: '环境变量',
      acpConfigEnvAdd: '添加环境变量',
      acpConfigSource: '来源',
      acpConfigSourceBuiltin: '内置',
      acpConfigSourceRegistry: '注册表',
      acpConfigSourceUser: '自定义',
      acpConfigReset: '重置',
      acpConfigSave: '保存',
      acpConfigSaved: '已保存',
      acpConfigPath: '路径',
      networkEmptyTitle: '连接智能体生态',
      networkEmptyDesc: '发现远程 Agent 或浏览 ACP 注册表中的编程智能体。',
      networkDiscoverBtn: '发现 Agent',
      networkBrowseBtn: '浏览注册表',
    },
    plugins: {
      title: '插件',
      active: '已启用',
      noPlugins: '暂无插件',
      core: '核心',
      coreDisabled: '核心插件 — 不可禁用',
      footer: '插件用于自定义文件渲染方式。核心插件不可禁用。',
      ready: '就绪 — 点击打开',
      disabled: '已禁用',
      noFile: '入口文件不存在',
      createFile: '创建 {file} 以激活',
    },
    echo: {
      title: '回响',
      imprintTitle: '印迹',
      imprintDesc: '每日痕迹与历史',
      growthTitle: '生长',
      growthDesc: '你正在推进的方向',
      selfTitle: '自观',
      selfDesc: '指向你的笔记与线索',
    },
    discover: {
      title: '探索',
      useCases: '使用案例',
      useCasesDesc: '动手体验 MindOS 的典型场景',
      pluginMarket: '插件市场',
      pluginMarketDesc: '扩展文件的渲染和编辑方式',
      skillMarket: '技能市场',
      skillMarketDesc: '为 AI 智能体添加新能力',
      spaceTemplates: '空间模板',
      spaceTemplatesDesc: '预设的空间结构，适用于常见工作流场景',
      comingSoon: '即将推出',
      viewAll: '查看所有使用案例',
      tryIt: '试试',
    },
    workflows: {
      title: '流程',
      empty: '还没有流程',
      emptyDesc: '创建第一个流程，用 AI 自动化多步骤任务。',
      newWorkflow: '新建流程',
      nSteps: (n: number) => `${n} 个步骤`,
      parseError: '解析错误',
      name: '名称',
      namePlaceholder: '我的流程',
      template: '模板',
      templateBlank: '空白',
      create: '创建',
      cancel: '取消',
      creating: '创建中...',
      exists: '已存在同名流程',
    },
    im: {
      title: '频道',
      emptyTitle: '尚未配置任何频道',
      emptyDesc: '连接消息平台，让 MindOS 代您发送消息。',
      connected: '已连接',
      notConfigured: '配置',
      statusConnected: '已连接',
      tabStatus: '状态',
      tabConfigure: '配置',
      testSend: '测试发送',
      recipientPlaceholder: '接收者 ID',
      messagePlaceholder: '来自 MindOS 的问候',
      sendTest: '发送测试',
      sentOk: '发送成功',
      sentWithId: (id: string) => `发送成功 · ${id}`,
      failed: '失败',
      saveConfig: '保存',
      saved: '已保存，正在重新连接...',
      cancel: '取消',
      fetchError: '无法加载频道状态。',
      retry: '重试',
      disconnect: '断开连接',
      confirmDisconnect: '确认？',
      showSecret: '显示',
      hideSecret: '隐藏',
      getStarted: '开始配置',
      statsConnected: '已连接',
      statsSupported: '支持平台',
      statsStatus: '状态',
      statsReady: '就绪',
      statsNotConfigured: '未配置',
      platformsTitle: '平台列表',
      backToChannels: '返回频道',
      setupGuide: '配置指南',
      setupMethodsTitle: '连接方式',
      manualSetupTitle: '手动配置',
      openSetupLink: '打开',
      copySetupLink: '复制配置链接',
      copyLink: '复制链接',
      copied: '已复制',
      recommended: '推荐',
      setupAvailable: '可用',
      setupAfterCredentials: '保存凭证后可用',
      setupPlanned: '计划中',
      setupManualOnly: '手动',
      scanQrHint: '扫描这个本地生成的二维码，可在手机上继续操作。二维码里不包含凭证。',
      setupQrAlt: (name: string) => `${name} 二维码`,
      howItWorks: '这个渠道怎么用',
      currentMode: '当前模式',
      notificationsOnly: '仅用于通知',
      twoWayConversation: '双向对话',
      conversationTitle: '对话设置',
      conversationEnable: '允许从飞书发起消息',
      conversationWaiting: '等待飞书验证',
      conversationReady: '可接收并回复',
      conversationDisabled: '未开启',
      conversationNeedsPublicUrl: '需要公网地址',
      conversationNeedsEncryptKey: '需要 Encrypt Key',
      conversationHint: '用户可以私聊机器人；群聊里只有 @机器人 时才会触发回复。',
      conversationConfigHint: '只有在你已经准备好公网地址和 Feishu Encrypt Key 后，才建议开启。',
      conversationWebhookUrl: 'Webhook 地址',
      conversationCopyUrl: '复制地址',
      conversationStatus: 'Webhook 状态',
      conversationReachability: '公网可达性',
      conversationReachabilityHint: '飞书必须能从公网访问这个地址，才能把消息推送到 MindOS。',
      conversationOpenPlatform: '打开飞书开放平台',
      conversationPublicBaseUrl: '公网 Base URL',
      conversationEncryptKey: 'Encrypt Key',
      conversationVerificationToken: 'Verification Token',
      conversationVerificationTokenHint: '用于飞书 webhook challenge 校验。留空会保留已保存的值。',
      conversationSecretPlaceholder: '留空则保留已保存的值',
      conversationGroupMentions: '群聊中仅在被 @ 时回复',
      conversationSaved: '对话设置已保存',
      conversationSave: '保存对话设置',
      feishuOAuthTitle: '飞书授权',
      feishuOAuthHint: '让用户直接从 MindOS 跳转完成飞书授权，不再手动复制用户 ID。',
      feishuOAuthConnected: '已授权为',
      feishuOAuthDisconnected: '尚未授权',
      feishuOAuthAuthorize: '用飞书授权',
      feishuOAuthOpening: '正在打开...',
      feishuOAuthSetupRequired: '请先保存 App ID 和 App Secret。',
      feishuOAuthOpened: '已打开飞书授权页面。',
      workInMindosHint: '与 MindOS 交互请回到 Ask。这个渠道当前用于接收结果更新、提醒和示例消息。',
      thisIsNotChat: '这里是消息投递渠道，不是聊天收件箱。',
      useCasesTitle: '你会收到什么',
      statusSummaryTitle: '状态摘要',
      botLabel: '机器人',
      lastActivity: '最近活动',
      lastRecipient: '最近接收者',
      noActivityYet: '还没有发送过消息',
      noActivityHint: '发送一条示例消息，确认这个渠道已经可用。',
      recentActivity: '最近活动记录',
      sendSample: '发送示例通知',
      sampleHint: '这会通过当前渠道发送一条真实的外发消息。',
      settingsTitle: '设置',
      settingsHint: '在这里维护凭证和渠道设置。',
      showSettings: '展开设置',
      hideSettings: '收起设置',
      latestSuccess: '最近成功',
      latestFailure: '最近失败',
      noRecentActivity: '暂无最近活动',
      notAvailable: '暂无',
      activityTypeTest: '示例消息',
      activityTypeAgent: 'Agent 更新',
      activityTypeManual: '手动发送',
      activityTypeInbound: '收到消息',
      activityTypeReply: '机器人回复',
      showThinking: '展开思考过程',
      hideThinking: '收起思考过程',
      disconnectHint: '移除凭证并断开此平台的连接。',
      editCredentials: '更新凭证',
      editCredentialsHint: '如果需要轮换密钥或修复连接，可直接在这里更新并保存。',
      guideLink: '打开配置指南',
      recipientHint: '请输入平台对应的接收者 ID。',
      savedValuesHint: '已保存的值会保持隐藏。只粘贴你要更新的字段即可。',
      required: '必填',
      saving: '保存中...',
      networkError: '网络错误',
      transportLongHint: '无需公网地址，事件通过 WebSocket 推送。',
      transportWebhookHint: '需要飞书服务器可访问的公网地址。',
      transportLongEncryptHint: '长连接模式下可选。WebSocket 通道无需 webhook 解密配置。',
      expandToSee: '点击展开',
    },
  },
  echoPages: {
    parent: '回响',
    heroKicker: '',
    segmentNavAria: '回响模块',
    snapshotBadge: '本地 · 私密',
    factsHeading: '所见',
    snapshotImprintTitle: '从一行开始',
    snapshotImprintBody:
      '离手即存，自动保存在本机。',
    snapshotGrowthTitle: '意图落在这里',
    snapshotGrowthBody:
      '写一句此刻最想推进的方向。它只保存在本机，可随时间改写。',
    snapshotSelfTitle: '即将推出',
    snapshotSelfBody:
      '随着知识库增长，与你相关的笔记会自动浮现在这里。',
    insightTitle: '见解',
    insightShow: '展开见解',
    insightHide: '收起见解',
    insightHint:
      '基于你在本页写下的内容生成反思。需在设置中启用 AI。',
    generateInsight: '生成见解',
    generateInsightNoAi: '请在 设置 → AI 中启用 AI 功能。',
    insightGenerating: '生成中…',
    insightErrorPrefix: '生成失败：',
    insightRetry: '重试',
    imprintChatLabel: '聊聊这一行',
    growthChatLabel: '探索这个方向',
    selfChatLabel: '发现规律',
    dailyReportTitle: '回响报告',
    dailyReportGenerated: '生成于',
    dailyReportGenerate: '生成回响',
    dailyReportGenerating: '生成中…',
    dailyReportRetry: '重试',
    dailyReportContinueAgent: '聊聊这个',
    reportSnapshotTitle: '动向',
    reportSnapshotFilesEdited: '编辑文件',
    reportSnapshotFilesCreated: '新建文件',
    reportSnapshotSessions: '对话次数',
    reportSnapshotKbGrowth: '知识库增长',
    reportThemesTitle: '主题',
    reportThemeFiles: '个文件',
    reportAlignmentTitle: '对齐度',
    reportAlignmentScore: '对齐度',
    reportAlignmentAligned: '对齐',
    reportAlignmentPartial: '部分对齐',
    reportAlignmentMisaligned: '偏离',
    reportReflectionTitle: '明天思考',
    dailyLineLabel: '今日一行',
    dailyLinePlaceholder: '写下一行轻量的文字…',
    dailySavedNote: '已保存在本机。',
    savedFlash: '已保存',
    dailyAskPrefill: (line: string) =>
      `帮我围绕今天写的内容展开：\n\n${line.trim() || '（还没有写）'}`,
    growthIntentLabel: '当前意图',
    growthIntentPlaceholder: '写下你正在推进的方向…',
    growthSavedNote: '已保存在本机。',
    imprintLead: '写一行今天的思绪。可以生成回响报告，或聊聊来深入。',
    growthLead: '写下你正在推进的方向。随时间回看，观察它如何演变。',
    selfLead: '随着知识库增长，与你相关的笔记会自动浮现在这里。',
  },
  agentsContent: {
    title: '总览',
    subtitle: '查看 Assistant、Agent、Skills & MCP、频道与最近活动。',
    workspacePulse: {
      title: '你的 Agent',
      connected: '已连接',
      detected: '已检测',
      notFound: '未找到',
      risk: '风险',
      enabledSkills: '已启用',
      healthy: '正常',
      needsAttention: (n: number) => `${n} 个问题`,
    },
    navOverview: '总览',
    navAssistant: 'Assistant',
    navAgent: 'Agent',
    navCapabilities: 'Skills & MCP',
    navRuns: '活动日志',
    navPresets: 'Assistant',
    navMcp: 'MCP',
    navSkills: '技能',
    navNetwork: '网络',
    navSessions: '会话',
    navActivity: '活动',
    navChannels: '频道',
    navAriaLabel: 'Agent 工作台分区',
    navBadgeOff: '关闭',
    navBadgeAttention: (n: number) => `${n} 需处理`,
    navHints: {
      overview: '系统模型',
      assistant: '角色档案',
      agent: '执行端点',
      capabilities: 'Skills & MCP',
      runs: '活动日志',
      presets: '角色档案',
      mcp: '协议连接',
      skills: '能力库',
      channels: '消息入口',
      network: '远程委派',
      sessions: '运行中',
      activity: '审计',
    },
    agentSubtitle: '本地 Runtime、本机客户端、远程 ACP、远程 A2A。',
    agentOverview: {
      title: 'Agent 总览',
      description: '快速查看并进入这一页的四类 Agent 入口。',
      localRuntimeMetric: '3 个对话 Runtime',
      localClientsMetric: (n: number) => `${n} 个本机客户端`,
      remoteAcpMetric: 'ACP 注册表',
      remoteA2aMetric: (n: number) => `${n} 个已连接`,
    },
    runtime: {
      title: '本地 Runtime',
      description: 'MindOS、Codex 或 Claude Code，对应 Chat Panel 对话。',
      panelTitle: '本地 Runtime',
      panelDescription: 'MindOS、Codex 或 Claude Code。',
      refresh: '刷新运行状态',
      openChat: '在 Chat Panel 打开',
      openChatWith: (name: string) => `和 ${name} 对话`,
      manageRemote: '管理远程 Agent',
      defaultTag: '默认',
      statusAvailable: '就绪',
      statusChecking: '检测中',
      statusSignedOut: '未登录',
      statusError: '不可用',
      statusMissing: '缺失',
      mindosName: 'MindOS Agent',
      mindosDescription: '知识库、文件、工具与已保存对话。',
      mindosDetail: '使用当前 MindOS 模型设置。',
      codexDescription: '本地编码会话与 Codex threads。',
      claudeDescription: '本地编码会话与 Claude history。',
      nativeAvailableDetail: '本机可用。',
      checkingDetail: (name: string) => `正在检测 ${name}。`,
      missingDetail: (name: string) => `${name} 未被 MindOS 检测到。`,
      unavailableDetail: '运行端点不可用。',
      remoteName: '远程 Agent',
      remoteDescription: 'MindOS 可发现并委派任务的外部 A2A 端点。',
      remoteCount: (n: number) => `已连接 ${n} 个远程 Agent`,
      remoteChecking: '正在发现远程 Agent...',
      remoteEmpty: '暂未连接远程 Agent。',
      tagMindosModel: 'MindOS 模型',
      tagMindosTools: '知识工具',
      tagMindosHistory: '已保存对话',
      tagUserInstalled: '用户本机安装',
      tagLocalSession: '本地会话',
      tagResume: '可继续',
      tagApprovals: '审批',
      tagToolEvents: '工具事件',
      tagSessionList: '会话列表',
      tagRemoteDiscovery: 'A2A 发现',
      tagRemoteDelegation: '远程委派',
      contractModelTitle: '模型归属',
      contractModelDescription: 'MindOS 内置 Agent 的模型选择由 MindOS 管理；Codex 与 Claude Code 保持本地 runtime 自己的模型和登录行为。',
      contractPermissionTitle: '权限归属',
      contractPermissionDescription: 'runtime 支持时，审批提示会在 MindOS 中呈现；最终权限策略仍由本地 runtime 负责执行。',
      contractSessionTitle: '会话归属',
      contractSessionDescription: 'MindOS 保存对话链接；Codex thread、Claude Code session 与远程 Agent 状态仍归各自 runtime 所有。',
    },
    localClients: {
      title: '本机客户端',
      panelTitle: '本机客户端',
      description: '这台机器上检测到的 App、CLI 与配置目录。',
      statusConnected: '已配置',
      statusDetected: '已检测',
      statusNotFound: '未找到',
      groupConnected: '已配置客户端',
      groupDetected: '已检测，待配置',
      groupCustom: '自定义客户端',
      groupNotFound: '本机未检测到',
      addCustomClient: '添加自定义客户端',
      editCustomClient: '编辑',
      removeCustomClient: '移除',
      expandNotFound: '展开列表',
      showMore: (n: number) => `还有 ${n} 个`,
      emptyTitle: '暂未发现本机 Agent 客户端',
      emptyDescription: '安装一个编程 Agent App 或 CLI 后，刷新状态即可让 MindOS 检测到它。',
      projectScope: '项目',
      globalScope: '全局',
      customAgent: '自定义',
      skillCount: (n: number) => `${n} 个技能`,
      noMetadata: '暂无本机元数据',
    },
    acpAgents: {
      title: '远程 ACP',
      description: 'MindOS 可使用的 ACP 兼容编程 Agent。',
    },
    a2aAgents: {
      title: '远程 A2A',
      description: '用于跨 Agent 委派的 A2A 远程 Agent。',
    },
    capabilitiesSubtitle: '管理 MindOS Skills、MCP 连接与 MCP 暴露工具。',
    runsSubtitle: '查看会话、最近运行与 Agent 审计记录。',
    sessionsSubtitle: '当前活跃的 ACP Agent 会话。',
    channelsSubtitle: '连接消息平台，让 MindOS 代您发送消息。',
    activitySubtitle: 'Agent 操作审计日志。',
    activity: {
      loading: '正在加载活动...',
      empty: '暂无 Agent 操作记录。',
      emptyHint: '已连接 Agent 的操作将显示在这里。',
      agentLabel: 'Agent',
    },
    a2aTabTitle: '远程 Agent',
    a2aTabEmptyHint: '发现远程 Agent 以启用跨 Agent 委派。',
    backToOverview: '返回总览',
    na: '暂无',
    status: {
      connected: '已连接',
      detected: '已检测',
      notFound: '未找到',
    },
    presets: {
      title: 'Assistant',
      subtitle: '管理从 MindOS 本机隐藏目录加载的 Assistant 档案。',
      activeLabel: '已启用',
      draftLabel: '草稿',
      plannedLabel: '计划中',
      presetRail: 'Assistant 档案',
      promptTitle: 'Prompt 文件',
      promptHint: '修改会写入当前 Assistant 在本机隐藏 registry 里的 prompt.md。',
      toolsTitle: '工具',
      skillsTitle: '技能',
      contextTitle: '上下文',
      triggersTitle: '运行入口',
      guardrailsTitle: '边界',
      contractTitle: '运行契约',
      launchTitle: '运行',
      launchHint: '从该助手归属的产品入口启动。草稿和计划中的助手会显示，但不会误触发。',
      overviewSection: '总览',
      promptSection: 'Prompt',
      resourcesSection: '资源',
      libraryHint: '先选择 Assistant 档案，再查看它如何路由任务、能触碰什么、Prompt 如何管理。',
      owner: '归属',
      runMode: '运行方式',
      persistence: '持久化',
      modelPolicy: '模型',
      surface: '位置',
      openSurface: '打开入口',
      notRunnable: '暂不可运行',
      saveDraft: '保存 Prompt',
      resetDefault: '重置',
      customDraft: '自定义草稿',
      unsavedDraft: '未保存修改',
      saved: 'Prompt 已保存',
      saveFailed: 'Prompt 保存失败',
      reset: '已放弃修改',
      totalLabel: '总数',
      scheduledLabel: '已调度',
      profileSection: '档案',
      localRoot: '.mindos/assistants',
      localRootHint: '从本机隐藏的 Assistant 文件夹动态加载。',
      loading: '正在加载 Assistant...',
      loadFailed: 'Assistant 加载失败。',
      retry: '重试',
      emptyTitle: '还没有本地 Assistant',
      emptyHint: '创建 .mindos/assistants/<assistant-id>/prompt.md 后会显示在这里。',
      readyLabel: '就绪',
      needsPromptLabel: '缺 Prompt',
      promptReadyLabel: 'Prompt 就绪',
      profileReadyLabel: '档案就绪',
      localFileLabel: '本地文件',
      localOwnerLabel: '本机',
      promptMissingHint: '这个 Assistant 还没有 prompt.md。可以在这里写好并保存到本机文件。',
      saveProfile: '保存档案',
      profileSaved: '档案已保存',
      nameLabel: '名称',
      descLabel: '描述',
      scheduleLabel: '调度',
      scheduleManual: '手动',
      scheduleDaily: '每日',
      scheduleWeekly: '每周',
      roleTitle: '角色',
      inputTitle: '输入',
      outputTitle: '输出',
      boundaryTitle: '边界',
      noResources: 'profile.json 里还没有显式定义 Skills 或 MCP。',
      notDefinedYet: '尚未定义。',
      fileReadyLabel: '已就绪',
      fileMissingLabel: '缺失',
      systemModelDefault: '使用系统模型',
      profileInvalidJson: '档案 JSON 需要修复',
      profileUnreadable: '档案无法读取',
      builtinLabel: '内置',
      customLabel: '自定义',
      protectedLabel: '受保护',
      deleteAssistant: '删除',
      deleteFailed: 'Assistant 删除失败',
      deleted: 'Assistant 已删除',
      runningLabel: '运行中',
      runFailed: '运行失败',
      runCompleted: '运行完成',
      preferredAgentLabel: '默认 Agent',
      mcpTitle: 'MCP',
      searchPlaceholder: '搜索 Assistant...',
      filterAll: '全部 Assistant',
      filterBuiltin: '内置',
      filterCustom: '自定义',
      filterNeedsPrompt: '缺 Prompt',
      newAssistant: '新建 Assistant',
      createAssistant: '创建',
      cancel: '取消',
      assistantIdLabel: 'Assistant ID',
      noMatchesTitle: '没有匹配的 Assistant',
      noMatchesHint: '换一个名称、ID、技能或 MCP 条件试试。',
      inspectorTitle: '检查器',
      recentRunLabel: '最近运行',
      promptPlaceholder: (name: string) => `# ${name}\n\n## Role\n\n描述这个 Assistant 应该如何帮助你。`,
    },
    overview: {
      connected: '已连接',
      detected: '已检测',
      notFound: '未找到',
      riskQueue: '待处理',
      noRisk: '一切正常，暂无问题。',
      usagePulse: '全部 Agent',
      nextAction: '建议操作',
      nextActionHint: '优先重连已检测的 Agent，再启用所需技能。',
      riskLevelError: '异常',
      riskLevelWarn: '注意',
      na: '暂无',
      colAgent: 'Agent',
      colStatus: '状态',
      colMcp: 'MCP',
      colSkills: '技能',
      colMode: '模式',
      colRuntime: '运行时',
      pulseMcp: 'MCP',
      pulseTools: '工具数',
      mcpOffline: '离线',
      toolsUnit: (n: number) => `${n} 个工具`,
      profilesUnit: (n: number) => `${n} 个档案`,
      runtimeEndpointsUnit: (n: number) => `${n} 个端点`,
      entryPointsUnit: (n: number) => `${n} 个入口`,
      enabledUnit: (n: number) => `${n} 已启用`,
      agentCount: (n: number) => `${n} 个 Agent`,
      runtimeActive: '活跃',
      riskMcpStopped: 'MCP 服务未运行。',
      riskDetected: (n: number) => `${n} 个已检测 Agent 待配置。`,
      riskSkillsDisabled: '所有技能已禁用。',
      systemModelTitle: '系统模型',
      systemModelDescription: 'Assistant 档案负责把任务路由到执行 Agent；Agent 通过 Skills & MCP 调用能力。',
      systemFlowTitle: '执行链路',
      systemReadinessTitle: '就绪度',
      systemReadinessMeta: (passed: number, total: number) => `${passed}/${total} 项检查通过`,
      systemSignalsTitle: '关键信号',
      assistantLabel: 'Assistant',
      assistantDescription: '角色档案、职责与产品入口',
      agentLabel: 'Agent',
      agentDescription: 'MindOS Agent、Codex、Claude Code、Remote Agent',
      capabilitiesLabel: 'Skills & MCP',
      capabilitiesDescription: '技能、MCP 连接与暴露工具',
      runsLabel: '运行记录',
      runsDescription: '会话、运行历史与审计',
      channelsLabel: '频道',
      channelsDescription: '消息入口',
      flowSummary: 'Assistant 决定谁来处理；Agent 负责执行；Skills & MCP 提供工具；频道交付结果。',
      statusTitle: '状态',
      availableLabel: '可用',
      readyLabel: '就绪',
      needsAttentionLabel: (n: number) => `${n} 需处理`,
      assistantStatusMeta: (n: number) => `${n} 个档案可用于产品界面`,
      agentStatusMeta: (connected: number, detected: number) => `${connected} 已连接，${detected} 待配置`,
      capabilitiesStatusMeta: (tools: number, skills: number) => `${tools} 个 MCP 工具，${skills} 个技能已启用`,
      runsStatusValue: '可查看',
      runsStatusMeta: '会话与审计记录可随时检查。',
      channelsStatusValue: '可配置',
      channelsStatusMeta: 'Telegram、Slack、飞书、Discord 等入口在这里连接。',
      nextActionsTitle: '下一步',
      nextActionsHealthyTitle: '就绪',
      nextActionsHealthyHint: '系统已就绪。需要时可检查路由、频道或活动日志。',
      actionMcpStoppedTitle: '修复 MCP 连接',
      actionMcpStoppedHint: 'MCP 未运行时，Agent 无法调用 MindOS 工具。',
      actionDetectedTitle: (n: number) => `配置 ${n} 个已检测 Agent`,
      actionDetectedHint: '完成本机已发现客户端的配置。',
      actionSkillsDisabledTitle: '启用所需能力',
      actionSkillsDisabledHint: '先启用技能，再分配给 Agent 使用。',
      actionConfigureAssistantTitle: '检查 Assistant 路由',
      actionConfigureAssistantHint: '确认每个档案优先交给哪个 Agent。',
      actionReviewRunsTitle: '查看最近运行',
      actionReviewRunsHint: '检查会话和审计记录，发现异常行为。',
      actionOpen: '打开',
      viewAllSignals: '查看全部信号',
      recentActivity: '最近运行',
      viewAll: '查看全部',
      showLess: '收起',
      addCustomAgent: '添加自定义 Agent',
      addCustomAgentTitle: '添加自定义 Agent',
      editCustomAgentTitle: (name: string) => `编辑 ${name}`,
      customAgentName: 'Agent 名称',
      customAgentNamePlaceholder: '例如 QCLaw、WorkBuddy',
      customAgentDir: '配置目录',
      customAgentDirPlaceholder: '~/.qclaw/',
      customAgentDirHint: '常见路径：~/.xxx/ 或 ~/Library/Application Support/',
      customAgentKeyPreview: (key: string) => `标识符：${key}`,
      customAgentContinue: '继续',
      customAgentDetecting: '检测中...',
      customAgentDirFound: '目录已找到',
      customAgentDirNotFound: '目录尚未创建，安装后将自动检测',
      customAgentDetectTimeout: '检测超时，使用默认配置',
      customAgentDetectedTitle: '检测到的配置',
      customAgentDefaultTitle: '默认配置',
      customAgentConfigLabel: 'MCP 配置',
      customAgentFormatLabel: '格式',
      customAgentTransportLabel: '传输协议',
      customAgentSkillsLabel: '技能',
      customAgentSkillsFound: (n: number) => `发现 ${n} 个技能`,
      customAgentSkillsNone: '未检测到',
      customAgentSkillDir: '技能目录',
      customAgentSkillDirHint: '此 Agent 安装技能的目录',
      customAgentSkillDirPlaceholder: '~/.xxx/skills/',
      customAgentCustomize: '自定义配置',
      customAgentAdd: '添加 Agent',
      customAgentAdding: '添加中...',
      customAgentSave: '保存更改',
      customAgentSaving: '保存中...',
      customAgentRetry: '重试',
      customAgentAdded: (name: string) => `${name} 已添加`,
      customAgentUpdated: (name: string) => `${name} 已更新`,
      customAgentRemoved: (name: string) => `${name} 已移除`,
      customAgentRemoveTitle: (name: string) => `移除「${name}」？`,
      customAgentRemoveMessage: '这将从 MindOS 中移除该 Agent，不会删除磁盘上的任何文件。',
      customAgentRemoveConfirm: '移除',
      customAgentConfigPath: 'MCP 配置文件路径',
      customAgentConfigKey: '配置键名',
      customAgentFormat: '格式',
      customAgentTransport: '传输协议',
      customAgentProjectConfig: '项目配置路径（可选）',
      customAgentCliBinary: 'CLI 命令名（可选）',
      customAgentCliBinaryPlaceholder: '例如 qclaw',
      customAgentEdit: '编辑',
      customAgentRemove: '移除',
      customAgentCancel: '取消',
      customAgentNetworkError: '网络错误，请重试。',
      customAgentFailedSave: '保存失败',
      customAgentFailedRemove: '移除失败',
      customAgentKeyConflict: (key: string) => `已存在标识为 "${key}" 的 Agent`,
      customAgentBuiltinConflict: (name: string) => `与保留 Agent "${name}" 冲突`,
    },
    mcp: {
      title: 'MCP 连接',
      refresh: '刷新',
      connectionGraph: '跨 Agent 服务器连接',
      tabs: {
        manage: '管理',
        topology: '图谱',
        byAgent: '按 Agent 查看',
        byServer: '按 MCP 服务器查看',
      },
      searchPlaceholder: '搜索 Agent...',
      installMindos: '安装 MindOS MCP',
      installed: '已安装',
      mcpServerLabel: 'MCP 服务器',
      searchServersPlaceholder: '搜索 MCP 服务器...',
      serverAgentCount: (n: number) => `${n} 个 Agent`,
      emptyState: '当前筛选条件下没有匹配的 Agent。',
      resultCount: (n: number) => `${n} 个 Agent`,
      filteredSummaryTitle: '筛选结果状态摘要',
      filteredConnected: (n: number) => `已连接：${n}`,
      filteredDetected: (n: number) => `已检测：${n}`,
      filteredNotFound: (n: number) => `未找到：${n}`,
      crossAgentServersTitle: 'MCP 服务器',
      crossAgentServersEmpty: '暂未检测到 MCP 服务器。',
      crossAgentServerAgents: (names: string) => `使用者：${names}`,
      configVisibilityTitle: '配置信息',
      hiddenRootDetected: (n: number, total: number) => `隐藏目录：${n}/${total}`,
      runtimeSignalDetected: (n: number, total: number) => `运行信号：${n}/${total}`,
      riskQueueTitle: '待处理',
      riskMcpStopped: 'MCP 服务未运行。',
      riskDetected: (n: number) => `${n} 个已检测 Agent 待配置。`,
      riskNotFound: (n: number) => `${n} 个 Agent 未在本机检测到。`,
      riskSkillsDisabled: '所有技能已禁用。',
      bulkReconnectFiltered: '全部重连',
      bulkRunning: '正在批量重连...',
      bulkSummary: (ok: number, failed: number) => `重连成功 ${ok} 个，失败 ${failed} 个。`,
      transportFilters: {
        all: '全部传输',
        stdio: 'stdio',
        http: 'http',
        other: '其他',
      },
      filters: {
        all: '全部',
        connected: '已连接',
        detected: '已检测',
        notFound: '未找到',
      },
      table: {
        agent: 'Agent',
        status: '状态',
        transport: '传输',
        actions: '操作',
      },
      actions: {
        copySnippet: '复制配置',
        copied: '已复制',
        testConnection: '测试连接',
        reconnect: '重连',
      },
      addAgent: '添加',
      removeFromServer: '移除',
      confirmRemoveTitle: '从服务器移除？',
      confirmRemoveMessage: (agent: string, server: string) => `将"${agent}"从"${server}"移除？配置文件将自动更新。`,
      cancel: '取消',
      noAvailableAgents: '所有 Agent 均已添加。',
      manualRemoveHint: '已标记移除，请编辑 Agent 配置文件完成操作。',
      removeSuccess: '已移除，重启 Agent 后生效。',
      removeFailed: '移除失败，请手动编辑配置文件。',
      reconnectAllInServer: '全部重连',
      reconnectAllRunning: '正在重连...',
      reconnectAllDone: (ok: number, failed: number) => `完成：${ok} 已重连${failed > 0 ? `，${failed} 失败` : ''}。`,
      serverTransport: (t: string) => `传输：${t}`,
      mcpDisabledMessage: 'MCP 模式未启用。',
      mcpDisabledHint: '请在设置 → 连接中启用，以使用 MCP 智能体。',
    },
    skills: {
      title: '技能',
      summaryTitle: '技能状态',
      summaryEnabled: (n: number) => `已启用：${n}`,
      summaryDisabled: (n: number) => `已禁用：${n}`,
      summaryAttention: (n: number) => `需关注：${n}`,
      crossAgentSkillsTitle: '已安装技能',
      crossAgentSkillsEmpty: '暂未检测到已安装技能。',
      crossAgentSkillAgents: (names: string) => `安装于：${names}`,
      capabilityGroups: '跨 Agent 技能管理',
      registrySummaryTitle: '技能注册表',
      registryUniversal: (n: number) => `通用：${n}`,
      registryAdditional: (n: number) => `附加：${n}`,
      registryUnsupported: (n: number) => `不支持：${n}`,
      registryHiddenRoots: (n: number, total: number) => `隐藏目录：${n}/${total}`,
      tabs: {
        manage: '管理',
        matrix: '矩阵',
        bySkill: '按技能查看',
        byAgent: '按 Agent 查看',
      },
      searchPlaceholder: '搜索技能...',
      agentSkillMode: '技能模式',
      agentMcpServers: 'MCP 服务器',
      agentNativeSkills: '原生技能',
      agentMindosSkills: 'MindOS 技能',
      noAgentsYet: '尚未检测到任何 Agent。',
      moreSkills: (n: number) => `另有 ${n} 个`,
      sourceAll: '全部',
      sourceBuiltin: '内置',
      sourceUser: '自定义',
      sourceNative: '原生',
      availabilityGlobal: '全局可用',
      availabilityLinked: '已链接',
      availabilityNativePrivate: '原生私有',
      summaryNative: (n: number) => `原生：${n}`,
      statusAll: '全部状态',
      statusEnabled: '已启用',
      statusDisabled: '已禁用',
      statusAttention: '需关注',
      capabilityAll: '全部能力',
      bulkEnableFiltered: '全部启用',
      bulkDisableFiltered: '全部停用',
      bulkRunning: '正在应用变更...',
      bulkNoChanges: '当前无需变更。',
      bulkAllSucceeded: (n: number) => `已更新 ${n} 个技能。`,
      bulkPartialFailed: (ok: number, failed: number) => `已更新 ${ok} 个，失败 ${failed} 个。`,
      resultCount: (n: number) => `${n} 个技能`,
      matrixAgentFocusLabel: 'Agent 聚焦',
      matrixAgentFocusAll: '全部 Agent',
      matrixColumnSkill: '技能',
      matrixEnabled: '已启用',
      matrixDisabled: '已禁用',
      matrixUnsupported: '不支持',
      matrixNoAgents: '当前无可用于矩阵的 Agent。',
      noSkillsMatchFilter: '当前筛选条件下无技能。',
      matrixEmpty: '当前筛选条件下无技能。',
      addAgentToSkill: '添加',
      removeAgentFromSkill: '移除',
      confirmRemoveAgentTitle: '从技能移除？',
      confirmRemoveAgentMessage: (agent: string, skill: string) => `将"${agent}"从"${skill}"移除？需编辑 Agent 配置文件完成操作。`,
      cancelSkillAction: '取消',
      noAvailableAgentsForSkill: '所有 Agent 均已拥有此技能。',
      manualSkillHint: '已标记，请编辑 Agent 配置文件完成操作。',
      linkSkillSuccess: (skill: string, agent: string) => `已将"${skill}"链接到 ${agent}。`,
      linkSkillFailed: (skill: string, agent: string, reason: string) => `链接"${skill}"到 ${agent} 失败：${reason}`,
      linkSkillUnsupported: '该 Agent 暂不能自动接收技能。',
      nativeSkillSourceMissing: '缺少原生技能来源路径。',
      skillDescription: '描述',
      skillNoDescription: '暂无描述。',
      skillDeleteAction: '删除',
      confirmDeleteSkillTitle: '删除技能？',
      confirmDeleteSkillMessage: (name: string) => `确认永久删除技能"${name}"？此操作不可撤销。`,
      skillDeleted: '技能已删除。',
      skillDeleteFailed: '删除技能失败。',
      copyInstallCmd: '复制安装命令',
      installCmdCopied: '已复制！',
      skillAgentCount: (n: number) => `${n} 个 Agent`,
      quickStatsMcp: (n: number) => `${n} MCP`,
      quickStatsSkills: (n: number) => `${n} 技能`,
      showAllNative: (n: number) => `展开全部 ${n} 项`,
      collapseNative: '收起',
      emptyGroup: '该分组暂无技能。',
      groupLabels: {
        research: '研究',
        coding: '编码',
        docs: '文档',
        ops: '运维',
        memory: '记忆',
      },
      skillPopover: {
        close: '关闭',
        source: '来源',
        sourceBuiltin: '内置',
        sourceUser: '自定义',
        sourceNative: '原生',
        capability: '能力类型',
        path: '文件路径',
        enabled: '已启用',
        disabled: '已禁用',
        agents: 'Agent',
        noAgents: '暂无 Agent 拥有此技能。',
        content: '技能内容',
        loading: '加载中…',
        loadFailed: '加载技能内容失败。',
        retry: '重试',
        copyContent: '复制',
        copied: '已复制！',
        noDescription: '暂无描述。',
        deleteSkill: '删除',
        confirmDeleteTitle: '删除技能？',
        confirmDeleteMessage: (name: string) => `确认永久删除技能"${name}"？此操作不可撤销。`,
        confirmDeleteAction: '删除',
        cancelAction: '取消',
        deleted: '技能已删除。',
        deleteFailed: '删除技能失败。',
      },
    },
    detail: {
      healthStripTitle: '状态',
      healthConnected: '已连接',
      healthInstalled: 'MCP 已安装',
      healthRuntimeSignals: '运行信号',
      healthConfiguredServers: '已配置服务器',
      healthInstalledSkills: '原生已安装技能',
      identity: '身份',
      connection: '连接',
      capabilities: '能力画像',
      skillAssignments: '技能分配',
      runtimeSignals: '运行与配置信号',
      recentActivity: '最近活动',
      spaceReach: '空间触达',
      agentKey: 'Agent 标识',
      status: '状态',
      transport: '传输',
      endpoint: '端点',
      port: '端口',
      auth: '认证',
      authConfigured: '已配置',
      authMissing: '未配置',
      projectScope: '项目范围',
      globalScope: '全局范围',
      format: '配置格式',
      skillMode: '技能模式',
      hiddenRoot: '隐藏目录路径',
      hiddenRootPresent: '隐藏目录',
      conversationSignal: '对话',
      usageSignal: '用量',
      lastActivityAt: '最近活跃',
      skillsAll: '全部技能',
      skillsEnabled: '已启用技能',
      skillsSourceBuiltin: '内置',
      skillsSourceUser: '自定义',
      skillsSearchPlaceholder: '搜索全部已配置技能...',
      skillsFilterAll: '全部',
      skillsFilterBuiltin: '内置',
      skillsFilterUser: '自定义',
      skillEnable: '启用',
      skillDisable: '禁用',
      skillLink: '链接',
      skillAlreadyLinked: '已链接',
      skillBoundaryGlobal: '全局可用',
      skillBoundaryLinked: '已链接',
      skillBoundaryNativePrivate: '原生私有',
      skillNativePrivateHint: '原生技能默认只属于当前 Agent；链接后其他 Agent 才能使用。',
      skillLinkSuccess: (skill: string, agent: string) => `已将"${skill}"链接到 ${agent}。`,
      skillLinkFailed: (skill: string, agent: string, reason: string) => `链接"${skill}"到 ${agent} 失败：${reason}`,
      skillReceiveUnsupported: '该 Agent 暂不能自动接收技能。',
      skillEdit: '编辑',
      skillSave: '保存',
      skillCancel: '取消',
      skillActionLoading: '处理中...',
      skillReadFailed: '读取技能内容失败。',
      skillSaveFailed: '保存技能内容失败。',
      mcpManagement: 'MCP 管理',
      mcpInstalled: '已安装',
      mcpScope: '当前范围',
      mcpConfigPath: '配置路径',
      mcpTargetScope: '目标范围',
      mcpTargetTransport: '目标传输',
      mcpScopeProject: '项目',
      mcpScopeGlobal: '全局',
      mcpCopySnippet: '复制片段',
      mcpCopied: '已复制',
      mcpRefresh: '刷新状态',
      mcpReconnect: '应用 MCP 配置',
      mcpApplying: '正在应用 MCP 配置...',
      mcpApplySuccess: 'MCP 配置已应用。',
      mcpApplyFailed: '应用 MCP 配置失败。',
      nativeInstalledSkills: '已安装技能',
      nativeInstalledSkillsCount: (n: number) => `检测到 ${n} 个`,
      nativeInstalledSkillsEmpty: '暂未检测到已安装技能。',
      nativeInstalledSkillsMore: (n: number) => `另有 ${n} 个`,
      configuredMcpServers: 'MCP 服务器',
      configuredMcpServersCount: (n: number) => `检测到 ${n} 个`,
      configuredMcpServersEmpty: '暂未配置 MCP 服务器。',
      configuredMcpServersMore: (n: number) => `另有 ${n} 个`,
      yes: '是',
      no: '否',
      noSkills: '暂无启用技能。',
      noActivity: '暂无活动记录。',
      noSpaceReach: '暂无空间触达数据。',
      skillDelete: '删除',
      skillDeleteConfirm: (name: string) => `确认删除技能"${name}"？此操作不可撤销。`,
      skillDeleteSuccess: '技能已删除。',
      skillDeleteFailed: '删除技能失败。',
      mcpServerAdd: '添加 MCP 服务器',
      mcpServerRemove: '移除',
      mcpServerRemoveConfirm: (name: string) => `从该 Agent 移除"${name}"？需编辑配置文件完成操作。`,
      mcpServerHint: '已标记，请编辑 Agent 配置文件完成操作。',
      mcpReconnectAll: '全部重连',
      mcpReconnectAllRunning: '正在重连...',
      mcpReconnectAllDone: (ok: number, failed: number) => `已重连 ${ok}${failed > 0 ? `，失败 ${failed}` : ''}。`,
      // ─── 运行与诊断 ───
      runtimeDiagTitle: '运行与诊断',
      runtimePing: '连通测试',
      runtimePinging: '测试中...',
      runtimePingOk: (ms: number) => `可达 (${ms}ms)`,
      runtimePingFail: '不可达',
      runtimeUptime: '运行时长',
      runtimePid: '进程',
      runtimeMemory: '内存',
      runtimeVersion: '版本',
      runtimeStartedAt: '启动于',
      runtimeNoData: '暂无运行数据。',
      // ─── 环境与权限 ───
      envPermTitle: '环境与权限',
      envVars: '环境变量',
      envVarsCount: (n: number) => `已配置 ${n} 个`,
      envVarsEmpty: '暂无自定义环境变量。',
      envScope: '作用域',
      envReadOnly: '只读访问',
      envWriteAccess: '写入访问',
      envFileAccess: '文件访问',
      envNetworkAccess: '网络访问',
      envAllowed: '允许',
      envRestricted: '受限',
      // ─── 活动与用量 ───
      activityTitle: '活动与用量',
      activityTotal: '总调用次数',
      activityLast7d: '近 7 天',
      activityLastInvocation: '最近调用',
      activityTokensUsed: '消耗 Tokens',
      activityAvgLatency: '平均延迟',
      activityNoData: '暂无活动记录。',
      knowledgeInteraction: '知识交互',
      knowledgeNoData: '暂无交互记录。Agent 开始使用你的知识库后，活动将显示在这里。',
      recentOps: '近期操作',
      statTotalCalls: '总调用',
      statFilesTouched: '涉及文件',
      statReadWrite: '读 / 写',
      statHealth: '健康度',
      viewFullLog: '查看完整日志',
      showLess: '收起',
    },
    detailSubtitle: '',
    detailNotFound: '未找到该 Agent，可能已移除或重命名。',
    detailNotFoundHint: '该 Agent 可能已断开连接或配置文件已移动。请尝试重启 Agent 或检查 MCP 配置。',
    detailNotFoundSuggestion: '已连接的 Agent：',
  },
};
