@birdmichael/ccsync 1.0.10 → 1.0.12
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/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +15 -3
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/daemon.d.ts +9 -0
- package/dist/commands/daemon.d.ts.map +1 -0
- package/dist/commands/daemon.js +44 -0
- package/dist/commands/daemon.js.map +1 -0
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +26 -18
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +18 -4
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +7 -5
- package/dist/commands/status.js.map +1 -1
- package/dist/core/config-manager.d.ts +2 -0
- package/dist/core/config-manager.d.ts.map +1 -1
- package/dist/core/config-manager.js +77 -51
- package/dist/core/config-manager.js.map +1 -1
- package/dist/core/launch-agent.d.ts +1 -0
- package/dist/core/launch-agent.d.ts.map +1 -1
- package/dist/core/launch-agent.js +15 -6
- package/dist/core/launch-agent.js.map +1 -1
- package/dist/core/service-manager.d.ts +1 -3
- package/dist/core/service-manager.d.ts.map +1 -1
- package/dist/core/service-manager.js +94 -22
- package/dist/core/service-manager.js.map +1 -1
- package/dist/core/sync-service.d.ts +7 -0
- package/dist/core/sync-service.d.ts.map +1 -1
- package/dist/core/sync-service.js +70 -18
- package/dist/core/sync-service.js.map +1 -1
- package/dist/syncers/mcp-syncer.d.ts +1 -0
- package/dist/syncers/mcp-syncer.d.ts.map +1 -1
- package/dist/syncers/mcp-syncer.js +50 -17
- package/dist/syncers/mcp-syncer.js.map +1 -1
- package/dist/types/config.d.ts +1 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js.map +1 -1
- package/dist/types/mcp.d.ts +1 -1
- package/dist/utils/file-watcher.d.ts.map +1 -1
- package/dist/utils/file-watcher.js +6 -2
- package/dist/utils/file-watcher.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +15 -4
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/process-helper.d.ts +3 -0
- package/dist/utils/process-helper.d.ts.map +1 -0
- package/dist/utils/process-helper.js +22 -0
- package/dist/utils/process-helper.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import fs from 'fs-extra';
|
|
2
|
+
import { execFile } from 'node:child_process';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { promisify } from 'node:util';
|
|
2
5
|
import { logger } from '../utils/logger.js';
|
|
3
6
|
import { TEXTS } from '../utils/texts.js';
|
|
4
|
-
import { formatDuration } from '../utils/time-helper.js';
|
|
7
|
+
import { expandPath, formatDuration } from '../utils/time-helper.js';
|
|
8
|
+
const execFileAsync = promisify(execFile);
|
|
5
9
|
class McpSyncer {
|
|
6
10
|
cachedMcpServers = [];
|
|
7
11
|
dbPath;
|
|
@@ -9,16 +13,19 @@ class McpSyncer {
|
|
|
9
13
|
selectedPlatforms;
|
|
10
14
|
targetPath;
|
|
11
15
|
constructor(dbPath, targetPath, selectedPlatforms) {
|
|
12
|
-
this.dbPath = dbPath;
|
|
13
|
-
this.targetPath = targetPath;
|
|
16
|
+
this.dbPath = expandPath(dbPath);
|
|
17
|
+
this.targetPath = expandPath(targetPath);
|
|
14
18
|
this.selectedPlatforms = selectedPlatforms;
|
|
15
19
|
}
|
|
16
20
|
async sync() {
|
|
17
21
|
const startTime = Date.now();
|
|
18
22
|
try {
|
|
19
23
|
logger.info(TEXTS.logs.messages.checkingDb);
|
|
24
|
+
if (!await fs.pathExists(this.dbPath)) {
|
|
25
|
+
throw new Error(`无法找到数据库文件:${this.dbPath}`);
|
|
26
|
+
}
|
|
20
27
|
const currentMtime = await this.getDbMtime();
|
|
21
|
-
if (currentMtime === this.lastDbMtime) {
|
|
28
|
+
if (currentMtime === this.lastDbMtime && this.cachedMcpServers.length > 0) {
|
|
22
29
|
logger.info(TEXTS.logs.messages.dbNotChanged);
|
|
23
30
|
return {
|
|
24
31
|
cached: true,
|
|
@@ -27,7 +34,8 @@ class McpSyncer {
|
|
|
27
34
|
};
|
|
28
35
|
}
|
|
29
36
|
logger.info(TEXTS.logs.messages.dbChanged);
|
|
30
|
-
const mcpServers = this.
|
|
37
|
+
const mcpServers = await this.loadMcpServersFromDb();
|
|
38
|
+
this.cachedMcpServers = mcpServers;
|
|
31
39
|
this.lastDbMtime = currentMtime;
|
|
32
40
|
const filteredServers = this.filterServersByPlatform(mcpServers);
|
|
33
41
|
const openCodeMcpConfig = this.transformConfig(filteredServers);
|
|
@@ -65,26 +73,50 @@ class McpSyncer {
|
|
|
65
73
|
});
|
|
66
74
|
}
|
|
67
75
|
async getDbMtime() {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
76
|
+
const stats = await fs.stat(this.dbPath);
|
|
77
|
+
return stats.mtimeMs;
|
|
78
|
+
}
|
|
79
|
+
async loadMcpServersFromDb() {
|
|
80
|
+
const query = [
|
|
81
|
+
'SELECT id, name, server_config, enabled_claude, enabled_codex, enabled_gemini',
|
|
82
|
+
'FROM mcp_servers;',
|
|
83
|
+
].join(' ');
|
|
84
|
+
const { stdout } = await execFileAsync('sqlite3', ['-json', this.dbPath, query], {
|
|
85
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
86
|
+
});
|
|
87
|
+
if (!stdout.trim()) {
|
|
88
|
+
return [];
|
|
71
89
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
90
|
+
const rows = JSON.parse(stdout);
|
|
91
|
+
const servers = [];
|
|
92
|
+
for (const row of rows) {
|
|
93
|
+
let config = { command: 'echo' };
|
|
94
|
+
try {
|
|
95
|
+
config = JSON.parse(row.server_config);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
logger.warn(`解析 MCP server_config 失败 (${row.id}):${error instanceof Error ? error.message : String(error)}`);
|
|
99
|
+
}
|
|
100
|
+
servers.push({
|
|
101
|
+
config,
|
|
102
|
+
enabledClaude: Boolean(row.enabled_claude),
|
|
103
|
+
enabledCodex: Boolean(row.enabled_codex),
|
|
104
|
+
enabledGemini: Boolean(row.enabled_gemini),
|
|
105
|
+
id: row.id,
|
|
106
|
+
name: row.name,
|
|
107
|
+
});
|
|
75
108
|
}
|
|
109
|
+
return servers;
|
|
76
110
|
}
|
|
77
111
|
transformConfig(servers) {
|
|
78
112
|
const config = {};
|
|
79
113
|
for (const server of servers) {
|
|
80
|
-
const serverConfig = server.config || {
|
|
81
|
-
|
|
82
|
-
command: 'echo',
|
|
83
|
-
};
|
|
84
|
-
const { args = [], command } = serverConfig;
|
|
114
|
+
const serverConfig = server.config || { command: 'echo' };
|
|
115
|
+
const { args = [], command, env } = serverConfig;
|
|
85
116
|
config[server.name] = {
|
|
86
|
-
command: [command, ...args],
|
|
117
|
+
command: [command || 'echo', ...args],
|
|
87
118
|
enabled: true,
|
|
119
|
+
...(env ? { environment: env } : {}),
|
|
88
120
|
type: 'local',
|
|
89
121
|
};
|
|
90
122
|
}
|
|
@@ -93,6 +125,7 @@ class McpSyncer {
|
|
|
93
125
|
}
|
|
94
126
|
async updateOpenCodeConfig(mcpConfig) {
|
|
95
127
|
try {
|
|
128
|
+
await fs.ensureDir(path.dirname(this.targetPath));
|
|
96
129
|
let existingConfig = {};
|
|
97
130
|
try {
|
|
98
131
|
const content = await fs.readFile(this.targetPath, 'utf8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-syncer.js","sourceRoot":"","sources":["../../src/syncers/mcp-syncer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-syncer.js","sourceRoot":"","sources":["../../src/syncers/mcp-syncer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAKtC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAW1C,MAAM,SAAS;IACL,gBAAgB,GAAgB,EAAE,CAAC;IACnC,MAAM,CAAS;IACf,WAAW,GAAW,CAAC,CAAC;IACxB,iBAAiB,CAAW;IAC5B,UAAU,CAAS;IAE3B,YAAY,MAAc,EAAE,UAAkB,EAAE,iBAA2B;QACzE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAE5C,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9C,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAE7C,IAAI,YAAY,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1E,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC9C,OAAO;oBACL,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM;iBACrC,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACrD,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;YACnC,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;YAEhC,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;YACjE,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YAChE,MAAM,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;YAEnD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAElF,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,eAAe,CAAC,MAAM;aAC/B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5F,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChE,MAAM,EAAE,CAAC;aACV,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,OAAoB;QAClD,MAAM,EAAC,iBAAiB,EAAC,GAAG,IAAI,CAAC;QAEjC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACxB,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,aAAa,CACrD,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACxB,IAAI,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,aAAa;gBAAE,OAAO,IAAI,CAAC;YACzE,IAAI,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAC;YACvE,IAAI,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,aAAa;gBAAE,OAAO,IAAI,CAAC;YACzE,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,MAAM,KAAK,GAAG;YACZ,+EAA+E;YAC/E,mBAAmB;SACpB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEZ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;YAC/E,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SAC5B,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAO5B,CAAC;QAEH,MAAM,OAAO,GAAgB,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,MAAM,GAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAClD,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAoB,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,4BAA4B,GAAG,CAAC,EAAE,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC/G,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM;gBACN,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;gBAC1C,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;gBACxC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;gBAC1C,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,GAAG,CAAC,IAAI;aACf,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,eAAe,CAAC,OAAoB;QAC1C,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAE1D,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;gBACpB,OAAO,EAAE,CAAC,OAAO,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC;gBACrC,OAAO,EAAE,IAAI;gBACb,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpC,IAAI,EAAE,OAAO;aACd,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,cAAc,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,SAA8B;QAC/D,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAElD,IAAI,cAAc,GAAwB,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAC3D,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACrC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC1C,CAAC;YAED,cAAc,CAAC,GAAG,GAAG,SAAS,CAAC;YAE/B,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7E,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAE/B,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACvH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;CACF;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,eAAe,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;SAAE,CAAC,CAAC;KAClE,CAAC;IACF,OAAO,EAAE,aAAa,CAAC;IAEvB,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAE5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAEhC,GAAG,EAAE,SAAS,CAAC;IAEf,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAE3B,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,OAAO,EAAE;QACP,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IAEF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IAExB,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,EAAE,OAAO,CAAC;IAIjB,SAAS,EAAE,CAAC,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC;IAErD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAE9B,OAAO,EAAE,OAAO,CAAC;IAEjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAGD,eAAO,MAAM,cAAc,EAAE,UAqC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,eAAe,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;SAAE,CAAC,CAAC;KAClE,CAAC;IACF,OAAO,EAAE,aAAa,CAAC;IAEvB,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAE5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAEhC,GAAG,EAAE,SAAS,CAAC;IAEf,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAE3B,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,OAAO,EAAE;QACP,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IAEF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IAExB,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,EAAE,OAAO,CAAC;IAIjB,SAAS,EAAE,CAAC,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,EAAE,CAAC;IAErD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAE9B,OAAO,EAAE,OAAO,CAAC;IAEjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAGD,eAAO,MAAM,cAAc,EAAE,UAqC5B,CAAC"}
|
package/dist/types/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,WAAW;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,WAAW;AA2EX,OAAO;AACP,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,SAAS,EAAE;QACT,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,8CAA8C;KAChE;IACD,MAAM,EAAE,CAAC;IACT,GAAG,EAAE;QACH,KAAK,EAAE,CAAC;KACT;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,uCAAuC;QAChD,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,KAAK;KACf;IACD,MAAM,EAAE;QACN,KAAK,EAAE,CAAC;KACT;IACD,IAAI,EAAE;QACJ,GAAG,EAAE;YACH,MAAM,EAAE,2BAA2B;YACnC,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,CAAC,QAAQ,CAAC;YACrB,MAAM,EAAE,kCAAkC;SAC3C;QACD,MAAM,EAAE;YACN,KAAK,EAAE;gBACL,MAAM,EAAE,iEAAiE;gBACzE,KAAK,EAAE,kBAAkB;aAC1B;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,KAAK;aACb;YACD,MAAM,EAAE,mBAAmB;SAC5B;KACF;CACF,CAAC"}
|
package/dist/types/mcp.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-watcher.d.ts","sourceRoot":"","sources":["../../src/utils/file-watcher.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,cAAM,WAAW;IACf,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,cAAc,CAAa;gBAEvB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAKjD,IAAI,IAAI,IAAI;IAmBZ,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAQtC,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IA4BxD,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"file-watcher.d.ts","sourceRoot":"","sources":["../../src/utils/file-watcher.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,cAAM,WAAW;IACf,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,cAAc,CAAa;gBAEvB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAKjD,IAAI,IAAI,IAAI;IAmBZ,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAQtC,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IA4BxD,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;CA4ChE;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -65,11 +65,15 @@ class FileWatcher {
|
|
|
65
65
|
continue;
|
|
66
66
|
}
|
|
67
67
|
const watcher = chokidar.watch(skillsPath, {
|
|
68
|
-
ignoreInitial:
|
|
68
|
+
ignoreInitial: true,
|
|
69
69
|
persistent: true,
|
|
70
70
|
});
|
|
71
71
|
watcher.on('all', (eventName, path) => {
|
|
72
|
-
if (eventName === 'add'
|
|
72
|
+
if (eventName === 'add'
|
|
73
|
+
|| eventName === 'addDir'
|
|
74
|
+
|| eventName === 'change'
|
|
75
|
+
|| eventName === 'unlink'
|
|
76
|
+
|| eventName === 'unlinkDir') {
|
|
73
77
|
logger.debug(`Skills 目录变化:${eventName} ${path}`);
|
|
74
78
|
if (events.onSkillsChange) {
|
|
75
79
|
events.onSkillsChange();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../src/utils/file-watcher.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../src/utils/file-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AASA,cAAM,MAAM;IACV,OAAO,CAAC,MAAM,CAAiB;gBAEnB,QAAQ,GAAE,MAAe;IAqDrC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIxD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIxD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIvD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK9B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIvD,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;CASrB;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -2,12 +2,23 @@ import fs from 'fs-extra';
|
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import winston from 'winston';
|
|
4
4
|
import DailyRotateFile from 'winston-daily-rotate-file';
|
|
5
|
-
const
|
|
5
|
+
const DEFAULT_LOG_DIR = path.join(process.env.HOME || '', '.local', 'share', 'ccsync', 'logs');
|
|
6
|
+
const FALLBACK_LOG_DIR = path.join(process.cwd(), 'tmp', 'logs');
|
|
7
|
+
const LOG_DIR = process.env.CCSYNC_LOG_DIR || DEFAULT_LOG_DIR;
|
|
6
8
|
class Logger {
|
|
7
9
|
logger;
|
|
8
10
|
constructor(logLevel = 'info') {
|
|
9
|
-
//
|
|
10
|
-
|
|
11
|
+
// 确保日志目录存在(测试/沙箱环境可能无法写入 HOME)
|
|
12
|
+
let logDir = LOG_DIR;
|
|
13
|
+
try {
|
|
14
|
+
fs.ensureDirSync(logDir);
|
|
15
|
+
fs.accessSync(logDir, fs.constants.W_OK);
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
logDir = FALLBACK_LOG_DIR;
|
|
19
|
+
fs.ensureDirSync(logDir);
|
|
20
|
+
fs.accessSync(logDir, fs.constants.W_OK);
|
|
21
|
+
}
|
|
11
22
|
this.logger = winston.createLogger({
|
|
12
23
|
format: winston.format.combine(winston.format.timestamp({ format: 'HH:mm:ss' }), winston.format.printf(({ level, message, timestamp }) => {
|
|
13
24
|
const color = this.getLevelColor(level);
|
|
@@ -27,7 +38,7 @@ class Logger {
|
|
|
27
38
|
// 文件输出(每日轮转)
|
|
28
39
|
new DailyRotateFile({
|
|
29
40
|
datePattern: 'YYYY-MM-DD',
|
|
30
|
-
dirname:
|
|
41
|
+
dirname: logDir,
|
|
31
42
|
filename: 'ccsync-%DATE%.log',
|
|
32
43
|
format: winston.format.combine(winston.format.timestamp({ format: 'HH:mm:ss' }), winston.format.printf(({ level, message, timestamp }) => {
|
|
33
44
|
const icon = this.getLevelIcon(level);
|
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAExD,MAAM,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-helper.d.ts","sourceRoot":"","sources":["../../src/utils/process-helper.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CASrD;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,cAAc,GAAE,MAAY,GAC3B,OAAO,CAAC,OAAO,CAAC,CASlB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { sleep } from './time-helper.js';
|
|
2
|
+
export function isProcessRunning(pid) {
|
|
3
|
+
if (!Number.isFinite(pid) || pid <= 0)
|
|
4
|
+
return false;
|
|
5
|
+
try {
|
|
6
|
+
process.kill(pid, 0);
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export async function waitForProcessExit(pid, timeoutMs, pollIntervalMs = 200) {
|
|
14
|
+
const deadline = Date.now() + timeoutMs;
|
|
15
|
+
while (Date.now() < deadline) {
|
|
16
|
+
if (!isProcessRunning(pid))
|
|
17
|
+
return true;
|
|
18
|
+
await sleep(pollIntervalMs);
|
|
19
|
+
}
|
|
20
|
+
return !isProcessRunning(pid);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=process-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-helper.js","sourceRoot":"","sources":["../../src/utils/process-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAEpD,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,SAAiB,EACjB,iBAAyB,GAAG;IAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAExC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACxC,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC"}
|