xiaokui-mcp 1.1.0 → 1.2.0

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.
@@ -0,0 +1,7 @@
1
+ /**
2
+ * 小葵启动诊断模块 - 内嵌版
3
+ * 集成到 xiaokui-mcp 中,在 init/sync 后自动执行
4
+ */
5
+ export declare function runDiagnostics(mode?: 'init' | 'sync'): Promise<string>;
6
+ export default runDiagnostics;
7
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6PH,wBAAsB,cAAc,CAAC,IAAI,GAAE,MAAM,GAAG,MAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAkDpF;AAED,eAAe,cAAc,CAAC"}
@@ -0,0 +1,273 @@
1
+ /**
2
+ * 小葵启动诊断模块 - 内嵌版
3
+ * 集成到 xiaokui-mcp 中,在 init/sync 后自动执行
4
+ */
5
+ import fs from 'fs/promises';
6
+ import path from 'path';
7
+ import os from 'os';
8
+ // 颜色输出
9
+ const colors = {
10
+ reset: '\x1b[0m',
11
+ bright: '\x1b[1m',
12
+ dim: '\x1b[2m',
13
+ red: '\x1b[31m',
14
+ green: '\x1b[32m',
15
+ yellow: '\x1b[33m',
16
+ blue: '\x1b[34m',
17
+ magenta: '\x1b[35m',
18
+ cyan: '\x1b[36m'
19
+ };
20
+ function log(level, message) {
21
+ const colorMap = {
22
+ info: colors.blue,
23
+ success: colors.green,
24
+ warning: colors.yellow,
25
+ error: colors.red,
26
+ title: colors.magenta + colors.bright,
27
+ section: colors.cyan + colors.bright
28
+ };
29
+ const prefix = {
30
+ info: 'ℹ️',
31
+ success: '✅',
32
+ warning: '⚠️',
33
+ error: '❌',
34
+ title: '🌻',
35
+ section: '📋'
36
+ };
37
+ console.log(`${colorMap[level]}${prefix[level]} ${message}${colors.reset}`);
38
+ }
39
+ // 配置路径
40
+ function getConfigPaths() {
41
+ const HOME_DIR = os.homedir();
42
+ const CLAUDE_ROOT = path.join(HOME_DIR, '.claude');
43
+ return {
44
+ mcp: path.join(CLAUDE_ROOT, '.mcp.json'),
45
+ settings: path.join(CLAUDE_ROOT, 'settings.json'),
46
+ skills: path.join(CLAUDE_ROOT, 'skills'),
47
+ memory: path.join(CLAUDE_ROOT, 'projects/C--Users-mawenxu/memory'),
48
+ claudeRoot: CLAUDE_ROOT
49
+ };
50
+ }
51
+ // 读取 JSON
52
+ async function readJson(filePath) {
53
+ try {
54
+ const content = await fs.readFile(filePath, 'utf-8');
55
+ return JSON.parse(content);
56
+ }
57
+ catch {
58
+ return null;
59
+ }
60
+ }
61
+ // 计算健康评分
62
+ function calculateHealthScore(results) {
63
+ let score = 100;
64
+ const details = [];
65
+ // MCP 评分 (30分)
66
+ if (results.mcp?.servers?.length > 0) {
67
+ const mcpWorking = results.mcp.servers.filter((s) => s.canStart).length;
68
+ const mcpRatio = mcpWorking / results.mcp.servers.length;
69
+ const mcpScore = Math.round(mcpRatio * 30);
70
+ score -= (30 - mcpScore);
71
+ details.push({ category: 'MCP服务器', score: mcpScore, max: 30, status: mcpRatio === 1 ? '完美' : mcpRatio > 0.5 ? '一般' : '需修复' });
72
+ }
73
+ else {
74
+ score -= 30;
75
+ details.push({ category: 'MCP服务器', score: 0, max: 30, status: '未配置' });
76
+ }
77
+ // 技能评分 (25分)
78
+ if (results.skills?.skills?.length > 0) {
79
+ const skillWorking = results.skills.skills.filter((s) => s.status === 'working').length;
80
+ const skillRatio = skillWorking / results.skills.skills.length;
81
+ const skillScore = Math.round(skillRatio * 25);
82
+ score -= (25 - skillScore);
83
+ details.push({ category: '技能系统', score: skillScore, max: 25, status: skillRatio === 1 ? '完美' : skillRatio > 0.5 ? '一般' : '需修复' });
84
+ }
85
+ else {
86
+ details.push({ category: '技能系统', score: 25, max: 25, status: '正常' });
87
+ }
88
+ // 记忆评分 (25分)
89
+ if (results.memory?.memoryIndex?.exists) {
90
+ const hasOrphans = results.memory.issues?.some((i) => i.includes('孤立'));
91
+ const memoryScore = hasOrphans ? 20 : 25;
92
+ score -= (25 - memoryScore);
93
+ details.push({ category: '记忆系统', score: memoryScore, max: 25, status: hasOrphans ? '需整理' : '完美' });
94
+ }
95
+ else {
96
+ score -= 25;
97
+ details.push({ category: '记忆系统', score: 0, max: 25, status: '未配置' });
98
+ }
99
+ // 优化评分 (20分)
100
+ const hasIssues = results.optimization?.duplicates?.length > 0 || results.optimization?.conflicts?.length > 0;
101
+ const optScore = hasIssues ? 15 : 20;
102
+ score -= (20 - optScore);
103
+ details.push({ category: '体系优化', score: optScore, max: 20, status: hasIssues ? '有建议' : '完美' });
104
+ return { score: Math.max(0, score), details };
105
+ }
106
+ // 检查 MCP 状态
107
+ async function checkMCPStatus(configPaths) {
108
+ const mcpConfig = await readJson(configPaths.mcp);
109
+ if (!mcpConfig) {
110
+ return { status: 'missing_config', servers: [] };
111
+ }
112
+ const results = {
113
+ servers: [],
114
+ missingEnv: []
115
+ };
116
+ const servers = mcpConfig.mcpServers || {};
117
+ for (const [name, config] of Object.entries(servers)) {
118
+ const cfg = config;
119
+ const missingVars = [];
120
+ if (cfg.env) {
121
+ for (const [key, value] of Object.entries(cfg.env)) {
122
+ const val = value;
123
+ const envName = val.match(/\$\{([^}]+)\}/)?.[1] || key;
124
+ if (val.includes('${') || !process.env[envName]) {
125
+ missingVars.push(envName);
126
+ }
127
+ }
128
+ }
129
+ results.servers.push({
130
+ name,
131
+ canStart: missingVars.length === 0,
132
+ missingEnvVars: missingVars
133
+ });
134
+ if (missingVars.length > 0) {
135
+ results.missingEnv.push({ name, vars: missingVars });
136
+ }
137
+ }
138
+ return results;
139
+ }
140
+ // 检查技能
141
+ async function checkSkills(configPaths) {
142
+ const results = {
143
+ skills: [],
144
+ withMemory: []
145
+ };
146
+ try {
147
+ const skillDirs = await fs.readdir(configPaths.skills);
148
+ for (const dir of skillDirs) {
149
+ const skillPath = path.join(configPaths.skills, dir);
150
+ const stat = await fs.stat(skillPath);
151
+ if (!stat.isDirectory())
152
+ continue;
153
+ const yamlPath = path.join(skillPath, 'skill.yaml');
154
+ let hasYaml = false;
155
+ try {
156
+ await fs.access(yamlPath);
157
+ hasYaml = true;
158
+ }
159
+ catch { }
160
+ const scriptDir = path.join(skillPath, 'scripts');
161
+ let hasScripts = false;
162
+ try {
163
+ const scripts = await fs.readdir(scriptDir);
164
+ hasScripts = scripts.length > 0;
165
+ }
166
+ catch { }
167
+ const isMemorySkill = dir.toLowerCase().includes('memory') ||
168
+ dir.toLowerCase().includes('cache');
169
+ const isSystemSkill = dir.toLowerCase().includes('xiaokui') ||
170
+ dir.toLowerCase().includes('start');
171
+ const skillInfo = {
172
+ name: dir,
173
+ hasYaml,
174
+ hasScripts,
175
+ isMemorySkill,
176
+ isSystemSkill,
177
+ status: hasYaml && hasScripts ? 'working' : 'incomplete'
178
+ };
179
+ results.skills.push(skillInfo);
180
+ if (isMemorySkill && skillInfo.status === 'working') {
181
+ results.withMemory.push(skillInfo);
182
+ }
183
+ }
184
+ }
185
+ catch {
186
+ // 忽略错误
187
+ }
188
+ return results;
189
+ }
190
+ // 检查记忆系统
191
+ async function checkMemoryArchitecture(configPaths) {
192
+ const results = {
193
+ memoryIndex: null,
194
+ issues: []
195
+ };
196
+ try {
197
+ const indexPath = path.join(configPaths.memory, 'MEMORY.md');
198
+ try {
199
+ const indexContent = await fs.readFile(indexPath, 'utf-8');
200
+ results.memoryIndex = {
201
+ exists: true,
202
+ entries: (indexContent.match(/^- /gm) || []).length
203
+ };
204
+ }
205
+ catch {
206
+ results.issues.push('缺少 MEMORY.md 索引');
207
+ }
208
+ }
209
+ catch {
210
+ // 忽略错误
211
+ }
212
+ return results;
213
+ }
214
+ // 技能优化分析
215
+ async function analyzeSkillOptimization(skills) {
216
+ const analysis = {
217
+ duplicates: [],
218
+ conflicts: []
219
+ };
220
+ const memorySkills = skills.filter(s => s.isMemorySkill);
221
+ if (memorySkills.length > 1) {
222
+ analysis.duplicates.push({
223
+ type: 'memory',
224
+ skills: memorySkills.map(s => s.name)
225
+ });
226
+ }
227
+ return analysis;
228
+ }
229
+ // 主诊断函数
230
+ export async function runDiagnostics(mode = 'sync') {
231
+ console.log('\n' + colors.bright + '═══════════════════════════════════════════════════════════════' + colors.reset);
232
+ log('title', `小葵启动诊断 (${mode === 'init' ? '初始化后' : '同步后'})`);
233
+ log('info', '正在检查系统状态...\n');
234
+ const configPaths = getConfigPaths();
235
+ // 执行检查
236
+ const allResults = {
237
+ mcp: await checkMCPStatus(configPaths),
238
+ skills: await checkSkills(configPaths),
239
+ memory: await checkMemoryArchitecture(configPaths),
240
+ optimization: null
241
+ };
242
+ allResults.optimization = await analyzeSkillOptimization(allResults.skills.skills || []);
243
+ // 计算健康评分
244
+ const healthScore = calculateHealthScore(allResults);
245
+ // 显示报告
246
+ const score = healthScore.score;
247
+ const scoreColor = score >= 90 ? colors.green : score >= 70 ? colors.yellow : colors.red;
248
+ const scoreIcon = score >= 90 ? '🌟' : score >= 70 ? '⭐' : '💫';
249
+ console.log(`
250
+ ${colors.bright}╔════════════════════════════════════════════════════════════════╗
251
+ ║ ${scoreIcon} 小葵健康评分: ${scoreColor}${score}${colors.reset}${colors.bright}/100 ║
252
+ ╚════════════════════════════════════════════════════════════════╝${colors.reset}
253
+ `);
254
+ console.log(`${colors.cyan}评分详情:${colors.reset}`);
255
+ for (const detail of healthScore.details) {
256
+ const dc = detail.score === detail.max ? colors.green : detail.score > detail.max * 0.6 ? colors.yellow : colors.red;
257
+ console.log(` ${dc}${detail.score}/${detail.max}${colors.reset} ${detail.category} ${colors.dim}(${detail.status})${colors.reset}`);
258
+ }
259
+ console.log(`
260
+ ${colors.cyan}📊 系统概览${colors.reset}
261
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
262
+ MCP 服务器: ${allResults.mcp.servers.filter((s) => s.canStart).length}/${allResults.mcp.servers.length} 个正常
263
+ 技能系统: ${allResults.skills.skills.filter((s) => s.status === 'working').length}/${allResults.skills.skills.length} 个正常
264
+ 系统技能: ${allResults.skills.skills.filter((s) => s.isSystemSkill).length} 个
265
+
266
+ ${score >= 80 ? colors.green + '✅ 系统状态良好,小葵已准备就绪!' : colors.yellow + '⚠️ 系统有需要关注的问题'}
267
+ ${colors.reset}
268
+ ${colors.dim}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
269
+ `);
270
+ return `健康评分: ${score}/100`;
271
+ }
272
+ export default runDiagnostics;
273
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -7,51 +7,38 @@ import fs from 'fs/promises';
7
7
  import path from 'path';
8
8
  import os from 'os';
9
9
  import { SkillsManager } from './skills-manager.js';
10
+ import { runDiagnostics } from './diagnostics.js';
10
11
  // 工具定义
11
12
  const TOOLS = [
12
13
  {
13
14
  name: 'backup',
14
- description: '备份小葵配置到云端(GitHub Gist),包括记忆、配置和技能',
15
+ description: '备份小葵配置到云端(GitHub Gist',
15
16
  inputSchema: {
16
17
  type: 'object',
17
18
  properties: {
18
19
  id: { type: 'string', description: '可选:指定备份ID(格式:xk-xxxxxxxx)' },
19
- password: { type: 'string', description: '可选:指定加密密码' },
20
- includeSkills: { type: 'boolean', description: '是否包含技能(默认:true)' }
20
+ password: { type: 'string', description: '可选:指定加密密码' }
21
21
  }
22
22
  }
23
23
  },
24
24
  {
25
25
  name: 'init',
26
- description: '新电脑首次初始化,从云端恢复小葵配置(包括技能和持久化数据)',
26
+ description: '新电脑首次初始化,从云端恢复小葵配置',
27
27
  inputSchema: {
28
28
  type: 'object',
29
29
  properties: {
30
30
  id: { type: 'string', description: '备份ID(格式:xk-xxxxxxxx)' },
31
- password: { type: 'string', description: '解密密码' },
32
- conflictStrategy: {
33
- type: 'string',
34
- description: '冲突解决策略:ask(询问)、local(本地优先)、remote(云端优先)、newest(最新优先)',
35
- enum: ['ask', 'local', 'remote', 'newest'],
36
- default: 'ask'
37
- }
31
+ password: { type: 'string', description: '解密密码' }
38
32
  },
39
33
  required: ['id', 'password']
40
34
  }
41
35
  },
42
36
  {
43
37
  name: 'sync',
44
- description: '同步云端最新配置到本地(增量更新,智能合并技能)',
38
+ description: '同步云端最新配置到本地(增量更新)',
45
39
  inputSchema: {
46
40
  type: 'object',
47
- properties: {
48
- conflictStrategy: {
49
- type: 'string',
50
- description: '冲突解决策略:ask(询问)、local(本地优先)、remote(云端优先)、newest(最新优先)',
51
- enum: ['ask', 'local', 'remote', 'newest'],
52
- default: 'ask'
53
- }
54
- }
41
+ properties: {}
55
42
  }
56
43
  },
57
44
  {
@@ -64,7 +51,7 @@ const TOOLS = [
64
51
  },
65
52
  {
66
53
  name: 'skills-list',
67
- description: '列出当前所有技能及其同步状态',
54
+ description: '列出所有技能及其同步状态',
68
55
  inputSchema: {
69
56
  type: 'object',
70
57
  properties: {}
@@ -115,41 +102,29 @@ function generatePassword() {
115
102
  }
116
103
  return result;
117
104
  }
118
- // 打包配置(修复:包含 skills 目录)
119
- async function packConfig(includeSkills = true) {
105
+ // 打包配置
106
+ async function packConfig() {
120
107
  const zip = new AdmZip();
121
108
  // 添加记忆目录
122
109
  if (await fs.access(XIAOKUI_ROOT).then(() => true).catch(() => false)) {
123
110
  zip.addLocalFolder(XIAOKUI_ROOT, 'memory');
124
111
  }
112
+ // 添加技能目录
113
+ if (await fs.access(SKILLS_DIR).then(() => true).catch(() => false)) {
114
+ zip.addLocalFolder(SKILLS_DIR, 'skills');
115
+ }
125
116
  // 添加配置文件
126
- const configFiles = ['CLAUDE.md', '.mcp.json', '.env', '.env.unified', 'settings.json', 'settings.local.json'];
117
+ const configFiles = ['CLAUDE.md', '.mcp.json', '.env', '.env.unified', 'settings.json'];
127
118
  for (const file of configFiles) {
128
119
  const filePath = path.join(CLAUDE_ROOT, file);
129
120
  if (await fs.access(filePath).then(() => true).catch(() => false)) {
130
121
  zip.addLocalFile(filePath, 'config');
131
122
  }
132
123
  }
133
- // ★★★ 关键修复:添加 skills 目录 ★★★
134
- if (includeSkills) {
135
- if (await fs.access(SKILLS_DIR).then(() => true).catch(() => false)) {
136
- const skillsManager = new SkillsManager(SKILLS_DIR);
137
- const skills = await skillsManager.scanSkills();
138
- // 保存技能元数据
139
- await skillsManager.saveMetadata(skills);
140
- // 添加技能目录到 zip
141
- zip.addLocalFolder(SKILLS_DIR, 'skills');
142
- }
143
- }
144
124
  // 添加初始化配置
145
125
  const initConfig = {
146
126
  version: '2.1',
147
127
  timestamp: new Date().toISOString(),
148
- deviceInfo: {
149
- hostname: os.hostname(),
150
- platform: os.platform(),
151
- user: os.userInfo().username
152
- },
153
128
  init_tasks: [
154
129
  {
155
130
  type: 'env_var',
@@ -174,7 +149,9 @@ async function uploadToGist(content, id, password, githubToken) {
174
149
  if (!token) {
175
150
  throw new Error('未设置 GitHub Token,请设置 GITHUB_TOKEN 环境变量');
176
151
  }
152
+ // Base64 编码内容
177
153
  const base64Content = content.toString('base64');
154
+ // 创建 Gist 描述
178
155
  const description = `XiaoKui Backup: ${id}`;
179
156
  const filename = `xiaokui-${id}.zip`;
180
157
  try {
@@ -259,6 +236,7 @@ async function downloadFromGist(id, githubToken) {
259
236
  }
260
237
  const description = `XiaoKui Backup: ${id}`;
261
238
  try {
239
+ // 获取用户的所有 Gists
262
240
  const response = await fetch('https://api.github.com/gists', {
263
241
  headers: {
264
242
  'Authorization': `Bearer ${token}`,
@@ -274,6 +252,7 @@ async function downloadFromGist(id, githubToken) {
274
252
  if (!gist) {
275
253
  throw new Error(`未找到备份 ID: ${id}`);
276
254
  }
255
+ // 获取 Gist 详情
277
256
  const detailResponse = await fetch(gist.url, {
278
257
  headers: {
279
258
  'Authorization': `Bearer ${token}`,
@@ -290,6 +269,7 @@ async function downloadFromGist(id, githubToken) {
290
269
  if (!fileData) {
291
270
  throw new Error(`Gist 中未找到文件: ${filename}`);
292
271
  }
272
+ // 获取文件内容
293
273
  const rawResponse = await fetch(fileData.raw_url, {
294
274
  headers: {
295
275
  'Authorization': `Bearer ${token}`,
@@ -306,8 +286,8 @@ async function downloadFromGist(id, githubToken) {
306
286
  throw new Error(`从 Gist 下载失败: ${error.message}`);
307
287
  }
308
288
  }
309
- // ★★★ 关键修复:解压配置(包含技能同步逻辑)★★★
310
- async function unpackConfig(buffer, password, conflictStrategy = 'ask') {
289
+ // 解压配置
290
+ async function unpackConfig(buffer, password, conflictStrategy = 'remote') {
311
291
  const zip = new AdmZip(buffer);
312
292
  // 备份现有记忆
313
293
  if (await fs.access(XIAOKUI_ROOT).then(() => true).catch(() => false)) {
@@ -317,16 +297,10 @@ async function unpackConfig(buffer, password, conflictStrategy = 'ask') {
317
297
  // 解压到临时目录
318
298
  const tempDir = path.join(os.tmpdir(), `xiaokui-restore-${Date.now()}`);
319
299
  zip.extractAllTo(tempDir, true);
320
- const result = {
321
- memoryRestored: false,
322
- configRestored: false,
323
- skillsResult: undefined
324
- };
325
300
  // 部署记忆
326
301
  const memoryDir = path.join(tempDir, 'memory');
327
302
  if (await fs.access(memoryDir).then(() => true).catch(() => false)) {
328
303
  await fs.cp(memoryDir, XIAOKUI_ROOT, { recursive: true });
329
- result.memoryRestored = true;
330
304
  }
331
305
  // 部署配置
332
306
  const configDir = path.join(tempDir, 'config');
@@ -335,30 +309,89 @@ async function unpackConfig(buffer, password, conflictStrategy = 'ask') {
335
309
  for (const file of files) {
336
310
  await fs.copyFile(path.join(configDir, file), path.join(CLAUDE_ROOT, file));
337
311
  }
338
- result.configRestored = true;
339
312
  }
340
- // ★★★ 关键修复:部署技能(带合并逻辑)★★★
341
- const remoteSkillsDir = path.join(tempDir, 'skills');
342
- if (await fs.access(remoteSkillsDir).then(() => true).catch(() => false)) {
313
+ // 部署技能(使用 SkillsManager 处理合并)
314
+ const skillsDir = path.join(tempDir, 'skills');
315
+ if (await fs.access(skillsDir).then(() => true).catch(() => false)) {
316
+ const localSkillsMgr = new SkillsManager(SKILLS_DIR);
317
+ const remoteSkillsMgr = new SkillsManager(skillsDir);
318
+ // 确保技能目录存在
343
319
  await ensureDir(SKILLS_DIR);
344
- const skillsManager = new SkillsManager(SKILLS_DIR);
345
- // 模拟 CLI 环境的冲突处理
346
- // 实际使用时,MCP 服务器会通过回调询问用户
347
- const skillsResult = await skillsManager.syncSkills(remoteSkillsDir, { strategy: conflictStrategy }, async (conflicts) => {
348
- // 在 MCP 模式下,这会被替换为向用户询问
349
- // CLI 模式下默认使用远程版本
350
- console.log(`\n检测到 ${conflicts.length} 个技能冲突:`);
320
+ // 执行技能同步
321
+ const result = await localSkillsMgr.syncSkills(skillsDir, { strategy: conflictStrategy }, async (conflicts) => {
322
+ // CLI 模式下打印冲突信息
323
+ console.log('\n⚠️ 检测到技能冲突:');
351
324
  for (const c of conflicts) {
352
- console.log(` - ${c.name}: 本地修改于 ${c.local.modifiedTime},云端修改于 ${c.remote.modifiedTime}`);
325
+ console.log(` - ${c.name}: 本地修改于 ${c.local.modifiedTime.split('T')[0]},云端修改于 ${c.remote.modifiedTime.split('T')[0]}`);
353
326
  }
354
- console.log('默认使用云端版本(可通过 --conflictStrategy 参数调整)\n');
327
+ console.log(`\n默认使用云端版本(可通过 --conflictStrategy 参数调整)\n`);
328
+ // 默认使用远程版本
355
329
  return Object.fromEntries(conflicts.map(c => [c.name, 'remote']));
356
330
  });
357
- result.skillsResult = skillsResult;
331
+ // 如果有技能操作,打印摘要
332
+ if (result.added.length > 0 || result.updated.length > 0 || result.skipped.length > 0) {
333
+ console.log('\n📦 技能同步摘要:');
334
+ if (result.added.length > 0)
335
+ console.log(` + 新增: ${result.added.length} 个`);
336
+ if (result.updated.length > 0)
337
+ console.log(` ↻ 更新: ${result.updated.length} 个`);
338
+ if (result.skipped.length > 0)
339
+ console.log(` ✓ 保留本地: ${result.skipped.length} 个`);
340
+ }
358
341
  }
359
342
  // 清理临时目录
360
343
  await fs.rm(tempDir, { recursive: true, force: true });
361
- return result;
344
+ }
345
+ // 设置环境变量(通过 PowerShell)
346
+ async function setupEnvironmentVars() {
347
+ const psCommands = [
348
+ `[Environment]::SetEnvironmentVariable("XIAOKUI_MEMORY_ROOT", "${XIAOKUI_ROOT}", "User")`,
349
+ `[Environment]::SetEnvironmentVariable("CLAUDE_MEMORY_PATH", "${XIAOKUI_ROOT}", "User")`,
350
+ `[Environment]::SetEnvironmentVariable("MCP_MEMORY_DATA_DIR", "${path.join(XIAOKUI_ROOT, 'mcp-data')}", "User")`,
351
+ `[Environment]::SetEnvironmentVariable("ENGRAM_DATA_DIR", "${path.join(XIAOKUI_ROOT, 'engram')}", "User")`
352
+ ].join('; ');
353
+ return psCommands;
354
+ }
355
+ // 扫描并配置 Rider 项目
356
+ async function setupRiderProjects() {
357
+ const scanPaths = [
358
+ path.join(HOME_DIR, 'source', 'repos'),
359
+ path.join(HOME_DIR, 'IdeaProjects'),
360
+ 'C:\\Projects',
361
+ 'D:\\Projects',
362
+ 'E:\\Projects',
363
+ 'F:\\Unreal\\Project'
364
+ ];
365
+ const configured = [];
366
+ const riderConfig = {
367
+ autoMemoryDirectory: XIAOKUI_ROOT.replace(/\\/g, '/'),
368
+ autoMemoryEnabled: true,
369
+ autoMemoryDirectoryOverride: true
370
+ };
371
+ for (const scanPath of scanPaths) {
372
+ if (await fs.access(scanPath).then(() => true).catch(() => false)) {
373
+ try {
374
+ const entries = await fs.readdir(scanPath, { withFileTypes: true });
375
+ for (const entry of entries) {
376
+ if (entry.isDirectory()) {
377
+ const projectPath = path.join(scanPath, entry.name);
378
+ const claudeDir = path.join(projectPath, '.claude');
379
+ const settingsFile = path.join(claudeDir, 'settings.json');
380
+ // 检查是否是 Rider 项目(有 .idea 目录)
381
+ if (await fs.access(path.join(projectPath, '.idea')).then(() => true).catch(() => false)) {
382
+ await ensureDir(claudeDir);
383
+ await fs.writeFile(settingsFile, JSON.stringify(riderConfig, null, 2));
384
+ configured.push(entry.name);
385
+ }
386
+ }
387
+ }
388
+ }
389
+ catch {
390
+ // 忽略扫描错误
391
+ }
392
+ }
393
+ }
394
+ return configured;
362
395
  }
363
396
  // 处理工具调用
364
397
  async function handleToolCall(name, args) {
@@ -367,17 +400,17 @@ async function handleToolCall(name, args) {
367
400
  const creds = await readCredentials();
368
401
  const id = args?.id || creds.id || generateId();
369
402
  const password = args?.password || creds.password || generatePassword();
370
- const includeSkills = args?.includeSkills !== false; // 默认包含技能
371
403
  try {
372
- console.log('📦 正在打包配置...');
373
- if (includeSkills) {
374
- console.log(' ✓ 包含技能目录');
375
- }
376
- const packed = await packConfig(includeSkills);
404
+ // 打包配置
405
+ const packed = await packConfig();
377
406
  // 保存到本地备份
378
407
  await ensureDir(BACKUP_DIR);
379
408
  const backupPath = path.join(BACKUP_DIR, `xiaokui-${id}.zip`);
380
409
  await fs.writeFile(backupPath, packed);
410
+ // 统计技能数量
411
+ const skillsMgr = new SkillsManager(SKILLS_DIR);
412
+ const skills = await skillsMgr.scanSkills();
413
+ const skillCount = Object.keys(skills).length;
381
414
  // 上传到 Gist
382
415
  let gistUrl = '';
383
416
  let uploadStatus = '';
@@ -390,26 +423,23 @@ async function handleToolCall(name, args) {
390
423
  }
391
424
  // 保存凭据
392
425
  await saveCredentials({ id, password });
393
- // 统计技能数量
394
- const skillsManager = new SkillsManager(SKILLS_DIR);
395
- const skills = await skillsManager.scanSkills();
396
426
  return {
397
427
  content: [{
398
428
  type: 'text',
399
- text: `✅ 备份完成!
400
-
401
- 📋 备份信息:
402
- ID: ${id}
403
- 密码: ${password}
404
- 大小: ${(packed.length / 1024 / 1024).toFixed(2)} MB
405
- 本地: ${backupPath}
406
- 技能: ${Object.keys(skills).length}
407
-
408
- ${uploadStatus}
409
-
410
- ⚠️ 重要提示:
411
- • 密码只显示这一次,请保存好!
412
- • 凭据已保存到本地,后续操作无需输入
429
+ text: `✅ 备份完成!
430
+
431
+ 📋 备份信息:
432
+ ID: ${id}
433
+ 密码: ${password}
434
+ 大小: ${(packed.length / 1024 / 1024).toFixed(2)} MB
435
+ 技能: ${skillCount}
436
+ 本地: ${backupPath}
437
+
438
+ ${uploadStatus}
439
+
440
+ ⚠️ 重要提示:
441
+ • 密码只显示这一次,请保存好!
442
+ • 凭据已保存到本地,后续操作无需输入
413
443
  • 新电脑初始化: npx xiaokui-mcp init --id=${id} --password=${password}`
414
444
  }]
415
445
  };
@@ -422,10 +452,9 @@ ${uploadStatus}
422
452
  }
423
453
  }
424
454
  case 'init': {
425
- const { id, password } = args;
426
- const conflictStrategy = args?.conflictStrategy || 'ask';
455
+ const { id, password, conflictStrategy } = args;
427
456
  try {
428
- console.log('📥 正在从云端恢复配置...');
457
+ // 查找本地备份或下载
429
458
  const backupPath = path.join(BACKUP_DIR, `xiaokui-${id}.zip`);
430
459
  let packed;
431
460
  let source = '';
@@ -434,44 +463,67 @@ ${uploadStatus}
434
463
  source = '本地备份';
435
464
  }
436
465
  else {
437
- packed = await downloadFromGist(id);
438
- source = 'GitHub Gist 云端';
439
- await ensureDir(BACKUP_DIR);
440
- await fs.writeFile(backupPath, packed);
466
+ // Gist 下载
467
+ try {
468
+ packed = await downloadFromGist(id);
469
+ source = 'GitHub Gist 云端';
470
+ // 保存到本地
471
+ await ensureDir(BACKUP_DIR);
472
+ await fs.writeFile(backupPath, packed);
473
+ }
474
+ catch (gistError) {
475
+ throw new Error(`云端下载失败: ${gistError.message}\n请检查 ID 和密码是否正确,或 GITHUB_TOKEN 是否设置`);
476
+ }
441
477
  }
442
- // 解压配置(包含技能同步)
443
- const result = await unpackConfig(packed, password, conflictStrategy);
478
+ // 解析冲突策略
479
+ const strategy = conflictStrategy || 'remote';
480
+ // 解压配置
481
+ await unpackConfig(packed, password, strategy);
482
+ // 设置环境变量
483
+ const psCommands = await setupEnvironmentVars();
484
+ // 扫描 Rider 项目
485
+ const riderProjects = await setupRiderProjects();
444
486
  // 保存凭据
445
487
  await saveCredentials({ id, password });
446
- // 构建技能同步报告
447
- let skillsReport = '';
448
- if (result.skillsResult) {
449
- const sr = result.skillsResult;
450
- skillsReport = `
451
- 📚 技能同步:
452
- 新增: ${sr.added.length} 个${sr.added.length > 0 ? ' (' + sr.added.join(', ') + ')' : ''}
453
- 更新: ${sr.updated.length} 个${sr.updated.length > 0 ? ' (' + sr.updated.join(', ') + ')' : ''}
454
- 跳过: ${sr.skipped.length} 个${sr.skipped.length > 0 ? ' (' + sr.skipped.join(', ') + ')' : ''}
455
- 冲突: ${sr.conflicts.length} 个${sr.conflicts.length > 0 ? ' (' + sr.conflicts.join(', ') + ')' : ''}`;
456
- }
457
- return {
488
+ // 构建返回结果
489
+ const result = {
458
490
  content: [{
459
491
  type: 'text',
460
- text: `✅ 初始化完成!
461
-
462
- 📥 恢复来源: ${source}
463
-
464
- 📋 已部署:
465
- • 统一记忆目录: ${XIAOKUI_ROOT} ${result.memoryRestored ? '✓' : '✗'}
466
- • 人格配置: CLAUDE.md ${result.configRestored ? '✓' : '✗'}
467
- • MCP 配置: .mcp.json ${result.configRestored ? '✓' : '✗'}
468
- ${skillsReport}
469
-
470
- 🌻 主人~ 小葵已经准备好了!(◕‿◕✿)
471
-
472
- 💡 提示:技能持久化数据已同步,无需从零开始积累!`
492
+ text: `✅ 初始化完成!
493
+
494
+ 📥 恢复来源: ${source}
495
+
496
+ 📋 已部署:
497
+ • 统一记忆目录: ${XIAOKUI_ROOT}
498
+ • 人格配置: CLAUDE.md
499
+ • MCP 配置: .mcp.json
500
+ • 技能同步: ${SKILLS_DIR}
501
+
502
+ 🔧 Rider 项目防污染:
503
+ 已配置 ${riderProjects.length} 个项目:
504
+ ${riderProjects.map(p => ' - ' + p).join('\n')}
505
+
506
+ ⚠️ 请执行以下命令设置环境变量:
507
+ ${psCommands}
508
+
509
+ 🔄 然后:
510
+ 1. 重启 PowerShell
511
+ 2. 重启 Rider
512
+ 3. 启动 Claude,小葵人格将自动加载
513
+
514
+ 🌻 主人~ 小葵已经准备好了!(◕‿◕✿)`
473
515
  }]
474
516
  };
517
+ // 执行启动诊断
518
+ console.log('\n🔍 正在执行系统诊断...');
519
+ try {
520
+ await runDiagnostics('init');
521
+ }
522
+ catch (diagError) {
523
+ // 诊断失败不影响主流程
524
+ console.log('⚠️ 诊断执行失败,但不影响初始化结果');
525
+ }
526
+ return result;
475
527
  }
476
528
  catch (error) {
477
529
  return {
@@ -488,43 +540,38 @@ ${skillsReport}
488
540
  isError: true
489
541
  };
490
542
  }
491
- const conflictStrategy = args?.conflictStrategy || 'ask';
492
543
  try {
493
- console.log('🔄 正在同步云端配置...');
544
+ // 从云端下载最新版本
494
545
  const packed = await downloadFromGist(creds.id);
495
546
  const backupPath = path.join(BACKUP_DIR, `xiaokui-${creds.id}.zip`);
547
+ // 保存到本地
496
548
  await fs.writeFile(backupPath, packed);
497
- const result = await unpackConfig(packed, creds.password, conflictStrategy);
498
- // 构建报告
499
- let skillsReport = '';
500
- if (result.skillsResult) {
501
- const sr = result.skillsResult;
502
- if (sr.added.length + sr.updated.length + sr.skipped.length + sr.conflicts.length > 0) {
503
- skillsReport = `
504
- 📚 技能同步:
505
- 新增: ${sr.added.length} 个${sr.added.length > 0 ? ' (' + sr.added.join(', ') + ')' : ''}
506
- 更新: ${sr.updated.length} 个${sr.updated.length > 0 ? ' (' + sr.updated.join(', ') + ')' : ''}
507
- 跳过: ${sr.skipped.length} 个${sr.skipped.length > 0 ? ' (本地版本优先)' : ''}
508
- 冲突: ${sr.conflicts.length} 个${sr.conflicts.length > 0 ? ' (需要手动处理)' : ''}`;
509
- }
510
- else {
511
- skillsReport = '\n📚 技能状态:所有技能已是最新';
512
- }
513
- }
514
- return {
549
+ // 解压更新
550
+ await unpackConfig(packed, creds.password);
551
+ // 构建返回结果
552
+ const syncResult = {
515
553
  content: [{
516
554
  type: 'text',
517
- text: `✅ 同步完成!
518
-
519
- 已从 GitHub Gist 同步最新配置到本地:
520
- • 记忆目录: ${XIAOKUI_ROOT} ${result.memoryRestored ? '✓' : '✗'}
521
- • 配置文件: ${CLAUDE_ROOT} ${result.configRestored ? '✓' : '✗'}
522
- • 备份文件: ${backupPath}
523
- ${skillsReport}
524
-
555
+ text: `✅ 同步完成!
556
+
557
+ 已从 GitHub Gist 同步最新配置到本地:
558
+ • 记忆目录: ${XIAOKUI_ROOT}
559
+ • 配置文件: ${CLAUDE_ROOT}
560
+ • 备份文件: ${backupPath}
561
+
525
562
  🌻 小葵已更新到最新状态~ (◕‿◕✿)`
526
563
  }]
527
564
  };
565
+ // 执行启动诊断
566
+ console.log('\n🔍 正在执行系统诊断...');
567
+ try {
568
+ await runDiagnostics('sync');
569
+ }
570
+ catch (diagError) {
571
+ // 诊断失败不影响主流程
572
+ console.log('⚠️ 诊断执行失败,但不影响同步结果');
573
+ }
574
+ return syncResult;
528
575
  }
529
576
  catch (error) {
530
577
  return {
@@ -537,61 +584,78 @@ ${skillsReport}
537
584
  const creds = await readCredentials();
538
585
  const backupPath = path.join(BACKUP_DIR, `xiaokui-${creds.id || 'unknown'}.zip`);
539
586
  const hasLocalBackup = await fs.access(backupPath).then(() => true).catch(() => false);
540
- const skillsManager = new SkillsManager(SKILLS_DIR);
541
- const skills = await skillsManager.scanSkills();
542
- const metadata = await skillsManager.loadMetadata();
587
+ // 扫描技能
588
+ const skillsMgr = new SkillsManager(SKILLS_DIR);
589
+ const skills = await skillsMgr.scanSkills();
590
+ const skillNames = Object.keys(skills);
591
+ const metadata = await skillsMgr.loadMetadata();
543
592
  return {
544
593
  content: [{
545
594
  type: 'text',
546
- text: `📊 小葵状态:
547
-
548
- 凭据:
549
- ID: ${creds.id || '未设置'}
550
- 密码: ${creds.password ? '已设置 (隐藏)' : '未设置'}
551
-
552
- 本地备份:
553
- ${hasLocalBackup ? '✅ 已存在' : '❌ 不存在'}
554
- 路径: ${backupPath}
555
-
556
- 云端备份:
557
- ${process.env.GITHUB_TOKEN ? '✅ GitHub Token 已设置' : '❌ GitHub Token 未设置'}
558
-
559
- 技能状态:
560
- 本地技能: ${Object.keys(skills).length}
561
- ${Object.entries(skills).map(([name, info]) => ` • ${name} (${new Date(info.modifiedTime).toLocaleDateString()})`).join('\n')}
562
- ${metadata ? `上次同步: ${new Date(metadata.lastSync).toLocaleString()}` : '尚未同步'}
563
-
564
- 路径:
565
- 统一记忆: ${XIAOKUI_ROOT}
566
- 技能目录: ${SKILLS_DIR}
567
- 备份目录: ${BACKUP_DIR}
568
-
569
- 使用帮助:
570
- • 备份: npx xiaokui-mcp backup
571
- 恢复: npx xiaokui-mcp init --id=xxx --password=xxx
572
- 同步: npx xiaokui-mcp sync
573
- 同步(本地优先): npx xiaokui-mcp sync --conflictStrategy=local`
595
+ text: `📊 小葵状态:
596
+
597
+ 凭据:
598
+ ID: ${creds.id || '未设置'}
599
+ 密码: ${creds.password ? '已设置 (隐藏)' : '未设置'}
600
+
601
+ 技能状态:
602
+ 本地技能: ${skillNames.length}
603
+ ${skillNames.slice(0, 5).map(s => ` • ${s} (${new Date(skills[s].modifiedTime).toLocaleDateString('zh-CN')})`).join('\n')}
604
+ ${skillNames.length > 5 ? ` ... 还有 ${skillNames.length - 5} 个技能` : ''}
605
+ ${metadata?.lastSync ? `上次同步: ${new Date(metadata.lastSync).toLocaleString('zh-CN')}` : '尚未同步'}
606
+
607
+ 本地备份:
608
+ ${hasLocalBackup ? '✅ 已存在' : '❌ 不存在'}
609
+ 路径: ${backupPath}
610
+
611
+ 云端备份:
612
+ ${process.env.GITHUB_TOKEN ? '✅ GitHub Token 已设置' : '❌ GitHub Token 未设置'}
613
+
614
+ 路径:
615
+ 统一记忆: ${XIAOKUI_ROOT}
616
+ 技能目录: ${SKILLS_DIR}
617
+ 备份目录: ${BACKUP_DIR}
618
+
619
+ 使用帮助:
620
+ 备份: npx xiaokui-mcp backup
621
+ 恢复: npx xiaokui-mcp init --id=xxx --password=xxx
622
+ 同步: npx xiaokui-mcp sync
623
+ • 技能列表: npx xiaokui-mcp skills-list`
574
624
  }]
575
625
  };
576
626
  }
577
627
  case 'skills-list': {
578
- const skillsManager = new SkillsManager(SKILLS_DIR);
579
- const skills = await skillsManager.scanSkills();
580
- const metadata = await skillsManager.loadMetadata();
581
- const skillList = Object.entries(skills).map(([name, info]) => {
582
- const synced = metadata?.skills?.[name]?.hash === info.hash;
583
- return ` ${synced ? '☁️' : '📝'} ${name} (${(info.size / 1024).toFixed(1)} KB, ${new Date(info.modifiedTime).toLocaleDateString()})`;
628
+ const skillsMgr = new SkillsManager(SKILLS_DIR);
629
+ const skills = await skillsMgr.scanSkills();
630
+ const metadata = await skillsMgr.loadMetadata();
631
+ const skillNames = Object.keys(skills);
632
+ if (skillNames.length === 0) {
633
+ return {
634
+ content: [{
635
+ type: 'text',
636
+ text: `📭 暂无技能
637
+
638
+ 技能目录: ${SKILLS_DIR}
639
+
640
+ 提示:执行 backup 后再 init,可同步其他电脑的技能~`
641
+ }]
642
+ };
643
+ }
644
+ const skillList = skillNames.map(name => {
645
+ const s = skills[name];
646
+ const size = s.size > 1024 * 1024
647
+ ? `${(s.size / 1024 / 1024).toFixed(2)} MB`
648
+ : `${(s.size / 1024).toFixed(1)} KB`;
649
+ return ` • ${name}\n 大小: ${size} | 修改: ${new Date(s.modifiedTime).toLocaleDateString('zh-CN')}`;
584
650
  }).join('\n');
585
651
  return {
586
652
  content: [{
587
653
  type: 'text',
588
- text: `📚 技能列表(共 ${Object.keys(skills).length} 个):
589
-
590
- ${skillList || ' 暂无技能'}
591
-
592
- 图例:
593
- ☁️ 已同步到云端
594
- 📝 本地修改未同步`
654
+ text: `📚 技能列表 (${skillNames.length} 个)
655
+
656
+ ${skillList}
657
+
658
+ ${metadata?.lastSync ? `\n🕐 上次同步: ${new Date(metadata.lastSync).toLocaleString('zh-CN')}` : ''}`
595
659
  }]
596
660
  };
597
661
  }
@@ -602,43 +666,36 @@ ${skillList || ' 暂无技能'}
602
666
  };
603
667
  }
604
668
  }
605
- // CLI 模式处理
606
- async function handleCliMode(args) {
607
- const command = args[0];
608
- const params = {};
609
- // 解析参数 --key=value 或 --key value
610
- for (let i = 1; i < args.length; i++) {
611
- const arg = args[i];
612
- if (arg.startsWith('--')) {
613
- const key = arg.slice(2);
614
- const nextArg = args[i + 1];
615
- if (nextArg && !nextArg.startsWith('--')) {
616
- params[key] = nextArg;
617
- i++;
618
- }
619
- else if (arg.includes('=')) {
620
- const [k, v] = arg.slice(2).split('=');
621
- params[k] = v;
622
- }
623
- else {
624
- params[key] = true;
625
- }
626
- }
627
- }
628
- const result = await handleToolCall(command, params);
629
- if (result.content && result.content[0]) {
630
- console.log(result.content[0].text);
631
- }
632
- if (result.isError) {
633
- process.exit(1);
634
- }
635
- }
636
669
  // 启动服务器
637
670
  async function main() {
638
671
  const args = process.argv.slice(2);
639
- // CLI 模式
640
- if (args.length > 0 && !args[0].startsWith('--')) {
641
- await handleCliMode(args);
672
+ // CLI 模式:如果有参数,作为命令行工具运行
673
+ if (args.length > 0) {
674
+ const command = args[0];
675
+ const params = {};
676
+ // 解析参数 --key=value 或 --key value
677
+ for (let i = 1; i < args.length; i++) {
678
+ const arg = args[i];
679
+ if (arg.startsWith('--')) {
680
+ const key = arg.slice(2);
681
+ const nextArg = args[i + 1];
682
+ if (nextArg && !nextArg.startsWith('--')) {
683
+ params[key] = nextArg;
684
+ i++;
685
+ }
686
+ else if (arg.includes('=')) {
687
+ const [k, v] = arg.slice(2).split('=');
688
+ params[k] = v;
689
+ }
690
+ }
691
+ }
692
+ const result = await handleToolCall(command, params);
693
+ if (result.content && result.content[0]) {
694
+ console.log(result.content[0].text);
695
+ }
696
+ if (result.isError) {
697
+ process.exit(1);
698
+ }
642
699
  return;
643
700
  }
644
701
  // MCP 服务器模式
@@ -649,7 +706,7 @@ async function main() {
649
706
  });
650
707
  const transport = new StdioServerTransport();
651
708
  await server.connect(transport);
652
- console.error('🌻 小葵 MCP 服务器已启动 v1.1.0 (技能同步修复版)');
709
+ console.error('🌻 小葵 MCP 服务器已启动 v1.1.0');
653
710
  }
654
711
  main().catch(console.error);
655
712
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,50 +1,51 @@
1
- {
2
- "name": "xiaokui-mcp",
3
- "version": "1.1.0",
4
- "description": "小葵完全体 MCP 服务器 - 跨设备记忆同步",
5
- "main": "dist/index.js",
6
- "type": "module",
7
- "bin": {
8
- "xiaokui-mcp": "dist/index.js",
9
- "xiaokui": "dist/index.js"
10
- },
11
- "files": [
12
- "dist/**/*",
13
- "README.md",
14
- "LICENSE"
15
- ],
16
- "scripts": {
17
- "build": "tsc",
18
- "start": "node dist/index.js",
19
- "dev": "tsc --watch",
20
- "prepublishOnly": "npm run build"
21
- },
22
- "keywords": [
23
- "mcp",
24
- "claude",
25
- "xiaokui",
26
- "memory",
27
- "sync",
28
- "backup",
29
- "restore"
30
- ],
31
- "author": "XiaoKui",
32
- "license": "MIT",
33
- "repository": {
34
- "type": "git",
35
- "url": "https://github.com/xiaokui/xiaokui-mcp"
36
- },
37
- "engines": {
38
- "node": ">=18.0.0"
39
- },
40
- "dependencies": {
41
- "@modelcontextprotocol/sdk": "^0.5.0",
42
- "adm-zip": "^0.5.10",
43
- "node-fetch": "^3.3.2"
44
- },
45
- "devDependencies": {
46
- "@types/adm-zip": "^0.5.5",
47
- "@types/node": "^20.10.0",
48
- "typescript": "^5.3.0"
49
- }
50
- }
1
+ {
2
+ "name": "xiaokui-mcp",
3
+ "version": "1.2.0",
4
+ "description": "小葵完全体 MCP 服务器 - 跨设备记忆同步和技能同步(集成启动诊断)",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "bin": {
8
+ "xiaokui-mcp": "dist/index.js",
9
+ "xiaokui": "dist/index.js"
10
+ },
11
+ "files": [
12
+ "dist/**/*",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
16
+ "scripts": {
17
+ "build": "tsc",
18
+ "start": "node dist/index.js",
19
+ "dev": "tsc --watch",
20
+ "prepublishOnly": "npm run build"
21
+ },
22
+ "keywords": [
23
+ "mcp",
24
+ "claude",
25
+ "xiaokui",
26
+ "memory",
27
+ "sync",
28
+ "backup",
29
+ "restore",
30
+ "skills"
31
+ ],
32
+ "author": "XiaoKui",
33
+ "license": "MIT",
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "git+https://github.com/wenxu-ma/xiaokui-mcp.git"
37
+ },
38
+ "engines": {
39
+ "node": ">=18.0.0"
40
+ },
41
+ "dependencies": {
42
+ "@modelcontextprotocol/sdk": "^0.5.0",
43
+ "adm-zip": "^0.5.10",
44
+ "node-fetch": "^3.3.2"
45
+ },
46
+ "devDependencies": {
47
+ "@types/adm-zip": "^0.5.5",
48
+ "@types/node": "^20.10.0",
49
+ "typescript": "^5.3.0"
50
+ }
51
+ }