@geminilight/mindos 0.5.59 → 0.5.62

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/app/lib/fs.ts CHANGED
@@ -25,8 +25,13 @@ import {
25
25
  gitShowFile as coreGitShowFile,
26
26
  invalidateSearchIndex,
27
27
  summarizeTopLevelSpaces,
28
+ appendContentChange as coreAppendContentChange,
29
+ listContentChanges as coreListContentChanges,
30
+ markContentChangesSeen as coreMarkContentChangesSeen,
31
+ getContentChangeSummary as coreGetContentChangeSummary,
28
32
  } from './core';
29
33
  import type { MindSpaceSummary } from './core';
34
+ import type { ContentChangeEvent, ContentChangeInput, ContentChangeSummary } from './core';
30
35
  import { FileNode, SpacePreview } from './core/types';
31
36
  import { SearchMatch } from './types';
32
37
  import { effectiveSopRoot } from './settings';
@@ -190,6 +195,22 @@ export function listMindSpaces(): MindSpaceSummary[] {
190
195
  return summarizeTopLevelSpaces(getMindRoot(), ensureCache().tree);
191
196
  }
192
197
 
198
+ export function appendContentChange(input: ContentChangeInput): ContentChangeEvent {
199
+ return coreAppendContentChange(getMindRoot(), input);
200
+ }
201
+
202
+ export function listContentChanges(options: { path?: string; limit?: number } = {}): ContentChangeEvent[] {
203
+ return coreListContentChanges(getMindRoot(), options);
204
+ }
205
+
206
+ export function markContentChangesSeen(): void {
207
+ coreMarkContentChangesSeen(getMindRoot());
208
+ }
209
+
210
+ export function getContentChangeSummary(): ContentChangeSummary {
211
+ return coreGetContentChangeSummary(getMindRoot());
212
+ }
213
+
193
214
  /** Returns space preview (INSTRUCTION + README excerpts) for a directory, or null if not a space. */
194
215
  export function getSpacePreview(dirPath: string): SpacePreview | null {
195
216
  const root = getMindRoot();
@@ -544,6 +565,7 @@ export function gitShowFile(filePath: string, commit: string): string {
544
565
  import type { BacklinkEntry } from './core/types';
545
566
  export type { BacklinkEntry } from './core/types';
546
567
  export type { MindSpaceSummary } from './core';
568
+ export type { ContentChangeEvent, ContentChangeInput, ContentChangeSummary, ContentChangeSource } from './core';
547
569
 
548
570
  export function findBacklinks(targetPath: string): BacklinkEntry[] {
549
571
  return coreFindBacklinks(getMindRoot(), targetPath);
@@ -122,6 +122,7 @@ export const en = {
122
122
  clearAll: 'Clear all',
123
123
  confirmClear: 'Confirm clear?',
124
124
  noSessions: 'No saved sessions.',
125
+ draftingHint: 'AI is still running — you can draft the next step now.',
125
126
  },
126
127
  panels: {
127
128
  agents: {
@@ -138,6 +139,7 @@ export const en = {
138
139
  noAgents: 'No agents detected.',
139
140
  autoRefresh: 'Auto-refresh every 30s',
140
141
  connect: 'Connect',
142
+ openDashboard: 'Dashboard',
141
143
  installing: 'Installing...',
142
144
  install: (name: string) => `Install ${name}`,
143
145
  // Snippet section
@@ -255,6 +257,92 @@ export const en = {
255
257
  pastYouLead: 'Choices and moods you set down at another point on the timeline.',
256
258
  growthLead: 'What you are steering toward, and how it slowly shifts.',
257
259
  },
260
+ agentsContent: {
261
+ title: 'Agents',
262
+ subtitle: 'Manage connections, skills, and per-agent status in one place.',
263
+ navOverview: 'Overview',
264
+ navMcp: 'MCP',
265
+ navSkills: 'Skills',
266
+ backToOverview: 'Back to Agents',
267
+ na: 'N/A',
268
+ status: {
269
+ connected: 'Connected',
270
+ detected: 'Detected',
271
+ notFound: 'Not found',
272
+ },
273
+ overview: {
274
+ connected: 'Connected',
275
+ detected: 'Detected',
276
+ notFound: 'Not found',
277
+ riskQueue: 'Risk action queue',
278
+ noRisk: 'No active risks detected.',
279
+ usagePulse: 'Usage pulse',
280
+ successRate7d: 'Success rate (7d)',
281
+ topSkills: 'Top enabled skills',
282
+ failedAgents: 'Most failed agents',
283
+ na: 'N/A',
284
+ },
285
+ mcp: {
286
+ title: 'MCP health',
287
+ refresh: 'Refresh',
288
+ connectionGraph: 'Connection graph',
289
+ table: {
290
+ agent: 'Agent',
291
+ status: 'Status',
292
+ transport: 'Transport',
293
+ actions: 'Actions',
294
+ },
295
+ actions: {
296
+ copySnippet: 'Copy Snippet',
297
+ copied: 'Copied',
298
+ testConnection: 'Test Connection',
299
+ reconnect: 'Reconnect',
300
+ },
301
+ },
302
+ skills: {
303
+ title: 'Skills',
304
+ capabilityGroups: 'Capability groups',
305
+ searchPlaceholder: 'Search skills...',
306
+ matrixToggle: 'Skill x Agent compatibility matrix',
307
+ sourceAll: 'All',
308
+ sourceBuiltin: 'Built-in',
309
+ sourceUser: 'Custom',
310
+ emptyGroup: 'No skills in this group.',
311
+ groupLabels: {
312
+ research: 'Research',
313
+ coding: 'Coding',
314
+ docs: 'Docs',
315
+ ops: 'Ops',
316
+ memory: 'Memory',
317
+ },
318
+ },
319
+ detail: {
320
+ identity: 'Identity',
321
+ connection: 'Connection',
322
+ capabilities: 'Capability Profile',
323
+ skillAssignments: 'Skill Assignments',
324
+ recentActivity: 'Recent Activity',
325
+ spaceReach: 'Space Reach',
326
+ agentKey: 'Agent key',
327
+ status: 'Status',
328
+ transport: 'Transport',
329
+ endpoint: 'Endpoint',
330
+ port: 'Port',
331
+ auth: 'Auth',
332
+ authConfigured: 'Configured',
333
+ authMissing: 'Missing',
334
+ projectScope: 'Project scope',
335
+ globalScope: 'Global scope',
336
+ format: 'Config format',
337
+ yes: 'Yes',
338
+ no: 'No',
339
+ noSkills: 'No enabled skills.',
340
+ noActivity: 'No activity recorded yet.',
341
+ noSpaceReach: 'No space reach data yet.',
342
+ },
343
+ detailSubtitle: 'Inspect this agent without leaving the content view.',
344
+ detailNotFound: 'Agent not found. It may have been uninstalled or renamed.',
345
+ },
258
346
  shortcutPanel: {
259
347
  title: 'Keyboard Shortcuts',
260
348
  navigation: 'Navigation',
@@ -552,6 +640,10 @@ export const en = {
552
640
  releaseNotes: 'View release notes',
553
641
  hint: 'Updates are installed via npm. Equivalent to running',
554
642
  inTerminal: 'in your terminal.',
643
+ desktopDownloading: 'Downloading update...',
644
+ desktopReady: 'Update downloaded. Restart to apply.',
645
+ desktopRestart: 'Restart Now',
646
+ desktopHint: 'Updates are delivered through the Desktop app auto-updater.',
555
647
  },
556
648
  },
557
649
  onboarding: {
@@ -147,6 +147,7 @@ export const zh = {
147
147
  clearAll: '清除全部',
148
148
  confirmClear: '确认清除?',
149
149
  noSessions: '暂无历史对话。',
150
+ draftingHint: 'AI 仍在执行,你可以先输入下一步。',
150
151
  },
151
152
  panels: {
152
153
  agents: {
@@ -163,6 +164,7 @@ export const zh = {
163
164
  noAgents: '未检测到智能体。',
164
165
  autoRefresh: '每 30 秒自动刷新',
165
166
  connect: '连接',
167
+ openDashboard: '仪表盘',
166
168
  installing: '安装中...',
167
169
  install: (name: string) => `安装 ${name}`,
168
170
  // Snippet section
@@ -279,6 +281,92 @@ export const zh = {
279
281
  pastYouLead: '在另一个时间刻度上,瞥见你写下的选择与心情。',
280
282
  growthLead: '你在推的方向,以及它怎样慢慢偏转。',
281
283
  },
284
+ agentsContent: {
285
+ title: 'Agents',
286
+ subtitle: '在同一页面管理连接、技能和单 Agent 状态。',
287
+ navOverview: '总览',
288
+ navMcp: 'MCP',
289
+ navSkills: 'Skills',
290
+ backToOverview: '返回 Agents',
291
+ na: '暂无',
292
+ status: {
293
+ connected: '已连接',
294
+ detected: '已检测',
295
+ notFound: '未找到',
296
+ },
297
+ overview: {
298
+ connected: '已连接',
299
+ detected: '已检测',
300
+ notFound: '未找到',
301
+ riskQueue: '风险动作队列',
302
+ noRisk: '当前没有风险项。',
303
+ usagePulse: '使用脉搏',
304
+ successRate7d: '7 天成功率',
305
+ topSkills: '已启用技能',
306
+ failedAgents: '失败最多 Agent',
307
+ na: '暂无',
308
+ },
309
+ mcp: {
310
+ title: 'MCP 健康',
311
+ refresh: '刷新',
312
+ connectionGraph: '连接图谱',
313
+ table: {
314
+ agent: 'Agent',
315
+ status: '状态',
316
+ transport: '传输',
317
+ actions: '操作',
318
+ },
319
+ actions: {
320
+ copySnippet: '复制配置',
321
+ copied: '已复制',
322
+ testConnection: '测试连接',
323
+ reconnect: '重连',
324
+ },
325
+ },
326
+ skills: {
327
+ title: 'Skills',
328
+ capabilityGroups: '能力分组',
329
+ searchPlaceholder: '搜索技能...',
330
+ matrixToggle: 'Skill x Agent 兼容矩阵',
331
+ sourceAll: '全部',
332
+ sourceBuiltin: '内置',
333
+ sourceUser: '自定义',
334
+ emptyGroup: '该分组暂无技能。',
335
+ groupLabels: {
336
+ research: '研究',
337
+ coding: '编码',
338
+ docs: '文档',
339
+ ops: '运维',
340
+ memory: '记忆',
341
+ },
342
+ },
343
+ detail: {
344
+ identity: '身份',
345
+ connection: '连接',
346
+ capabilities: '能力画像',
347
+ skillAssignments: '技能分配',
348
+ recentActivity: '最近活动',
349
+ spaceReach: '空间触达',
350
+ agentKey: 'Agent Key',
351
+ status: '状态',
352
+ transport: '传输',
353
+ endpoint: '端点',
354
+ port: '端口',
355
+ auth: '认证',
356
+ authConfigured: '已配置',
357
+ authMissing: '未配置',
358
+ projectScope: '项目范围',
359
+ globalScope: '全局范围',
360
+ format: '配置格式',
361
+ yes: '是',
362
+ no: '否',
363
+ noSkills: '暂无启用技能。',
364
+ noActivity: '暂无活动记录。',
365
+ noSpaceReach: '暂无空间触达数据。',
366
+ },
367
+ detailSubtitle: '无需离开内容页即可查看该 Agent 详情。',
368
+ detailNotFound: '未找到该 Agent,可能已卸载或重命名。',
369
+ },
282
370
  shortcutPanel: {
283
371
  title: '快捷键',
284
372
  navigation: '导航',
@@ -576,6 +664,10 @@ export const zh = {
576
664
  releaseNotes: '查看更新日志',
577
665
  hint: '更新通过 npm 安装,等同于在终端运行',
578
666
  inTerminal: '。',
667
+ desktopDownloading: '正在下载更新...',
668
+ desktopReady: '更新已下载,重启后生效。',
669
+ desktopRestart: '立即重启',
670
+ desktopHint: '更新通过桌面端自动更新推送。',
579
671
  },
580
672
  },
581
673
  onboarding: {
@@ -7,7 +7,6 @@ import { manifest as agentInspector } from '@/components/renderers/agent-inspect
7
7
  import { manifest as backlinks } from '@/components/renderers/backlinks/manifest';
8
8
  import { manifest as config } from '@/components/renderers/config/manifest';
9
9
  import { manifest as csv } from '@/components/renderers/csv/manifest';
10
- import { manifest as diff } from '@/components/renderers/diff/manifest';
11
10
  import { manifest as summary } from '@/components/renderers/summary/manifest';
12
11
  import { manifest as timeline } from '@/components/renderers/timeline/manifest';
13
12
  import { manifest as todo } from '@/components/renderers/todo/manifest';
@@ -15,7 +14,7 @@ import { manifest as workflow } from '@/components/renderers/workflow/manifest';
15
14
  import { manifest as graph } from '@/components/renderers/graph/manifest';
16
15
 
17
16
  const manifests = [
18
- agentInspector, backlinks, config, csv, diff, summary, timeline, todo, workflow, graph,
17
+ agentInspector, backlinks, config, csv, summary, timeline, todo, workflow, graph,
19
18
  ];
20
19
 
21
20
  for (const m of manifests) {
package/app/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "test": "vitest run",
12
12
  "postinstall": "node ../scripts/fix-postcss-deps.cjs"
13
13
  },
14
- "dependencies": {
14
+ "dependencies": {
15
15
  "@base-ui/react": "^1.2.0",
16
16
  "@codemirror/lang-markdown": "^6.5.0",
17
17
  "@codemirror/state": "^6.5.4",
@@ -55,7 +55,7 @@
55
55
  "tailwind-merge": "^3.5.0",
56
56
  "tiptap-markdown": "^0.9.0",
57
57
  "tw-animate-css": "^1.4.0",
58
- "zod": "^3.23.8"
58
+ "zod": "^3.23.8"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@tailwindcss/postcss": "^4",
@@ -66,6 +66,7 @@
66
66
  "@vitest/coverage-v8": "^4.1.0",
67
67
  "eslint": "^9",
68
68
  "eslint-config-next": "16.1.6",
69
+ "jsdom": "^29.0.1",
69
70
  "playwright": "^1.58.2",
70
71
  "shadcn": "^4.0.1",
71
72
  "tailwindcss": "^4",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geminilight/mindos",
3
- "version": "0.5.59",
3
+ "version": "0.5.62",
4
4
  "description": "MindOS — Human-Agent Collaborative Mind System. Local-first knowledge base that syncs your mind to all AI Agents via MCP.",
5
5
  "keywords": [
6
6
  "mindos",