@geminilight/mindos 0.5.64 → 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.
- package/README.md +4 -0
- package/README_zh.md +4 -0
- package/app/app/api/ask/route.ts +12 -0
- package/app/app/api/file/route.ts +9 -0
- package/app/app/api/mcp/agents/route.ts +27 -1
- package/app/app/api/skills/route.ts +18 -2
- package/app/app/api/tree-version/route.ts +8 -0
- package/app/components/ActivityBar.tsx +2 -2
- package/app/components/Backlinks.tsx +5 -5
- package/app/components/CreateSpaceModal.tsx +3 -2
- package/app/components/DirPicker.tsx +1 -1
- package/app/components/DirView.tsx +2 -3
- package/app/components/EditorWrapper.tsx +3 -3
- package/app/components/FileTree.tsx +25 -10
- package/app/components/GuideCard.tsx +4 -4
- package/app/components/HomeContent.tsx +6 -11
- package/app/components/MarkdownView.tsx +2 -2
- package/app/components/OnboardingView.tsx +1 -1
- package/app/components/Panel.tsx +1 -1
- package/app/components/RightAgentDetailPanel.tsx +1 -1
- package/app/components/RightAskPanel.tsx +1 -1
- package/app/components/SearchModal.tsx +10 -2
- package/app/components/SidebarLayout.tsx +35 -10
- package/app/components/ThemeToggle.tsx +1 -1
- package/app/components/agents/AgentDetailContent.tsx +454 -59
- package/app/components/agents/AgentsContentPage.tsx +70 -5
- package/app/components/agents/AgentsMcpSection.tsx +474 -159
- package/app/components/agents/AgentsOverviewSection.tsx +418 -59
- package/app/components/agents/AgentsPrimitives.tsx +335 -0
- package/app/components/agents/AgentsSkillsSection.tsx +739 -121
- package/app/components/agents/SkillDetailPopover.tsx +416 -0
- package/app/components/agents/agents-content-model.ts +292 -10
- package/app/components/ask/AskContent.tsx +34 -5
- package/app/components/ask/FileChip.tsx +1 -0
- package/app/components/ask/MentionPopover.tsx +13 -1
- package/app/components/ask/MessageList.tsx +5 -7
- package/app/components/ask/ToolCallBlock.tsx +4 -4
- package/app/components/changes/ChangesBanner.tsx +1 -2
- package/app/components/echo/EchoHero.tsx +10 -24
- package/app/components/echo/EchoInsightCollapsible.tsx +52 -43
- package/app/components/echo/EchoPageSections.tsx +13 -9
- package/app/components/echo/EchoSegmentNav.tsx +14 -11
- package/app/components/echo/EchoSegmentPageClient.tsx +64 -43
- package/app/components/explore/ExploreContent.tsx +3 -7
- package/app/components/explore/UseCaseCard.tsx +4 -15
- package/app/components/panels/AgentsPanel.tsx +12 -104
- package/app/components/panels/AgentsPanelAgentDetail.tsx +2 -2
- package/app/components/panels/AgentsPanelAgentGroups.tsx +3 -7
- package/app/components/panels/AgentsPanelAgentListRow.tsx +9 -11
- package/app/components/panels/EchoPanel.tsx +8 -10
- package/app/components/panels/PanelNavRow.tsx +9 -2
- package/app/components/panels/PluginsPanel.tsx +2 -2
- package/app/components/renderers/agent-inspector/AgentInspectorRenderer.tsx +30 -8
- package/app/components/renderers/agent-inspector/manifest.ts +3 -3
- package/app/components/renderers/todo/manifest.ts +1 -0
- package/app/components/settings/AiTab.tsx +3 -3
- package/app/components/settings/AppearanceTab.tsx +2 -2
- package/app/components/settings/KnowledgeTab.tsx +3 -3
- package/app/components/settings/McpAgentInstall.tsx +3 -6
- package/app/components/settings/McpSkillCreateForm.tsx +2 -3
- package/app/components/settings/McpSkillRow.tsx +2 -3
- package/app/components/settings/McpSkillsSection.tsx +2 -2
- package/app/components/settings/McpTab.tsx +12 -13
- package/app/components/settings/MonitoringTab.tsx +13 -13
- package/app/components/settings/PluginsTab.tsx +2 -2
- package/app/components/settings/Primitives.tsx +3 -4
- package/app/components/settings/SettingsContent.tsx +3 -3
- package/app/components/settings/SyncTab.tsx +11 -17
- package/app/components/settings/UpdateTab.tsx +18 -21
- package/app/components/settings/types.ts +14 -0
- package/app/components/setup/StepKB.tsx +1 -1
- package/app/hooks/useMcpData.tsx +4 -2
- package/app/hooks/useMention.ts +25 -8
- package/app/lib/agent/log.ts +15 -18
- package/app/lib/agent/stream-consumer.ts +3 -0
- package/app/lib/agent/to-agent-messages.ts +6 -4
- package/app/lib/core/agent-audit-log.ts +280 -0
- package/app/lib/core/index.ts +11 -0
- package/app/lib/fs.ts +9 -0
- package/app/lib/i18n-en.ts +259 -33
- package/app/lib/i18n-zh.ts +258 -32
- package/app/lib/mcp-agents.ts +231 -2
- package/app/lib/types.ts +2 -0
- package/package.json +1 -1
- package/scripts/migrate-agent-audit-log.js +170 -0
package/app/lib/i18n-en.ts
CHANGED
|
@@ -223,11 +223,16 @@ export const en = {
|
|
|
223
223
|
},
|
|
224
224
|
echo: {
|
|
225
225
|
title: 'Echo',
|
|
226
|
-
aboutYouTitle: '
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
226
|
+
aboutYouTitle: 'About you',
|
|
227
|
+
aboutYouDesc: 'Notes that point back to you',
|
|
228
|
+
continuedTitle: 'Unfinished',
|
|
229
|
+
continuedDesc: 'Drafts and open loops',
|
|
230
|
+
dailyEchoTitle: 'Today',
|
|
231
|
+
dailyDesc: 'One line, no pressure',
|
|
232
|
+
pastYouTitle: 'Past self',
|
|
233
|
+
pastYouDesc: 'A glimpse at another time',
|
|
234
|
+
intentGrowthTitle: 'Growth',
|
|
235
|
+
growthDesc: 'The direction you\'re pushing',
|
|
231
236
|
},
|
|
232
237
|
discover: {
|
|
233
238
|
title: 'Discover',
|
|
@@ -245,27 +250,26 @@ export const en = {
|
|
|
245
250
|
},
|
|
246
251
|
},
|
|
247
252
|
echoPages: {
|
|
248
|
-
breadcrumbNav: 'Breadcrumb',
|
|
249
253
|
parent: 'Echo',
|
|
250
254
|
heroKicker: 'Echo',
|
|
251
255
|
segmentNavAria: 'Echo sections',
|
|
252
256
|
snapshotBadge: 'Local · private',
|
|
253
257
|
factsHeading: 'Snapshot',
|
|
254
|
-
snapshotAboutYouTitle: 'Clues
|
|
258
|
+
snapshotAboutYouTitle: 'Clues gather here',
|
|
255
259
|
snapshotAboutYouBody:
|
|
256
|
-
'
|
|
260
|
+
'Notes whose paths, links, or titles point back to you will surface here — each one opens in the editor. Use the button below to explore with Agent.',
|
|
257
261
|
snapshotContinuedTitle: 'Drafts and open loops',
|
|
258
262
|
snapshotContinuedBody:
|
|
259
|
-
'
|
|
263
|
+
'Untitled drafts, half-finished pieces, and unchecked tasks will collect here once the library feed is connected.',
|
|
260
264
|
snapshotDailyTitle: 'Start with one line',
|
|
261
265
|
snapshotDailyBody:
|
|
262
|
-
'Your line
|
|
263
|
-
snapshotPastYouTitle: 'A
|
|
266
|
+
'Your line saves in this browser the moment you leave the field. One line is enough — open Agent when you want depth.',
|
|
267
|
+
snapshotPastYouTitle: 'A glimpse at another time',
|
|
264
268
|
snapshotPastYouBody:
|
|
265
|
-
'
|
|
269
|
+
'A random older note will surface here — not a diff tool, just a gentle glance at who you were. Coming soon.',
|
|
266
270
|
snapshotGrowthTitle: 'Intent lives here',
|
|
267
271
|
snapshotGrowthBody:
|
|
268
|
-
'
|
|
272
|
+
'Write one sentence about the direction you are pushing. It stays on this device and can change over time.',
|
|
269
273
|
insightTitle: 'Insight',
|
|
270
274
|
insightShow: 'Show insight',
|
|
271
275
|
insightHide: 'Hide insight',
|
|
@@ -276,30 +280,42 @@ export const en = {
|
|
|
276
280
|
insightGenerating: 'Generating…',
|
|
277
281
|
insightErrorPrefix: 'Something went wrong:',
|
|
278
282
|
insightRetry: 'Try again',
|
|
279
|
-
continueAgent: '
|
|
283
|
+
continueAgent: 'Open in Agent',
|
|
280
284
|
continuedDrafts: 'Drafts',
|
|
281
285
|
continuedTodos: 'Open loops',
|
|
282
286
|
subEmptyHint: 'Items will appear in each column once the library feed is connected.',
|
|
283
287
|
dailyLineLabel: 'A line for today',
|
|
284
288
|
dailyLinePlaceholder: 'Write one quiet line…',
|
|
285
289
|
dailySavedNote: 'Saved in this browser; visible only on this device.',
|
|
290
|
+
savedFlash: 'Saved',
|
|
286
291
|
dailyAskPrefill: (line: string) =>
|
|
287
292
|
`Echo / Daily — reflect on this line:\n\n${line.trim() || '(empty line)'}`,
|
|
288
|
-
pastYouDrawLabel: 'A
|
|
293
|
+
pastYouDrawLabel: 'A glimpse from the past',
|
|
289
294
|
pastYouAnother: 'Draw another moment',
|
|
290
|
-
|
|
295
|
+
pastYouComingSoon: 'Coming soon',
|
|
296
|
+
pastYouDisabledHint: 'Sampling from your timeline is on the way — soon a tap here will surface an old excerpt.',
|
|
291
297
|
growthIntentLabel: 'What you are steering toward',
|
|
292
298
|
growthIntentPlaceholder: 'Write your current intent…',
|
|
293
299
|
growthSavedNote: 'Saved on this device.',
|
|
294
|
-
aboutYouLead: '
|
|
295
|
-
continuedLead: '
|
|
296
|
-
dailyLead: 'One
|
|
297
|
-
pastYouLead: '
|
|
298
|
-
growthLead: '
|
|
300
|
+
aboutYouLead: 'Notes and links that point back to you — surfaced, not searched.',
|
|
301
|
+
continuedLead: 'Drafts, open tasks, and thoughts you left mid-sentence.',
|
|
302
|
+
dailyLead: 'One line. No pressure. Open Agent when you want depth.',
|
|
303
|
+
pastYouLead: 'A gentle glimpse at who you were at another time.',
|
|
304
|
+
growthLead: 'The direction you are pushing — and how it drifts.',
|
|
299
305
|
},
|
|
300
306
|
agentsContent: {
|
|
301
307
|
title: 'Agents',
|
|
302
|
-
subtitle: '
|
|
308
|
+
subtitle: 'Connections, skills, and status at a glance.',
|
|
309
|
+
workspacePulse: {
|
|
310
|
+
title: 'Workspace Pulse',
|
|
311
|
+
connected: 'Connected',
|
|
312
|
+
detected: 'Detected',
|
|
313
|
+
notFound: 'Not found',
|
|
314
|
+
risk: 'Risks',
|
|
315
|
+
enabledSkills: 'Skills on',
|
|
316
|
+
healthy: 'Healthy',
|
|
317
|
+
needsAttention: (n: number) => `${n} issue${n !== 1 ? 's' : ''}`,
|
|
318
|
+
},
|
|
303
319
|
navOverview: 'Overview',
|
|
304
320
|
navMcp: 'MCP',
|
|
305
321
|
navSkills: 'Skills',
|
|
@@ -314,24 +330,69 @@ export const en = {
|
|
|
314
330
|
connected: 'Connected',
|
|
315
331
|
detected: 'Detected',
|
|
316
332
|
notFound: 'Not found',
|
|
317
|
-
riskQueue: '
|
|
318
|
-
noRisk: '
|
|
319
|
-
usagePulse: '
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
333
|
+
riskQueue: 'Attention',
|
|
334
|
+
noRisk: 'All clear — no issues detected.',
|
|
335
|
+
usagePulse: 'All agents',
|
|
336
|
+
nextAction: 'Suggested next',
|
|
337
|
+
nextActionHint: 'Reconnect detected agents first, then enable remaining skills.',
|
|
338
|
+
riskLevelError: 'Error',
|
|
339
|
+
riskLevelWarn: 'Warning',
|
|
323
340
|
na: 'N/A',
|
|
341
|
+
colAgent: 'Agent',
|
|
342
|
+
colStatus: 'Status',
|
|
343
|
+
colMcp: 'MCP',
|
|
344
|
+
colSkills: 'Skills',
|
|
345
|
+
colMode: 'Mode',
|
|
346
|
+
colRuntime: 'Runtime',
|
|
347
|
+
pulseMcp: 'MCP',
|
|
348
|
+
pulseTools: 'Tools',
|
|
349
|
+
mcpOffline: 'Offline',
|
|
350
|
+
toolsUnit: (n: number) => `${n} tools`,
|
|
351
|
+
enabledUnit: (n: number) => `${n} enabled`,
|
|
352
|
+
agentCount: (n: number) => `${n} agent${n !== 1 ? 's' : ''}`,
|
|
353
|
+
runtimeActive: 'Active',
|
|
324
354
|
},
|
|
325
355
|
mcp: {
|
|
326
|
-
title: 'MCP
|
|
356
|
+
title: 'MCP Connections',
|
|
327
357
|
refresh: 'Refresh',
|
|
328
|
-
connectionGraph: '
|
|
358
|
+
connectionGraph: 'Server connections across agents',
|
|
329
359
|
tabs: {
|
|
330
360
|
manage: 'Manage',
|
|
331
361
|
topology: 'Topology',
|
|
362
|
+
byAgent: 'By Agent',
|
|
363
|
+
byServer: 'By MCP Server',
|
|
332
364
|
},
|
|
333
365
|
searchPlaceholder: 'Search agents...',
|
|
366
|
+
installMindos: 'Install MindOS MCP',
|
|
367
|
+
installed: 'Installed',
|
|
368
|
+
mcpServerLabel: 'MCP Server',
|
|
369
|
+
searchServersPlaceholder: 'Search MCP servers...',
|
|
370
|
+
serverAgentCount: (n: number) => `${n} agent${n !== 1 ? 's' : ''}`,
|
|
334
371
|
emptyState: 'No agents match current filters.',
|
|
372
|
+
resultCount: (n: number) => `${n} agents`,
|
|
373
|
+
filteredSummaryTitle: 'Filtered status summary',
|
|
374
|
+
filteredConnected: (n: number) => `Connected: ${n}`,
|
|
375
|
+
filteredDetected: (n: number) => `Detected: ${n}`,
|
|
376
|
+
filteredNotFound: (n: number) => `Not found: ${n}`,
|
|
377
|
+
crossAgentServersTitle: 'MCP Servers',
|
|
378
|
+
crossAgentServersEmpty: 'No MCP servers detected.',
|
|
379
|
+
crossAgentServerAgents: (names: string) => `Used by ${names}`,
|
|
380
|
+
configVisibilityTitle: 'Configuration',
|
|
381
|
+
hiddenRootDetected: (n: number, total: number) => `Hidden roots: ${n}/${total}`,
|
|
382
|
+
runtimeSignalDetected: (n: number, total: number) => `Runtime signals: ${n}/${total}`,
|
|
383
|
+
riskQueueTitle: 'Attention',
|
|
384
|
+
riskMcpStopped: 'MCP server is not running.',
|
|
385
|
+
riskDetected: (n: number) => `${n} detected agent(s) need configuration.`,
|
|
386
|
+
riskNotFound: (n: number) => `${n} agent(s) not found on this machine.`,
|
|
387
|
+
bulkReconnectFiltered: 'Reconnect all',
|
|
388
|
+
bulkRunning: 'Running reconnect...',
|
|
389
|
+
bulkSummary: (ok: number, failed: number) => `Reconnected ${ok}, failed ${failed}.`,
|
|
390
|
+
transportFilters: {
|
|
391
|
+
all: 'All transport',
|
|
392
|
+
stdio: 'stdio',
|
|
393
|
+
http: 'http',
|
|
394
|
+
other: 'other',
|
|
395
|
+
},
|
|
335
396
|
filters: {
|
|
336
397
|
all: 'All',
|
|
337
398
|
connected: 'Connected',
|
|
@@ -350,18 +411,93 @@ export const en = {
|
|
|
350
411
|
testConnection: 'Test Connection',
|
|
351
412
|
reconnect: 'Reconnect',
|
|
352
413
|
},
|
|
414
|
+
addAgent: 'Add',
|
|
415
|
+
removeFromServer: 'Remove',
|
|
416
|
+
confirmRemoveTitle: 'Remove from server?',
|
|
417
|
+
confirmRemoveMessage: (agent: string, server: string) => `Remove "${agent}" from "${server}"? This requires editing the agent config file.`,
|
|
418
|
+
cancel: 'Cancel',
|
|
419
|
+
noAvailableAgents: 'All agents already connected.',
|
|
420
|
+
manualRemoveHint: 'Flagged for removal — edit the agent config to finalize.',
|
|
421
|
+
reconnectAllInServer: 'Reconnect all',
|
|
422
|
+
reconnectAllRunning: 'Reconnecting...',
|
|
423
|
+
reconnectAllDone: (ok: number, failed: number) => `Done: ${ok} reconnected${failed > 0 ? `, ${failed} failed` : ''}.`,
|
|
424
|
+
serverTransport: (t: string) => `Transport: ${t}`,
|
|
353
425
|
},
|
|
354
426
|
skills: {
|
|
355
427
|
title: 'Skills',
|
|
356
|
-
|
|
428
|
+
summaryTitle: 'Skill Status',
|
|
429
|
+
summaryEnabled: (n: number) => `Enabled: ${n}`,
|
|
430
|
+
summaryDisabled: (n: number) => `Disabled: ${n}`,
|
|
431
|
+
summaryAttention: (n: number) => `Needs attention: ${n}`,
|
|
432
|
+
crossAgentSkillsTitle: 'Installed Skills',
|
|
433
|
+
crossAgentSkillsEmpty: 'No skills detected.',
|
|
434
|
+
crossAgentSkillAgents: (names: string) => `Installed in ${names}`,
|
|
435
|
+
capabilityGroups: 'Skill management across agents',
|
|
436
|
+
registrySummaryTitle: 'Skill Registry',
|
|
437
|
+
registryUniversal: (n: number) => `Universal: ${n}`,
|
|
438
|
+
registryAdditional: (n: number) => `Additional: ${n}`,
|
|
439
|
+
registryUnsupported: (n: number) => `Unsupported: ${n}`,
|
|
440
|
+
registryHiddenRoots: (n: number, total: number) => `Hidden roots: ${n}/${total}`,
|
|
357
441
|
tabs: {
|
|
358
442
|
manage: 'Manage',
|
|
359
443
|
matrix: 'Matrix',
|
|
444
|
+
bySkill: 'By Skill',
|
|
445
|
+
byAgent: 'By Agent',
|
|
360
446
|
},
|
|
361
447
|
searchPlaceholder: 'Search skills...',
|
|
448
|
+
agentSkillMode: 'Skill Mode',
|
|
449
|
+
agentMcpServers: 'MCP Servers',
|
|
450
|
+
agentNativeSkills: 'Native Skills',
|
|
451
|
+
agentMindosSkills: 'MindOS Skills',
|
|
452
|
+
noAgentsYet: 'No agents detected yet.',
|
|
453
|
+
moreSkills: (n: number) => `+${n} more`,
|
|
362
454
|
sourceAll: 'All',
|
|
363
455
|
sourceBuiltin: 'Built-in',
|
|
364
456
|
sourceUser: 'Custom',
|
|
457
|
+
sourceNative: 'Native',
|
|
458
|
+
summaryNative: (n: number) => `Native: ${n}`,
|
|
459
|
+
statusAll: 'All status',
|
|
460
|
+
statusEnabled: 'Enabled',
|
|
461
|
+
statusDisabled: 'Disabled',
|
|
462
|
+
statusAttention: 'Needs attention',
|
|
463
|
+
capabilityAll: 'All capabilities',
|
|
464
|
+
bulkEnableFiltered: 'Enable all',
|
|
465
|
+
bulkDisableFiltered: 'Disable all',
|
|
466
|
+
bulkRunning: 'Applying changes...',
|
|
467
|
+
bulkNoChanges: 'No skill changes needed.',
|
|
468
|
+
bulkAllSucceeded: (n: number) => `Updated ${n} skills.`,
|
|
469
|
+
bulkPartialFailed: (ok: number, failed: number) => `Updated ${ok}, failed ${failed}.`,
|
|
470
|
+
resultCount: (n: number) => `${n} skills`,
|
|
471
|
+
matrixAgentFocusLabel: 'Agent focus',
|
|
472
|
+
matrixAgentFocusAll: 'All agents',
|
|
473
|
+
matrixColumnSkill: 'Skill',
|
|
474
|
+
matrixEnabled: 'Enabled',
|
|
475
|
+
matrixDisabled: 'Disabled',
|
|
476
|
+
matrixUnsupported: 'Unsupported',
|
|
477
|
+
matrixNoAgents: 'No agents available for matrix.',
|
|
478
|
+
noSkillsMatchFilter: 'No skills match current filters.',
|
|
479
|
+
matrixEmpty: 'No skills match current filters.',
|
|
480
|
+
addAgentToSkill: 'Add',
|
|
481
|
+
removeAgentFromSkill: 'Remove',
|
|
482
|
+
confirmRemoveAgentTitle: 'Remove from skill?',
|
|
483
|
+
confirmRemoveAgentMessage: (agent: string, skill: string) => `Remove "${agent}" from "${skill}"? This requires editing the agent config file.`,
|
|
484
|
+
cancelSkillAction: 'Cancel',
|
|
485
|
+
noAvailableAgentsForSkill: 'All agents already have this skill.',
|
|
486
|
+
manualSkillHint: 'Flagged — edit the agent config to finalize.',
|
|
487
|
+
skillDescription: 'Description',
|
|
488
|
+
skillNoDescription: 'No description available.',
|
|
489
|
+
skillDeleteAction: 'Delete',
|
|
490
|
+
confirmDeleteSkillTitle: 'Delete skill?',
|
|
491
|
+
confirmDeleteSkillMessage: (name: string) => `Permanently delete skill "${name}"? This cannot be undone.`,
|
|
492
|
+
skillDeleted: 'Skill deleted.',
|
|
493
|
+
skillDeleteFailed: 'Failed to delete skill.',
|
|
494
|
+
copyInstallCmd: 'Copy install command',
|
|
495
|
+
installCmdCopied: 'Copied!',
|
|
496
|
+
skillAgentCount: (n: number) => `${n} agent${n === 1 ? '' : 's'}`,
|
|
497
|
+
quickStatsMcp: (n: number) => `${n} MCP`,
|
|
498
|
+
quickStatsSkills: (n: number) => `${n} skills`,
|
|
499
|
+
showAllNative: (n: number) => `Show all ${n}`,
|
|
500
|
+
collapseNative: 'Collapse',
|
|
365
501
|
emptyGroup: 'No skills in this group.',
|
|
366
502
|
groupLabels: {
|
|
367
503
|
research: 'Research',
|
|
@@ -370,12 +506,46 @@ export const en = {
|
|
|
370
506
|
ops: 'Ops',
|
|
371
507
|
memory: 'Memory',
|
|
372
508
|
},
|
|
509
|
+
skillPopover: {
|
|
510
|
+
close: 'Close',
|
|
511
|
+
source: 'Source',
|
|
512
|
+
sourceBuiltin: 'Built-in',
|
|
513
|
+
sourceUser: 'Custom',
|
|
514
|
+
sourceNative: 'Native',
|
|
515
|
+
capability: 'Capability',
|
|
516
|
+
path: 'File path',
|
|
517
|
+
enabled: 'Enabled',
|
|
518
|
+
disabled: 'Disabled',
|
|
519
|
+
agents: 'Agents',
|
|
520
|
+
noAgents: 'No agents have this skill.',
|
|
521
|
+
content: 'Skill content',
|
|
522
|
+
loading: 'Loading...',
|
|
523
|
+
loadFailed: 'Failed to load skill content.',
|
|
524
|
+
retry: 'Retry',
|
|
525
|
+
copyContent: 'Copy',
|
|
526
|
+
copied: 'Copied!',
|
|
527
|
+
noDescription: 'No description available.',
|
|
528
|
+
deleteSkill: 'Delete',
|
|
529
|
+
confirmDeleteTitle: 'Delete skill?',
|
|
530
|
+
confirmDeleteMessage: (name: string) => `Permanently delete skill "${name}"? This cannot be undone.`,
|
|
531
|
+
confirmDeleteAction: 'Delete',
|
|
532
|
+
cancelAction: 'Cancel',
|
|
533
|
+
deleted: 'Skill deleted.',
|
|
534
|
+
deleteFailed: 'Failed to delete skill.',
|
|
535
|
+
},
|
|
373
536
|
},
|
|
374
537
|
detail: {
|
|
538
|
+
healthStripTitle: 'Status',
|
|
539
|
+
healthConnected: 'Connected',
|
|
540
|
+
healthInstalled: 'MCP installed',
|
|
541
|
+
healthRuntimeSignals: 'Runtime signals',
|
|
542
|
+
healthConfiguredServers: 'Configured servers',
|
|
543
|
+
healthInstalledSkills: 'Native installed skills',
|
|
375
544
|
identity: 'Identity',
|
|
376
545
|
connection: 'Connection',
|
|
377
546
|
capabilities: 'Capability Profile',
|
|
378
547
|
skillAssignments: 'Skill Assignments',
|
|
548
|
+
runtimeSignals: 'Runtime',
|
|
379
549
|
recentActivity: 'Recent Activity',
|
|
380
550
|
spaceReach: 'Space Reach',
|
|
381
551
|
agentKey: 'Agent key',
|
|
@@ -389,14 +559,70 @@ export const en = {
|
|
|
389
559
|
projectScope: 'Project scope',
|
|
390
560
|
globalScope: 'Global scope',
|
|
391
561
|
format: 'Config format',
|
|
562
|
+
skillMode: 'Skill mode',
|
|
563
|
+
hiddenRoot: 'Hidden root path',
|
|
564
|
+
hiddenRootPresent: 'Hidden root',
|
|
565
|
+
conversationSignal: 'Conversation',
|
|
566
|
+
usageSignal: 'Usage',
|
|
567
|
+
lastActivityAt: 'Last active',
|
|
568
|
+
skillsAll: 'All skills',
|
|
569
|
+
skillsEnabled: 'Enabled skills',
|
|
570
|
+
skillsSourceBuiltin: 'Built-in',
|
|
571
|
+
skillsSourceUser: 'Custom',
|
|
572
|
+
skillsSearchPlaceholder: 'Search all configured skills...',
|
|
573
|
+
skillsFilterAll: 'All',
|
|
574
|
+
skillsFilterBuiltin: 'Built-in',
|
|
575
|
+
skillsFilterUser: 'Custom',
|
|
576
|
+
skillEnable: 'Enable',
|
|
577
|
+
skillDisable: 'Disable',
|
|
578
|
+
skillEdit: 'Edit',
|
|
579
|
+
skillSave: 'Save',
|
|
580
|
+
skillCancel: 'Cancel',
|
|
581
|
+
skillActionLoading: 'Working...',
|
|
582
|
+
skillReadFailed: 'Failed to read skill content.',
|
|
583
|
+
skillSaveFailed: 'Failed to save skill content.',
|
|
584
|
+
mcpManagement: 'MCP Management',
|
|
585
|
+
mcpInstalled: 'Installed',
|
|
586
|
+
mcpScope: 'Current scope',
|
|
587
|
+
mcpConfigPath: 'Config path',
|
|
588
|
+
mcpTargetScope: 'Target scope',
|
|
589
|
+
mcpTargetTransport: 'Target transport',
|
|
590
|
+
mcpScopeProject: 'Project',
|
|
591
|
+
mcpScopeGlobal: 'Global',
|
|
592
|
+
mcpCopySnippet: 'Copy snippet',
|
|
593
|
+
mcpCopied: 'Copied',
|
|
594
|
+
mcpRefresh: 'Refresh status',
|
|
595
|
+
mcpReconnect: 'Apply MCP config',
|
|
596
|
+
mcpApplying: 'Applying MCP config...',
|
|
597
|
+
mcpApplySuccess: 'MCP config applied.',
|
|
598
|
+
mcpApplyFailed: 'Failed to apply MCP config.',
|
|
599
|
+
nativeInstalledSkills: 'Installed Skills',
|
|
600
|
+
nativeInstalledSkillsCount: (n: number) => `${n} detected`,
|
|
601
|
+
nativeInstalledSkillsEmpty: 'No installed skills detected.',
|
|
602
|
+
nativeInstalledSkillsMore: (n: number) => `+${n} more`,
|
|
603
|
+
configuredMcpServers: 'MCP Servers',
|
|
604
|
+
configuredMcpServersCount: (n: number) => `${n} detected`,
|
|
605
|
+
configuredMcpServersEmpty: 'No MCP servers configured.',
|
|
606
|
+
configuredMcpServersMore: (n: number) => `+${n} more`,
|
|
392
607
|
yes: 'Yes',
|
|
393
608
|
no: 'No',
|
|
394
609
|
noSkills: 'No enabled skills.',
|
|
395
610
|
noActivity: 'No activity recorded yet.',
|
|
396
611
|
noSpaceReach: 'No space reach data yet.',
|
|
612
|
+
skillDelete: 'Delete',
|
|
613
|
+
skillDeleteConfirm: (name: string) => `Delete skill "${name}"? This cannot be undone.`,
|
|
614
|
+
skillDeleteSuccess: 'Skill deleted.',
|
|
615
|
+
skillDeleteFailed: 'Failed to delete skill.',
|
|
616
|
+
mcpServerAdd: 'Add MCP server',
|
|
617
|
+
mcpServerRemove: 'Remove',
|
|
618
|
+
mcpServerRemoveConfirm: (name: string) => `Remove "${name}" from this agent? This requires editing the config file.`,
|
|
619
|
+
mcpServerHint: 'Flagged — edit the agent config to finalize.',
|
|
620
|
+
mcpReconnectAll: 'Reconnect all',
|
|
621
|
+
mcpReconnectAllRunning: 'Reconnecting...',
|
|
622
|
+
mcpReconnectAllDone: (ok: number, failed: number) => `Reconnected ${ok}${failed > 0 ? `, failed ${failed}` : ''}.`,
|
|
397
623
|
},
|
|
398
|
-
detailSubtitle: '
|
|
399
|
-
detailNotFound: 'Agent not found
|
|
624
|
+
detailSubtitle: '',
|
|
625
|
+
detailNotFound: 'Agent not found — it may have been removed or renamed.',
|
|
400
626
|
},
|
|
401
627
|
shortcutPanel: {
|
|
402
628
|
title: 'Keyboard Shortcuts',
|