@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.
- package/README.md +4 -0
- package/README_zh.md +4 -0
- package/app/app/api/ask/route.ts +12 -0
- package/app/app/api/changes/route.ts +7 -1
- package/app/app/api/file/route.ts +9 -0
- package/app/app/api/mcp/agents/route.ts +27 -1
- package/app/app/api/mcp/install-skill/route.ts +9 -24
- package/app/app/api/skills/route.ts +18 -2
- package/app/app/api/tree-version/route.ts +8 -0
- package/app/app/layout.tsx +1 -0
- package/app/app/page.tsx +1 -2
- package/app/app/view/[...path]/ViewPageClient.tsx +0 -1
- 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 +44 -14
- 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 +2 -1
- package/app/components/RightAskPanel.tsx +1 -1
- package/app/components/SearchModal.tsx +10 -2
- package/app/components/SidebarLayout.tsx +36 -10
- package/app/components/ThemeToggle.tsx +1 -1
- package/app/components/agents/AgentDetailContent.tsx +454 -59
- package/app/components/agents/AgentsContentPage.tsx +89 -20
- package/app/components/agents/AgentsMcpSection.tsx +513 -85
- package/app/components/agents/AgentsOverviewSection.tsx +418 -59
- package/app/components/agents/AgentsPrimitives.tsx +335 -0
- package/app/components/agents/AgentsSkillsSection.tsx +746 -105
- package/app/components/agents/SkillDetailPopover.tsx +416 -0
- package/app/components/agents/agents-content-model.ts +308 -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 +89 -13
- package/app/components/changes/ChangesContentPage.tsx +134 -51
- 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 +22 -128
- package/app/components/panels/AgentsPanelAgentDetail.tsx +7 -6
- package/app/components/panels/AgentsPanelAgentGroups.tsx +8 -13
- package/app/components/panels/AgentsPanelAgentListRow.tsx +39 -16
- package/app/components/panels/AgentsPanelHubNav.tsx +12 -12
- package/app/components/panels/EchoPanel.tsx +8 -10
- package/app/components/panels/PanelNavRow.tsx +9 -2
- package/app/components/panels/PluginsPanel.tsx +5 -5
- package/app/components/renderers/agent-inspector/AgentInspectorRenderer.tsx +30 -8
- package/app/components/renderers/agent-inspector/manifest.ts +5 -3
- package/app/components/renderers/config/manifest.ts +1 -0
- package/app/components/renderers/csv/manifest.ts +1 -0
- 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 +6 -5
- 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 +7 -4
- 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/content-changes.ts +148 -8
- package/app/lib/core/index.ts +11 -0
- package/app/lib/fs.ts +16 -1
- package/app/lib/i18n-en.ts +317 -36
- package/app/lib/i18n-zh.ts +316 -35
- package/app/lib/mcp-agents.ts +273 -2
- package/app/lib/renderers/index.ts +1 -2
- package/app/lib/renderers/registry.ts +10 -0
- package/app/lib/types.ts +2 -0
- package/app/next-env.d.ts +1 -1
- package/bin/lib/mcp-agents.js +38 -13
- package/package.json +1 -1
- package/scripts/migrate-agent-audit-log.js +170 -0
- package/scripts/migrate-agent-diff.js +146 -0
- package/scripts/setup.js +12 -17
- package/skills/plugin-core-builtin-migration/SKILL.md +178 -0
- package/app/components/renderers/diff/DiffRenderer.tsx +0 -311
- package/app/components/renderers/diff/manifest.ts +0 -14
package/app/lib/i18n-en.ts
CHANGED
|
@@ -32,6 +32,9 @@ export const en = {
|
|
|
32
32
|
cancelCreate: 'Cancel',
|
|
33
33
|
continueEditing: 'Continue editing',
|
|
34
34
|
newNote: 'New Notes',
|
|
35
|
+
builtinFeatures: 'Built-in capabilities',
|
|
36
|
+
builtinActive: 'Active',
|
|
37
|
+
builtinInactive: 'Not active',
|
|
35
38
|
plugins: 'Extensions',
|
|
36
39
|
showMore: 'Show more',
|
|
37
40
|
showLess: 'Show less',
|
|
@@ -124,6 +127,41 @@ export const en = {
|
|
|
124
127
|
noSessions: 'No saved sessions.',
|
|
125
128
|
draftingHint: 'AI is still running — you can draft the next step now.',
|
|
126
129
|
},
|
|
130
|
+
changes: {
|
|
131
|
+
unreadBanner: (n: number) => `${n} content change${n === 1 ? '' : 's'} unread`,
|
|
132
|
+
reviewNow: 'Review now',
|
|
133
|
+
dismiss: 'Dismiss notification',
|
|
134
|
+
title: 'Content changes',
|
|
135
|
+
subtitle: 'Review recent edits across user and agent operations.',
|
|
136
|
+
eventsCount: (n: number) => `${n} event${n === 1 ? '' : 's'}`,
|
|
137
|
+
unreadCount: (n: number) => `${n} unread`,
|
|
138
|
+
refresh: 'Refresh',
|
|
139
|
+
markSeen: 'Mark seen',
|
|
140
|
+
markAllRead: 'Mark all read',
|
|
141
|
+
filters: {
|
|
142
|
+
filePath: 'File path',
|
|
143
|
+
filePathPlaceholder: 'e.g. Projects/plan.md',
|
|
144
|
+
source: 'Agents (source)',
|
|
145
|
+
operation: 'Tools (operation)',
|
|
146
|
+
operationAll: 'All operations',
|
|
147
|
+
keyword: 'Keyword',
|
|
148
|
+
keywordPlaceholder: 'summary / op / path',
|
|
149
|
+
all: 'All',
|
|
150
|
+
agent: 'Agent',
|
|
151
|
+
user: 'User',
|
|
152
|
+
system: 'System',
|
|
153
|
+
},
|
|
154
|
+
loading: 'Loading changes...',
|
|
155
|
+
empty: 'No content changes yet.',
|
|
156
|
+
open: 'Open',
|
|
157
|
+
unchangedLines: (n: number) => `... ${n} unchanged lines ...`,
|
|
158
|
+
relativeTime: {
|
|
159
|
+
justNow: 'just now',
|
|
160
|
+
minutesAgo: (n: number) => `${n}m ago`,
|
|
161
|
+
hoursAgo: (n: number) => `${n}h ago`,
|
|
162
|
+
daysAgo: (n: number) => `${n}d ago`,
|
|
163
|
+
},
|
|
164
|
+
},
|
|
127
165
|
panels: {
|
|
128
166
|
agents: {
|
|
129
167
|
title: 'Agents',
|
|
@@ -139,9 +177,11 @@ export const en = {
|
|
|
139
177
|
noAgents: 'No agents detected.',
|
|
140
178
|
autoRefresh: 'Auto-refresh every 30s',
|
|
141
179
|
connect: 'Connect',
|
|
142
|
-
openDashboard: 'Dashboard',
|
|
143
180
|
installing: 'Installing...',
|
|
144
|
-
install:
|
|
181
|
+
install: 'Install',
|
|
182
|
+
installSuccess: 'Installed',
|
|
183
|
+
installFailed: 'Install failed',
|
|
184
|
+
retryInstall: 'Retry',
|
|
145
185
|
// Snippet section
|
|
146
186
|
copyConfig: 'Copy Config',
|
|
147
187
|
copied: 'Copied!',
|
|
@@ -183,11 +223,16 @@ export const en = {
|
|
|
183
223
|
},
|
|
184
224
|
echo: {
|
|
185
225
|
title: 'Echo',
|
|
186
|
-
aboutYouTitle: '
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
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',
|
|
191
236
|
},
|
|
192
237
|
discover: {
|
|
193
238
|
title: 'Discover',
|
|
@@ -205,27 +250,26 @@ export const en = {
|
|
|
205
250
|
},
|
|
206
251
|
},
|
|
207
252
|
echoPages: {
|
|
208
|
-
breadcrumbNav: 'Breadcrumb',
|
|
209
253
|
parent: 'Echo',
|
|
210
254
|
heroKicker: 'Echo',
|
|
211
255
|
segmentNavAria: 'Echo sections',
|
|
212
256
|
snapshotBadge: 'Local · private',
|
|
213
257
|
factsHeading: 'Snapshot',
|
|
214
|
-
snapshotAboutYouTitle: 'Clues
|
|
258
|
+
snapshotAboutYouTitle: 'Clues gather here',
|
|
215
259
|
snapshotAboutYouBody:
|
|
216
|
-
'
|
|
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.',
|
|
217
261
|
snapshotContinuedTitle: 'Drafts and open loops',
|
|
218
262
|
snapshotContinuedBody:
|
|
219
|
-
'
|
|
263
|
+
'Untitled drafts, half-finished pieces, and unchecked tasks will collect here once the library feed is connected.',
|
|
220
264
|
snapshotDailyTitle: 'Start with one line',
|
|
221
265
|
snapshotDailyBody:
|
|
222
|
-
'Your line
|
|
223
|
-
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',
|
|
224
268
|
snapshotPastYouBody:
|
|
225
|
-
'
|
|
269
|
+
'A random older note will surface here — not a diff tool, just a gentle glance at who you were. Coming soon.',
|
|
226
270
|
snapshotGrowthTitle: 'Intent lives here',
|
|
227
271
|
snapshotGrowthBody:
|
|
228
|
-
'
|
|
272
|
+
'Write one sentence about the direction you are pushing. It stays on this device and can change over time.',
|
|
229
273
|
insightTitle: 'Insight',
|
|
230
274
|
insightShow: 'Show insight',
|
|
231
275
|
insightHide: 'Hide insight',
|
|
@@ -236,30 +280,42 @@ export const en = {
|
|
|
236
280
|
insightGenerating: 'Generating…',
|
|
237
281
|
insightErrorPrefix: 'Something went wrong:',
|
|
238
282
|
insightRetry: 'Try again',
|
|
239
|
-
continueAgent: '
|
|
283
|
+
continueAgent: 'Open in Agent',
|
|
240
284
|
continuedDrafts: 'Drafts',
|
|
241
285
|
continuedTodos: 'Open loops',
|
|
242
286
|
subEmptyHint: 'Items will appear in each column once the library feed is connected.',
|
|
243
287
|
dailyLineLabel: 'A line for today',
|
|
244
288
|
dailyLinePlaceholder: 'Write one quiet line…',
|
|
245
289
|
dailySavedNote: 'Saved in this browser; visible only on this device.',
|
|
290
|
+
savedFlash: 'Saved',
|
|
246
291
|
dailyAskPrefill: (line: string) =>
|
|
247
292
|
`Echo / Daily — reflect on this line:\n\n${line.trim() || '(empty line)'}`,
|
|
248
|
-
pastYouDrawLabel: 'A
|
|
293
|
+
pastYouDrawLabel: 'A glimpse from the past',
|
|
249
294
|
pastYouAnother: 'Draw another moment',
|
|
250
|
-
|
|
295
|
+
pastYouComingSoon: 'Coming soon',
|
|
296
|
+
pastYouDisabledHint: 'Sampling from your timeline is on the way — soon a tap here will surface an old excerpt.',
|
|
251
297
|
growthIntentLabel: 'What you are steering toward',
|
|
252
298
|
growthIntentPlaceholder: 'Write your current intent…',
|
|
253
299
|
growthSavedNote: 'Saved on this device.',
|
|
254
|
-
aboutYouLead: '
|
|
255
|
-
continuedLead: '
|
|
256
|
-
dailyLead: 'One
|
|
257
|
-
pastYouLead: '
|
|
258
|
-
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.',
|
|
259
305
|
},
|
|
260
306
|
agentsContent: {
|
|
261
307
|
title: 'Agents',
|
|
262
|
-
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
|
+
},
|
|
263
319
|
navOverview: 'Overview',
|
|
264
320
|
navMcp: 'MCP',
|
|
265
321
|
navSkills: 'Skills',
|
|
@@ -274,18 +330,75 @@ export const en = {
|
|
|
274
330
|
connected: 'Connected',
|
|
275
331
|
detected: 'Detected',
|
|
276
332
|
notFound: 'Not found',
|
|
277
|
-
riskQueue: '
|
|
278
|
-
noRisk: '
|
|
279
|
-
usagePulse: '
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
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',
|
|
283
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',
|
|
284
354
|
},
|
|
285
355
|
mcp: {
|
|
286
|
-
title: 'MCP
|
|
356
|
+
title: 'MCP Connections',
|
|
287
357
|
refresh: 'Refresh',
|
|
288
|
-
connectionGraph: '
|
|
358
|
+
connectionGraph: 'Server connections across agents',
|
|
359
|
+
tabs: {
|
|
360
|
+
manage: 'Manage',
|
|
361
|
+
topology: 'Topology',
|
|
362
|
+
byAgent: 'By Agent',
|
|
363
|
+
byServer: 'By MCP Server',
|
|
364
|
+
},
|
|
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' : ''}`,
|
|
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
|
+
},
|
|
396
|
+
filters: {
|
|
397
|
+
all: 'All',
|
|
398
|
+
connected: 'Connected',
|
|
399
|
+
detected: 'Detected',
|
|
400
|
+
notFound: 'Not found',
|
|
401
|
+
},
|
|
289
402
|
table: {
|
|
290
403
|
agent: 'Agent',
|
|
291
404
|
status: 'Status',
|
|
@@ -298,15 +411,93 @@ export const en = {
|
|
|
298
411
|
testConnection: 'Test Connection',
|
|
299
412
|
reconnect: 'Reconnect',
|
|
300
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}`,
|
|
301
425
|
},
|
|
302
426
|
skills: {
|
|
303
427
|
title: 'Skills',
|
|
304
|
-
|
|
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}`,
|
|
441
|
+
tabs: {
|
|
442
|
+
manage: 'Manage',
|
|
443
|
+
matrix: 'Matrix',
|
|
444
|
+
bySkill: 'By Skill',
|
|
445
|
+
byAgent: 'By Agent',
|
|
446
|
+
},
|
|
305
447
|
searchPlaceholder: 'Search skills...',
|
|
306
|
-
|
|
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`,
|
|
307
454
|
sourceAll: 'All',
|
|
308
455
|
sourceBuiltin: 'Built-in',
|
|
309
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',
|
|
310
501
|
emptyGroup: 'No skills in this group.',
|
|
311
502
|
groupLabels: {
|
|
312
503
|
research: 'Research',
|
|
@@ -315,12 +506,46 @@ export const en = {
|
|
|
315
506
|
ops: 'Ops',
|
|
316
507
|
memory: 'Memory',
|
|
317
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
|
+
},
|
|
318
536
|
},
|
|
319
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',
|
|
320
544
|
identity: 'Identity',
|
|
321
545
|
connection: 'Connection',
|
|
322
546
|
capabilities: 'Capability Profile',
|
|
323
547
|
skillAssignments: 'Skill Assignments',
|
|
548
|
+
runtimeSignals: 'Runtime',
|
|
324
549
|
recentActivity: 'Recent Activity',
|
|
325
550
|
spaceReach: 'Space Reach',
|
|
326
551
|
agentKey: 'Agent key',
|
|
@@ -334,14 +559,70 @@ export const en = {
|
|
|
334
559
|
projectScope: 'Project scope',
|
|
335
560
|
globalScope: 'Global scope',
|
|
336
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`,
|
|
337
607
|
yes: 'Yes',
|
|
338
608
|
no: 'No',
|
|
339
609
|
noSkills: 'No enabled skills.',
|
|
340
610
|
noActivity: 'No activity recorded yet.',
|
|
341
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}` : ''}.`,
|
|
342
623
|
},
|
|
343
|
-
detailSubtitle: '
|
|
344
|
-
detailNotFound: 'Agent not found
|
|
624
|
+
detailSubtitle: '',
|
|
625
|
+
detailNotFound: 'Agent not found — it may have been removed or renamed.',
|
|
345
626
|
},
|
|
346
627
|
shortcutPanel: {
|
|
347
628
|
title: 'Keyboard Shortcuts',
|