@geminilight/mindos 0.5.63 → 0.5.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +4 -0
  2. package/README_zh.md +4 -0
  3. package/app/app/api/ask/route.ts +12 -0
  4. package/app/app/api/changes/route.ts +7 -1
  5. package/app/app/api/file/route.ts +9 -0
  6. package/app/app/api/mcp/agents/route.ts +27 -1
  7. package/app/app/api/mcp/install-skill/route.ts +9 -24
  8. package/app/app/api/skills/route.ts +18 -2
  9. package/app/app/api/tree-version/route.ts +8 -0
  10. package/app/app/layout.tsx +1 -0
  11. package/app/app/page.tsx +1 -2
  12. package/app/app/view/[...path]/ViewPageClient.tsx +0 -1
  13. package/app/components/ActivityBar.tsx +2 -2
  14. package/app/components/Backlinks.tsx +5 -5
  15. package/app/components/CreateSpaceModal.tsx +3 -2
  16. package/app/components/DirPicker.tsx +1 -1
  17. package/app/components/DirView.tsx +2 -3
  18. package/app/components/EditorWrapper.tsx +3 -3
  19. package/app/components/FileTree.tsx +25 -10
  20. package/app/components/GuideCard.tsx +4 -4
  21. package/app/components/HomeContent.tsx +44 -14
  22. package/app/components/MarkdownView.tsx +2 -2
  23. package/app/components/OnboardingView.tsx +1 -1
  24. package/app/components/Panel.tsx +1 -1
  25. package/app/components/RightAgentDetailPanel.tsx +2 -1
  26. package/app/components/RightAskPanel.tsx +1 -1
  27. package/app/components/SearchModal.tsx +10 -2
  28. package/app/components/SidebarLayout.tsx +36 -10
  29. package/app/components/ThemeToggle.tsx +1 -1
  30. package/app/components/agents/AgentDetailContent.tsx +454 -59
  31. package/app/components/agents/AgentsContentPage.tsx +89 -20
  32. package/app/components/agents/AgentsMcpSection.tsx +513 -85
  33. package/app/components/agents/AgentsOverviewSection.tsx +418 -59
  34. package/app/components/agents/AgentsPrimitives.tsx +335 -0
  35. package/app/components/agents/AgentsSkillsSection.tsx +746 -105
  36. package/app/components/agents/SkillDetailPopover.tsx +416 -0
  37. package/app/components/agents/agents-content-model.ts +308 -10
  38. package/app/components/ask/AskContent.tsx +34 -5
  39. package/app/components/ask/FileChip.tsx +1 -0
  40. package/app/components/ask/MentionPopover.tsx +13 -1
  41. package/app/components/ask/MessageList.tsx +5 -7
  42. package/app/components/ask/ToolCallBlock.tsx +4 -4
  43. package/app/components/changes/ChangesBanner.tsx +89 -13
  44. package/app/components/changes/ChangesContentPage.tsx +134 -51
  45. package/app/components/echo/EchoHero.tsx +10 -24
  46. package/app/components/echo/EchoInsightCollapsible.tsx +52 -43
  47. package/app/components/echo/EchoPageSections.tsx +13 -9
  48. package/app/components/echo/EchoSegmentNav.tsx +14 -11
  49. package/app/components/echo/EchoSegmentPageClient.tsx +64 -43
  50. package/app/components/explore/ExploreContent.tsx +3 -7
  51. package/app/components/explore/UseCaseCard.tsx +4 -15
  52. package/app/components/panels/AgentsPanel.tsx +22 -128
  53. package/app/components/panels/AgentsPanelAgentDetail.tsx +7 -6
  54. package/app/components/panels/AgentsPanelAgentGroups.tsx +8 -13
  55. package/app/components/panels/AgentsPanelAgentListRow.tsx +39 -16
  56. package/app/components/panels/AgentsPanelHubNav.tsx +12 -12
  57. package/app/components/panels/EchoPanel.tsx +8 -10
  58. package/app/components/panels/PanelNavRow.tsx +9 -2
  59. package/app/components/panels/PluginsPanel.tsx +5 -5
  60. package/app/components/renderers/agent-inspector/AgentInspectorRenderer.tsx +30 -8
  61. package/app/components/renderers/agent-inspector/manifest.ts +5 -3
  62. package/app/components/renderers/config/manifest.ts +1 -0
  63. package/app/components/renderers/csv/manifest.ts +1 -0
  64. package/app/components/renderers/todo/manifest.ts +1 -0
  65. package/app/components/settings/AiTab.tsx +3 -3
  66. package/app/components/settings/AppearanceTab.tsx +2 -2
  67. package/app/components/settings/KnowledgeTab.tsx +3 -3
  68. package/app/components/settings/McpAgentInstall.tsx +3 -6
  69. package/app/components/settings/McpSkillCreateForm.tsx +2 -3
  70. package/app/components/settings/McpSkillRow.tsx +2 -3
  71. package/app/components/settings/McpSkillsSection.tsx +2 -2
  72. package/app/components/settings/McpTab.tsx +12 -13
  73. package/app/components/settings/MonitoringTab.tsx +13 -13
  74. package/app/components/settings/PluginsTab.tsx +6 -5
  75. package/app/components/settings/Primitives.tsx +3 -4
  76. package/app/components/settings/SettingsContent.tsx +3 -3
  77. package/app/components/settings/SyncTab.tsx +11 -17
  78. package/app/components/settings/UpdateTab.tsx +18 -21
  79. package/app/components/settings/types.ts +14 -0
  80. package/app/components/setup/StepKB.tsx +1 -1
  81. package/app/hooks/useMcpData.tsx +7 -4
  82. package/app/hooks/useMention.ts +25 -8
  83. package/app/lib/agent/log.ts +15 -18
  84. package/app/lib/agent/stream-consumer.ts +3 -0
  85. package/app/lib/agent/to-agent-messages.ts +6 -4
  86. package/app/lib/core/agent-audit-log.ts +280 -0
  87. package/app/lib/core/content-changes.ts +148 -8
  88. package/app/lib/core/index.ts +11 -0
  89. package/app/lib/fs.ts +16 -1
  90. package/app/lib/i18n-en.ts +317 -36
  91. package/app/lib/i18n-zh.ts +316 -35
  92. package/app/lib/mcp-agents.ts +273 -2
  93. package/app/lib/renderers/index.ts +1 -2
  94. package/app/lib/renderers/registry.ts +10 -0
  95. package/app/lib/types.ts +2 -0
  96. package/app/next-env.d.ts +1 -1
  97. package/bin/lib/mcp-agents.js +38 -13
  98. package/package.json +1 -1
  99. package/scripts/migrate-agent-audit-log.js +170 -0
  100. package/scripts/migrate-agent-diff.js +146 -0
  101. package/scripts/setup.js +12 -17
  102. package/skills/plugin-core-builtin-migration/SKILL.md +178 -0
  103. package/app/components/renderers/diff/DiffRenderer.tsx +0 -311
  104. package/app/components/renderers/diff/manifest.ts +0 -14
@@ -57,6 +57,9 @@ export const zh = {
57
57
  cancelCreate: '取消',
58
58
  continueEditing: '继续编辑',
59
59
  newNote: '新建笔记',
60
+ builtinFeatures: '内建能力',
61
+ builtinActive: '已启用',
62
+ builtinInactive: '未激活',
60
63
  plugins: '插件扩展',
61
64
  showMore: '查看更多',
62
65
  showLess: '收起',
@@ -149,6 +152,41 @@ export const zh = {
149
152
  noSessions: '暂无历史对话。',
150
153
  draftingHint: 'AI 仍在执行,你可以先输入下一步。',
151
154
  },
155
+ changes: {
156
+ unreadBanner: (n: number) => `${n} 条内容变更未读`,
157
+ reviewNow: '立即查看',
158
+ dismiss: '关闭提醒',
159
+ title: '内容变更',
160
+ subtitle: '集中查看用户与 Agent 的最近编辑记录。',
161
+ eventsCount: (n: number) => `${n} 条事件`,
162
+ unreadCount: (n: number) => `${n} 条未读`,
163
+ refresh: '刷新',
164
+ markSeen: '标记已读',
165
+ markAllRead: '全部已读',
166
+ filters: {
167
+ filePath: '文件路径',
168
+ filePathPlaceholder: '例如:Projects/plan.md',
169
+ source: 'Agents(来源)',
170
+ operation: 'Tools(操作)',
171
+ operationAll: '全部操作',
172
+ keyword: '关键词',
173
+ keywordPlaceholder: '摘要 / 操作 / 路径',
174
+ all: '全部',
175
+ agent: 'Agent',
176
+ user: '用户',
177
+ system: '系统',
178
+ },
179
+ loading: '正在加载变更...',
180
+ empty: '暂无内容变更。',
181
+ open: '打开',
182
+ unchangedLines: (n: number) => `... ${n} 行未变更 ...`,
183
+ relativeTime: {
184
+ justNow: '刚刚',
185
+ minutesAgo: (n: number) => `${n} 分钟前`,
186
+ hoursAgo: (n: number) => `${n} 小时前`,
187
+ daysAgo: (n: number) => `${n} 天前`,
188
+ },
189
+ },
152
190
  panels: {
153
191
  agents: {
154
192
  title: '智能体',
@@ -164,9 +202,11 @@ export const zh = {
164
202
  noAgents: '未检测到智能体。',
165
203
  autoRefresh: '每 30 秒自动刷新',
166
204
  connect: '连接',
167
- openDashboard: '仪表盘',
168
205
  installing: '安装中...',
169
- install: (name: string) => `安装 ${name}`,
206
+ install: '安装',
207
+ installSuccess: '已安装',
208
+ installFailed: '安装失败',
209
+ retryInstall: '重试',
170
210
  // Snippet section
171
211
  copyConfig: '复制配置',
172
212
  copied: '已复制!',
@@ -207,11 +247,16 @@ export const zh = {
207
247
  },
208
248
  echo: {
209
249
  title: '回响',
210
- aboutYouTitle: '与你有关',
250
+ aboutYouTitle: '关于你',
251
+ aboutYouDesc: '指向你的笔记与线索',
211
252
  continuedTitle: '未完待续',
212
- dailyEchoTitle: '每日回响',
213
- pastYouTitle: '历史的你',
214
- intentGrowthTitle: '心向生长',
253
+ continuedDesc: '草稿与未收口的事',
254
+ dailyEchoTitle: '今日',
255
+ dailyDesc: '一行就够',
256
+ pastYouTitle: '往昔',
257
+ pastYouDesc: '瞥见另一个时间点的自己',
258
+ intentGrowthTitle: '生长',
259
+ growthDesc: '你正在推进的方向',
215
260
  },
216
261
  discover: {
217
262
  title: '探索',
@@ -229,27 +274,26 @@ export const zh = {
229
274
  },
230
275
  },
231
276
  echoPages: {
232
- breadcrumbNav: '面包屑导航',
233
277
  parent: '回响',
234
278
  heroKicker: '回响',
235
279
  segmentNavAria: '回响模块',
236
280
  snapshotBadge: '本地 · 私密',
237
281
  factsHeading: '所见',
238
- snapshotAboutYouTitle: '线索会住在这里',
282
+ snapshotAboutYouTitle: '线索在此汇聚',
239
283
  snapshotAboutYouBody:
240
- '以后这里会列出路径、链接或标题里「绕回你」的笔记,点开即读。文库聚合尚在接入;若想现在就着「与我相关」整理或深聊,可用下方按钮打开 MindOS Agent。',
284
+ '路径、链接或标题指向你的笔记会浮现在这里,点击即可打开编辑。现在也可以用下方按钮打开 Agent 聊聊。',
241
285
  snapshotContinuedTitle: '草稿与未收口',
242
286
  snapshotContinuedBody:
243
- '这里将汇集未命名草稿、写到一半的稿,以及待办里尚未勾上的项。列表能力正在接入;两栏结构先帮你建立心理预期。',
244
- snapshotDailyTitle: '今天,从一小行开始',
287
+ '未命名草稿、写到一半的稿、待办里尚未勾上的项,接入文库后会汇集在此。',
288
+ snapshotDailyTitle: '从一行开始',
245
289
  snapshotDailyBody:
246
- '下方「今日一行」写在浏览器本机,离手即存。回响不必写成文章——一行就够,需要展开时再找 Agent。',
247
- snapshotPastYouTitle: '随机一瞥往日',
290
+ '离手即存,写在浏览器本机。一行就够——想展开时再找 Agent。',
291
+ snapshotPastYouTitle: '温和地一瞥',
248
292
  snapshotPastYouBody:
249
- '我们会从时间轴里温和地抽一篇旧笔记的片段,让你看见那个时间点的自己:不是对比工具,只是一眼。抽样能力随后就到。',
293
+ '从时间轴里随机浮出一篇旧笔记片段,让你瞥见那时的自己。即将上线。',
250
294
  snapshotGrowthTitle: '意图落在这里',
251
295
  snapshotGrowthBody:
252
- '下方可写一句「此刻最想推进的方向」。它只保存在本机,可随时间改写;日后可在此看见缓慢的变化。',
296
+ '写一句此刻最想推进的方向。它只保存在本机,可随时间改写。',
253
297
  insightTitle: '见解',
254
298
  insightShow: '展开见解',
255
299
  insightHide: '收起见解',
@@ -260,30 +304,42 @@ export const zh = {
260
304
  insightGenerating: '生成中…',
261
305
  insightErrorPrefix: '生成失败:',
262
306
  insightRetry: '重试',
263
- continueAgent: '在 MindOS Agent 中继续',
307
+ continueAgent: '在 Agent 中展开',
264
308
  continuedDrafts: '草稿',
265
309
  continuedTodos: '未收口',
266
310
  subEmptyHint: '接入文库后,条目会出现在对应分组里。',
267
311
  dailyLineLabel: '今日一行',
268
312
  dailyLinePlaceholder: '写下一行轻量的文字…',
269
313
  dailySavedNote: '已保存在本机浏览器;仅本设备可见。',
314
+ savedFlash: '已保存',
270
315
  dailyAskPrefill: (line: string) =>
271
316
  `回响 / 每日 — 围绕这一行帮我展开:\n\n${line.trim() || '(空行)'}`,
272
317
  pastYouDrawLabel: '往日一瞥',
273
318
  pastYouAnother: '再抽一笔',
274
- pastYouDisabledHint: '正在连接时间与文库,稍后在此轻点即可抽读旧笔记片段。',
319
+ pastYouComingSoon: '即将推出',
320
+ pastYouDisabledHint: '时间轴采样即将上线——届时轻点即可抽读旧笔记片段。',
275
321
  growthIntentLabel: '当前意图',
276
322
  growthIntentPlaceholder: '写下你正在推进的方向…',
277
323
  growthSavedNote: '已保存在本机。',
278
- aboutYouLead: '不经翻找,也能感到有什么在轻轻指向你。',
279
- continuedLead: '上次停下的句号,在这里接着写。',
280
- dailyLead: '给今天留一行空白;轻到不必为此开一场对话。',
281
- pastYouLead: '在另一个时间刻度上,瞥见你写下的选择与心情。',
282
- growthLead: '你在推的方向,以及它怎样慢慢偏转。',
324
+ aboutYouLead: '无需翻找,与你相关的笔记自然浮现。',
325
+ continuedLead: '草稿、待办、写到一半的念头。',
326
+ dailyLead: '一行就够。想展开时再找 Agent。',
327
+ pastYouLead: '温和地瞥见另一个时间点的自己。',
328
+ growthLead: '你正在推进的方向,以及它如何缓慢漂移。',
283
329
  },
284
330
  agentsContent: {
285
331
  title: 'Agents',
286
- subtitle: '在同一页面管理连接、技能和单 Agent 状态。',
332
+ subtitle: '连接、技能与状态,一目了然。',
333
+ workspacePulse: {
334
+ title: '工作区脉搏',
335
+ connected: '已连接',
336
+ detected: '已检测',
337
+ notFound: '未找到',
338
+ risk: '风险',
339
+ enabledSkills: '已启用',
340
+ healthy: '正常',
341
+ needsAttention: (n: number) => `${n} 个问题`,
342
+ },
287
343
  navOverview: '总览',
288
344
  navMcp: 'MCP',
289
345
  navSkills: 'Skills',
@@ -298,18 +354,75 @@ export const zh = {
298
354
  connected: '已连接',
299
355
  detected: '已检测',
300
356
  notFound: '未找到',
301
- riskQueue: '风险动作队列',
302
- noRisk: '当前没有风险项。',
303
- usagePulse: '使用脉搏',
304
- successRate7d: '7 天成功率',
305
- topSkills: '已启用技能',
306
- failedAgents: '失败最多 Agent',
357
+ riskQueue: '待处理',
358
+ noRisk: '一切正常,暂无问题。',
359
+ usagePulse: '全部 Agent',
360
+ nextAction: '建议操作',
361
+ nextActionHint: '优先重连已检测的 Agent,再启用所需技能。',
362
+ riskLevelError: '异常',
363
+ riskLevelWarn: '注意',
307
364
  na: '暂无',
365
+ colAgent: 'Agent',
366
+ colStatus: '状态',
367
+ colMcp: 'MCP',
368
+ colSkills: '技能',
369
+ colMode: '模式',
370
+ colRuntime: '运行时',
371
+ pulseMcp: 'MCP',
372
+ pulseTools: '工具数',
373
+ mcpOffline: '离线',
374
+ toolsUnit: (n: number) => `${n} 个工具`,
375
+ enabledUnit: (n: number) => `${n} 已启用`,
376
+ agentCount: (n: number) => `${n} 个 Agent`,
377
+ runtimeActive: '活跃',
308
378
  },
309
379
  mcp: {
310
- title: 'MCP 健康',
380
+ title: 'MCP 连接',
311
381
  refresh: '刷新',
312
- connectionGraph: '连接图谱',
382
+ connectionGraph: '跨 Agent 服务器连接',
383
+ tabs: {
384
+ manage: '管理',
385
+ topology: '图谱',
386
+ byAgent: '按 Agent 查看',
387
+ byServer: '按 MCP Server 查看',
388
+ },
389
+ searchPlaceholder: '搜索 Agent...',
390
+ installMindos: '安装 MindOS MCP',
391
+ installed: '已安装',
392
+ mcpServerLabel: 'MCP Server',
393
+ searchServersPlaceholder: '搜索 MCP server...',
394
+ serverAgentCount: (n: number) => `${n} 个 Agent`,
395
+ emptyState: '当前筛选条件下没有匹配的 Agent。',
396
+ resultCount: (n: number) => `${n} 个 Agent`,
397
+ filteredSummaryTitle: '筛选结果状态摘要',
398
+ filteredConnected: (n: number) => `已连接:${n}`,
399
+ filteredDetected: (n: number) => `已检测:${n}`,
400
+ filteredNotFound: (n: number) => `未找到:${n}`,
401
+ crossAgentServersTitle: 'MCP 服务器',
402
+ crossAgentServersEmpty: '暂未检测到 MCP 服务器。',
403
+ crossAgentServerAgents: (names: string) => `使用者:${names}`,
404
+ configVisibilityTitle: '配置信息',
405
+ hiddenRootDetected: (n: number, total: number) => `隐藏目录:${n}/${total}`,
406
+ runtimeSignalDetected: (n: number, total: number) => `运行信号:${n}/${total}`,
407
+ riskQueueTitle: '待处理',
408
+ riskMcpStopped: 'MCP 服务未运行。',
409
+ riskDetected: (n: number) => `${n} 个已检测 Agent 待配置。`,
410
+ riskNotFound: (n: number) => `${n} 个 Agent 未在本机检测到。`,
411
+ bulkReconnectFiltered: '全部重连',
412
+ bulkRunning: '正在批量重连...',
413
+ bulkSummary: (ok: number, failed: number) => `重连成功 ${ok} 个,失败 ${failed} 个。`,
414
+ transportFilters: {
415
+ all: '全部传输',
416
+ stdio: 'stdio',
417
+ http: 'http',
418
+ other: '其他',
419
+ },
420
+ filters: {
421
+ all: '全部',
422
+ connected: '已连接',
423
+ detected: '已检测',
424
+ notFound: '未找到',
425
+ },
313
426
  table: {
314
427
  agent: 'Agent',
315
428
  status: '状态',
@@ -322,15 +435,93 @@ export const zh = {
322
435
  testConnection: '测试连接',
323
436
  reconnect: '重连',
324
437
  },
438
+ addAgent: '添加',
439
+ removeFromServer: '移除',
440
+ confirmRemoveTitle: '从服务器移除?',
441
+ confirmRemoveMessage: (agent: string, server: string) => `将"${agent}"从"${server}"移除?需编辑 Agent 配置文件完成操作。`,
442
+ cancel: '取消',
443
+ noAvailableAgents: '所有 Agent 均已添加。',
444
+ manualRemoveHint: '已标记移除,请编辑 Agent 配置文件完成操作。',
445
+ reconnectAllInServer: '全部重连',
446
+ reconnectAllRunning: '正在重连...',
447
+ reconnectAllDone: (ok: number, failed: number) => `完成:${ok} 已重连${failed > 0 ? `,${failed} 失败` : ''}。`,
448
+ serverTransport: (t: string) => `传输:${t}`,
325
449
  },
326
450
  skills: {
327
451
  title: 'Skills',
328
- capabilityGroups: '能力分组',
452
+ summaryTitle: '技能状态',
453
+ summaryEnabled: (n: number) => `已启用:${n}`,
454
+ summaryDisabled: (n: number) => `已禁用:${n}`,
455
+ summaryAttention: (n: number) => `需关注:${n}`,
456
+ crossAgentSkillsTitle: '已安装技能',
457
+ crossAgentSkillsEmpty: '暂未检测到已安装技能。',
458
+ crossAgentSkillAgents: (names: string) => `安装于:${names}`,
459
+ capabilityGroups: '跨 Agent 技能管理',
460
+ registrySummaryTitle: '技能注册表',
461
+ registryUniversal: (n: number) => `Universal:${n}`,
462
+ registryAdditional: (n: number) => `Additional:${n}`,
463
+ registryUnsupported: (n: number) => `Unsupported:${n}`,
464
+ registryHiddenRoots: (n: number, total: number) => `隐藏目录:${n}/${total}`,
465
+ tabs: {
466
+ manage: '管理',
467
+ matrix: '矩阵',
468
+ bySkill: '按 Skill 查看',
469
+ byAgent: '按 Agent 查看',
470
+ },
329
471
  searchPlaceholder: '搜索技能...',
330
- matrixToggle: 'Skill x Agent 兼容矩阵',
472
+ agentSkillMode: 'Skill 模式',
473
+ agentMcpServers: 'MCP Servers',
474
+ agentNativeSkills: '原生 Skills',
475
+ agentMindosSkills: 'MindOS Skills',
476
+ noAgentsYet: '尚未检测到任何 Agent。',
477
+ moreSkills: (n: number) => `另有 ${n} 个`,
331
478
  sourceAll: '全部',
332
479
  sourceBuiltin: '内置',
333
480
  sourceUser: '自定义',
481
+ sourceNative: '原生',
482
+ summaryNative: (n: number) => `原生:${n}`,
483
+ statusAll: '全部状态',
484
+ statusEnabled: '已启用',
485
+ statusDisabled: '已禁用',
486
+ statusAttention: '需关注',
487
+ capabilityAll: '全部能力',
488
+ bulkEnableFiltered: '全部启用',
489
+ bulkDisableFiltered: '全部停用',
490
+ bulkRunning: '正在应用变更...',
491
+ bulkNoChanges: '当前无需变更。',
492
+ bulkAllSucceeded: (n: number) => `已更新 ${n} 个技能。`,
493
+ bulkPartialFailed: (ok: number, failed: number) => `已更新 ${ok} 个,失败 ${failed} 个。`,
494
+ resultCount: (n: number) => `${n} 个技能`,
495
+ matrixAgentFocusLabel: 'Agent 聚焦',
496
+ matrixAgentFocusAll: '全部 Agent',
497
+ matrixColumnSkill: '技能',
498
+ matrixEnabled: '已启用',
499
+ matrixDisabled: '已禁用',
500
+ matrixUnsupported: '不支持',
501
+ matrixNoAgents: '当前无可用于矩阵的 Agent。',
502
+ noSkillsMatchFilter: '当前筛选条件下无技能。',
503
+ matrixEmpty: '当前筛选条件下无技能。',
504
+ addAgentToSkill: '添加',
505
+ removeAgentFromSkill: '移除',
506
+ confirmRemoveAgentTitle: '从技能移除?',
507
+ confirmRemoveAgentMessage: (agent: string, skill: string) => `将"${agent}"从"${skill}"移除?需编辑 Agent 配置文件完成操作。`,
508
+ cancelSkillAction: '取消',
509
+ noAvailableAgentsForSkill: '所有 Agent 均已拥有此技能。',
510
+ manualSkillHint: '已标记,请编辑 Agent 配置文件完成操作。',
511
+ skillDescription: '描述',
512
+ skillNoDescription: '暂无描述。',
513
+ skillDeleteAction: '删除',
514
+ confirmDeleteSkillTitle: '删除技能?',
515
+ confirmDeleteSkillMessage: (name: string) => `确认永久删除技能"${name}"?此操作不可撤销。`,
516
+ skillDeleted: '技能已删除。',
517
+ skillDeleteFailed: '删除技能失败。',
518
+ copyInstallCmd: '复制安装命令',
519
+ installCmdCopied: '已复制!',
520
+ skillAgentCount: (n: number) => `${n} 个 Agent`,
521
+ quickStatsMcp: (n: number) => `${n} MCP`,
522
+ quickStatsSkills: (n: number) => `${n} 技能`,
523
+ showAllNative: (n: number) => `展开全部 ${n} 项`,
524
+ collapseNative: '收起',
334
525
  emptyGroup: '该分组暂无技能。',
335
526
  groupLabels: {
336
527
  research: '研究',
@@ -339,12 +530,46 @@ export const zh = {
339
530
  ops: '运维',
340
531
  memory: '记忆',
341
532
  },
533
+ skillPopover: {
534
+ close: '关闭',
535
+ source: '来源',
536
+ sourceBuiltin: '内置',
537
+ sourceUser: '自定义',
538
+ sourceNative: '原生',
539
+ capability: '能力类型',
540
+ path: '文件路径',
541
+ enabled: '已启用',
542
+ disabled: '已禁用',
543
+ agents: 'Agent',
544
+ noAgents: '暂无 Agent 拥有此技能。',
545
+ content: '技能内容',
546
+ loading: '加载中…',
547
+ loadFailed: '加载技能内容失败。',
548
+ retry: '重试',
549
+ copyContent: '复制',
550
+ copied: '已复制!',
551
+ noDescription: '暂无描述。',
552
+ deleteSkill: '删除',
553
+ confirmDeleteTitle: '删除技能?',
554
+ confirmDeleteMessage: (name: string) => `确认永久删除技能"${name}"?此操作不可撤销。`,
555
+ confirmDeleteAction: '删除',
556
+ cancelAction: '取消',
557
+ deleted: '技能已删除。',
558
+ deleteFailed: '删除技能失败。',
559
+ },
342
560
  },
343
561
  detail: {
562
+ healthStripTitle: '状态',
563
+ healthConnected: '已连接',
564
+ healthInstalled: 'MCP 已安装',
565
+ healthRuntimeSignals: '运行信号',
566
+ healthConfiguredServers: '已配置 servers',
567
+ healthInstalledSkills: '原生已安装 skills',
344
568
  identity: '身份',
345
569
  connection: '连接',
346
570
  capabilities: '能力画像',
347
571
  skillAssignments: '技能分配',
572
+ runtimeSignals: '运行与配置信号',
348
573
  recentActivity: '最近活动',
349
574
  spaceReach: '空间触达',
350
575
  agentKey: 'Agent Key',
@@ -358,14 +583,70 @@ export const zh = {
358
583
  projectScope: '项目范围',
359
584
  globalScope: '全局范围',
360
585
  format: '配置格式',
586
+ skillMode: 'Skill 模式',
587
+ hiddenRoot: '隐藏目录路径',
588
+ hiddenRootPresent: '隐藏目录',
589
+ conversationSignal: '对话',
590
+ usageSignal: '用量',
591
+ lastActivityAt: '最近活跃',
592
+ skillsAll: '全部 Skills',
593
+ skillsEnabled: '已启用 Skills',
594
+ skillsSourceBuiltin: '内置',
595
+ skillsSourceUser: '自定义',
596
+ skillsSearchPlaceholder: '搜索全部已配置 Skills...',
597
+ skillsFilterAll: '全部',
598
+ skillsFilterBuiltin: '内置',
599
+ skillsFilterUser: '自定义',
600
+ skillEnable: '启用',
601
+ skillDisable: '禁用',
602
+ skillEdit: '编辑',
603
+ skillSave: '保存',
604
+ skillCancel: '取消',
605
+ skillActionLoading: '处理中...',
606
+ skillReadFailed: '读取 Skill 内容失败。',
607
+ skillSaveFailed: '保存 Skill 内容失败。',
608
+ mcpManagement: 'MCP 管理',
609
+ mcpInstalled: '已安装',
610
+ mcpScope: '当前范围',
611
+ mcpConfigPath: '配置路径',
612
+ mcpTargetScope: '目标范围',
613
+ mcpTargetTransport: '目标传输',
614
+ mcpScopeProject: '项目',
615
+ mcpScopeGlobal: '全局',
616
+ mcpCopySnippet: '复制片段',
617
+ mcpCopied: '已复制',
618
+ mcpRefresh: '刷新状态',
619
+ mcpReconnect: '应用 MCP 配置',
620
+ mcpApplying: '正在应用 MCP 配置...',
621
+ mcpApplySuccess: 'MCP 配置已应用。',
622
+ mcpApplyFailed: '应用 MCP 配置失败。',
623
+ nativeInstalledSkills: '已安装技能',
624
+ nativeInstalledSkillsCount: (n: number) => `检测到 ${n} 个`,
625
+ nativeInstalledSkillsEmpty: '暂未检测到已安装技能。',
626
+ nativeInstalledSkillsMore: (n: number) => `另有 ${n} 个`,
627
+ configuredMcpServers: 'MCP 服务器',
628
+ configuredMcpServersCount: (n: number) => `检测到 ${n} 个`,
629
+ configuredMcpServersEmpty: '暂未配置 MCP 服务器。',
630
+ configuredMcpServersMore: (n: number) => `另有 ${n} 个`,
361
631
  yes: '是',
362
632
  no: '否',
363
633
  noSkills: '暂无启用技能。',
364
634
  noActivity: '暂无活动记录。',
365
635
  noSpaceReach: '暂无空间触达数据。',
636
+ skillDelete: '删除',
637
+ skillDeleteConfirm: (name: string) => `确认删除技能"${name}"?此操作不可撤销。`,
638
+ skillDeleteSuccess: '技能已删除。',
639
+ skillDeleteFailed: '删除技能失败。',
640
+ mcpServerAdd: '添加 MCP 服务器',
641
+ mcpServerRemove: '移除',
642
+ mcpServerRemoveConfirm: (name: string) => `从该 Agent 移除"${name}"?需编辑配置文件完成操作。`,
643
+ mcpServerHint: '已标记,请编辑 Agent 配置文件完成操作。',
644
+ mcpReconnectAll: '全部重连',
645
+ mcpReconnectAllRunning: '正在重连...',
646
+ mcpReconnectAllDone: (ok: number, failed: number) => `已重连 ${ok}${failed > 0 ? `,失败 ${failed}` : ''}。`,
366
647
  },
367
- detailSubtitle: '无需离开内容页即可查看该 Agent 详情。',
368
- detailNotFound: '未找到该 Agent,可能已卸载或重命名。',
648
+ detailSubtitle: '',
649
+ detailNotFound: '未找到该 Agent,可能已移除或重命名。',
369
650
  },
370
651
  shortcutPanel: {
371
652
  title: '快捷键',