@birdmichael/ccsync 1.0.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.
Files changed (146) hide show
  1. package/README.md +241 -0
  2. package/bin/dev.cmd +3 -0
  3. package/bin/dev.js +5 -0
  4. package/bin/run.cmd +3 -0
  5. package/bin/run.js +5 -0
  6. package/dist/commands/config.d.ts +18 -0
  7. package/dist/commands/config.d.ts.map +1 -0
  8. package/dist/commands/config.js +111 -0
  9. package/dist/commands/config.js.map +1 -0
  10. package/dist/commands/dashboard.d.ts +9 -0
  11. package/dist/commands/dashboard.d.ts.map +1 -0
  12. package/dist/commands/dashboard.js +51 -0
  13. package/dist/commands/dashboard.js.map +1 -0
  14. package/dist/commands/hello/index.d.ts +13 -0
  15. package/dist/commands/hello/index.d.ts.map +1 -0
  16. package/dist/commands/hello/index.js +20 -0
  17. package/dist/commands/hello/index.js.map +1 -0
  18. package/dist/commands/hello/world.d.ts +9 -0
  19. package/dist/commands/hello/world.d.ts.map +1 -0
  20. package/dist/commands/hello/world.js +15 -0
  21. package/dist/commands/hello/world.js.map +1 -0
  22. package/dist/commands/logs.d.ts +16 -0
  23. package/dist/commands/logs.d.ts.map +1 -0
  24. package/dist/commands/logs.js +101 -0
  25. package/dist/commands/logs.js.map +1 -0
  26. package/dist/commands/menu.d.ts +13 -0
  27. package/dist/commands/menu.d.ts.map +1 -0
  28. package/dist/commands/menu.js +190 -0
  29. package/dist/commands/menu.js.map +1 -0
  30. package/dist/commands/setup.d.ts +7 -0
  31. package/dist/commands/setup.d.ts.map +1 -0
  32. package/dist/commands/setup.js +270 -0
  33. package/dist/commands/setup.js.map +1 -0
  34. package/dist/commands/start.d.ts +7 -0
  35. package/dist/commands/start.d.ts.map +1 -0
  36. package/dist/commands/start.js +16 -0
  37. package/dist/commands/start.js.map +1 -0
  38. package/dist/commands/status.d.ts +3 -0
  39. package/dist/commands/status.d.ts.map +1 -0
  40. package/dist/commands/status.js +63 -0
  41. package/dist/commands/status.js.map +1 -0
  42. package/dist/commands/stop.d.ts +7 -0
  43. package/dist/commands/stop.d.ts.map +1 -0
  44. package/dist/commands/stop.js +16 -0
  45. package/dist/commands/stop.js.map +1 -0
  46. package/dist/commands/sync.d.ts +7 -0
  47. package/dist/commands/sync.d.ts.map +1 -0
  48. package/dist/commands/sync.js +33 -0
  49. package/dist/commands/sync.js.map +1 -0
  50. package/dist/commands/test.d.ts +8 -0
  51. package/dist/commands/test.d.ts.map +1 -0
  52. package/dist/commands/test.js +27 -0
  53. package/dist/commands/test.js.map +1 -0
  54. package/dist/commands/toggle.d.ts +7 -0
  55. package/dist/commands/toggle.d.ts.map +1 -0
  56. package/dist/commands/toggle.js +22 -0
  57. package/dist/commands/toggle.js.map +1 -0
  58. package/dist/core/config-manager.d.ts +19 -0
  59. package/dist/core/config-manager.d.ts.map +1 -0
  60. package/dist/core/config-manager.js +174 -0
  61. package/dist/core/config-manager.js.map +1 -0
  62. package/dist/core/launch-agent.d.ts +12 -0
  63. package/dist/core/launch-agent.d.ts.map +1 -0
  64. package/dist/core/launch-agent.js +89 -0
  65. package/dist/core/launch-agent.js.map +1 -0
  66. package/dist/core/permission-manager.d.ts +18 -0
  67. package/dist/core/permission-manager.d.ts.map +1 -0
  68. package/dist/core/permission-manager.js +94 -0
  69. package/dist/core/permission-manager.js.map +1 -0
  70. package/dist/core/service-manager.d.ts +33 -0
  71. package/dist/core/service-manager.d.ts.map +1 -0
  72. package/dist/core/service-manager.js +108 -0
  73. package/dist/core/service-manager.js.map +1 -0
  74. package/dist/core/sync-service.d.ts +29 -0
  75. package/dist/core/sync-service.d.ts.map +1 -0
  76. package/dist/core/sync-service.js +180 -0
  77. package/dist/core/sync-service.js.map +1 -0
  78. package/dist/index.d.ts +2 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +2 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/syncers/base-syncer.d.ts +5 -0
  83. package/dist/syncers/base-syncer.d.ts.map +1 -0
  84. package/dist/syncers/base-syncer.js +3 -0
  85. package/dist/syncers/base-syncer.js.map +1 -0
  86. package/dist/syncers/mcp-syncer.d.ts +16 -0
  87. package/dist/syncers/mcp-syncer.d.ts.map +1 -0
  88. package/dist/syncers/mcp-syncer.js +116 -0
  89. package/dist/syncers/mcp-syncer.js.map +1 -0
  90. package/dist/syncers/skills-syncer.d.ts +13 -0
  91. package/dist/syncers/skills-syncer.d.ts.map +1 -0
  92. package/dist/syncers/skills-syncer.js +153 -0
  93. package/dist/syncers/skills-syncer.js.map +1 -0
  94. package/dist/types/config.d.ts +53 -0
  95. package/dist/types/config.d.ts.map +1 -0
  96. package/dist/types/config.js +33 -0
  97. package/dist/types/config.js.map +1 -0
  98. package/dist/types/mcp.d.ts +20 -0
  99. package/dist/types/mcp.d.ts.map +1 -0
  100. package/dist/types/mcp.js +3 -0
  101. package/dist/types/mcp.js.map +1 -0
  102. package/dist/types/sync.d.ts +44 -0
  103. package/dist/types/sync.d.ts.map +1 -0
  104. package/dist/types/sync.js +3 -0
  105. package/dist/types/sync.js.map +1 -0
  106. package/dist/types/ui.d.ts +263 -0
  107. package/dist/types/ui.d.ts.map +1 -0
  108. package/dist/types/ui.js +3 -0
  109. package/dist/types/ui.js.map +1 -0
  110. package/dist/ui/config/index.d.ts +12 -0
  111. package/dist/ui/config/index.d.ts.map +1 -0
  112. package/dist/ui/config/index.js +43 -0
  113. package/dist/ui/config/index.js.map +1 -0
  114. package/dist/ui/dashboard/index.d.ts +14 -0
  115. package/dist/ui/dashboard/index.d.ts.map +1 -0
  116. package/dist/ui/dashboard/index.js +90 -0
  117. package/dist/ui/dashboard/index.js.map +1 -0
  118. package/dist/ui/error/index.d.ts +13 -0
  119. package/dist/ui/error/index.d.ts.map +1 -0
  120. package/dist/ui/error/index.js +27 -0
  121. package/dist/ui/error/index.js.map +1 -0
  122. package/dist/ui/setup/index.d.ts +11 -0
  123. package/dist/ui/setup/index.d.ts.map +1 -0
  124. package/dist/ui/setup/index.js +18 -0
  125. package/dist/ui/setup/index.js.map +1 -0
  126. package/dist/utils/error-handler.d.ts +21 -0
  127. package/dist/utils/error-handler.d.ts.map +1 -0
  128. package/dist/utils/error-handler.js +178 -0
  129. package/dist/utils/error-handler.js.map +1 -0
  130. package/dist/utils/file-watcher.d.ts +17 -0
  131. package/dist/utils/file-watcher.d.ts.map +1 -0
  132. package/dist/utils/file-watcher.js +92 -0
  133. package/dist/utils/file-watcher.js.map +1 -0
  134. package/dist/utils/logger.d.ts +14 -0
  135. package/dist/utils/logger.d.ts.map +1 -0
  136. package/dist/utils/logger.js +72 -0
  137. package/dist/utils/logger.js.map +1 -0
  138. package/dist/utils/texts.d.ts +263 -0
  139. package/dist/utils/texts.d.ts.map +1 -0
  140. package/dist/utils/texts.js +270 -0
  141. package/dist/utils/texts.js.map +1 -0
  142. package/dist/utils/time-helper.d.ts +8 -0
  143. package/dist/utils/time-helper.d.ts.map +1 -0
  144. package/dist/utils/time-helper.js +67 -0
  145. package/dist/utils/time-helper.js.map +1 -0
  146. package/package.json +79 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-syncer.js","sourceRoot":"","sources":["../../src/syncers/mcp-syncer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { SkillsSyncResult } from '../types/sync';
2
+ declare class SkillsSyncer {
3
+ private sourcePaths;
4
+ private sources;
5
+ private targetPath;
6
+ constructor(sources: Record<string, boolean>, sourcePaths: Record<string, string>, targetPath: string);
7
+ sync(): Promise<SkillsSyncResult>;
8
+ private createSymlinks;
9
+ private extractSkillName;
10
+ private scanSkills;
11
+ }
12
+ export { SkillsSyncer };
13
+ //# sourceMappingURL=skills-syncer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills-syncer.d.ts","sourceRoot":"","sources":["../../src/syncers/skills-syncer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAUjD,cAAM,YAAY;IAChB,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM;IAS/F,IAAI,IAAI,OAAO,CAAC,gBAAgB,CAAC;YAqDzB,cAAc;IA8C5B,OAAO,CAAC,gBAAgB;YAkBV,UAAU;CA+BzB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,153 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'node:path';
3
+ import { logger } from '../utils/logger';
4
+ import { TEXTS } from '../utils/texts';
5
+ class SkillsSyncer {
6
+ sourcePaths;
7
+ sources;
8
+ targetPath;
9
+ constructor(sources, sourcePaths, targetPath) {
10
+ this.sources = sources;
11
+ this.sourcePaths = {
12
+ claude: sourcePaths.claude,
13
+ codex: sourcePaths.codex,
14
+ };
15
+ this.targetPath = targetPath;
16
+ }
17
+ async sync() {
18
+ const startTime = Date.now();
19
+ const result = {
20
+ claudeCount: 0,
21
+ codexCount: 0,
22
+ errors: [],
23
+ synced: 0,
24
+ };
25
+ try {
26
+ logger.info(TEXTS.logs.messages.starting);
27
+ const allSkills = new Map();
28
+ if (this.sources.claude) {
29
+ logger.info(`${TEXTS.logs.messages.syncingMcpFor}Claude`);
30
+ const claudeSkills = await this.scanSkills(this.sourcePaths.claude, 'claude');
31
+ for (const skill of claudeSkills)
32
+ allSkills.set(skill.name, skill);
33
+ result.claudeCount = claudeSkills.length;
34
+ logger.info(`${TEXTS.logs.messages.foundSkills}${claudeSkills.length}${TEXTS.logs.messages.skillSymlinks}`);
35
+ }
36
+ if (this.sources.codex) {
37
+ logger.info(`${TEXTS.logs.messages.syncingMcpFor}Codex`);
38
+ const codexSkills = await this.scanSkills(this.sourcePaths.codex, 'codex');
39
+ for (const skill of codexSkills)
40
+ allSkills.set(skill.name, skill);
41
+ result.codexCount = codexSkills.length;
42
+ logger.info(`${TEXTS.logs.messages.foundSkills}${codexSkills.length}${TEXTS.logs.messages.skillSymlinks}`);
43
+ }
44
+ logger.info(`${TEXTS.logs.messages.foundSkills}${allSkills.size}${TEXTS.dashboard.skills.skills}`);
45
+ logger.info(TEXTS.logs.messages.creatingSymlinks);
46
+ const linkResult = await this.createSymlinks(allSkills);
47
+ result.synced = linkResult.synced;
48
+ result.errors = linkResult.errors;
49
+ if (result.errors.length > 0) {
50
+ logger.warn(`Skills 同步完成,但有 ${result.errors.length} 个错误`);
51
+ }
52
+ else {
53
+ const duration = Date.now() - startTime;
54
+ logger.success(`${TEXTS.logs.messages.syncCompleted}${duration}ms`);
55
+ }
56
+ return result;
57
+ }
58
+ catch (error) {
59
+ logger.error('Skills 同步失败', { error: error instanceof Error ? error.message : String(error) });
60
+ result.errors.push(error instanceof Error ? error.message : String(error));
61
+ return result;
62
+ }
63
+ }
64
+ async createSymlinks(skills) {
65
+ const result = {
66
+ errors: [],
67
+ synced: 0,
68
+ };
69
+ try {
70
+ await fs.ensureDir(this.targetPath);
71
+ logger.debug('清空目标目录...');
72
+ const existingLinks = await fs.readdir(this.targetPath);
73
+ for (const link of existingLinks) {
74
+ const linkPath = path.join(this.targetPath, link);
75
+ try {
76
+ await fs.unlink(linkPath);
77
+ logger.debug(`删除现有符号链接:${link}`);
78
+ }
79
+ catch (error) {
80
+ logger.debug(`删除符号链接失败 ${link}:${error}`);
81
+ }
82
+ }
83
+ logger.debug('创建符号链接...');
84
+ for (const [name, skill] of skills.entries()) {
85
+ try {
86
+ const skillDir = path.dirname(skill.path);
87
+ await fs.access(skillDir, fs.constants.R_OK);
88
+ const linkPath = path.join(this.targetPath, name);
89
+ await fs.symlink(skillDir, linkPath);
90
+ result.synced++;
91
+ logger.debug(`创建符号链接:${name}`);
92
+ }
93
+ catch (error) {
94
+ const errorMsg = `创建符号链接失败 ${name}: ${error instanceof Error ? error.message : String(error)}`;
95
+ result.errors.push(errorMsg);
96
+ logger.error(errorMsg);
97
+ }
98
+ }
99
+ }
100
+ catch (error) {
101
+ logger.error('创建符号链接失败', { error: error instanceof Error ? error.message : String(error) });
102
+ result.errors.push(error instanceof Error ? error.message : String(error));
103
+ }
104
+ return result;
105
+ }
106
+ extractSkillName(skillPath, type) {
107
+ const parts = skillPath.split(path.sep);
108
+ if (type === 'claude') {
109
+ const skillsIndex = parts.lastIndexOf('skills');
110
+ if (skillsIndex !== -1 && skillsIndex + 1 < parts.length) {
111
+ return parts[skillsIndex + 1];
112
+ }
113
+ }
114
+ else if (type === 'codex') {
115
+ const skillsIndex = parts.lastIndexOf('skills');
116
+ if (skillsIndex !== -1 && skillsIndex + 1 < parts.length) {
117
+ return parts[skillsIndex + 1];
118
+ }
119
+ }
120
+ return parts.at(-2);
121
+ }
122
+ async scanSkills(dir, type) {
123
+ const skills = [];
124
+ try {
125
+ await fs.access(dir, fs.constants.R_OK);
126
+ }
127
+ catch {
128
+ logger.warn(`${type} Skills 目录不存在:${dir}`);
129
+ return skills;
130
+ }
131
+ try {
132
+ const files = await fs.readdir(dir, { recursive: true });
133
+ for (const file of files) {
134
+ const fileName = typeof file === 'string' ? file : file.toString();
135
+ if (fileName.endsWith('SKILL.md')) {
136
+ const skillPath = path.join(dir, fileName);
137
+ const skillName = this.extractSkillName(skillPath, type);
138
+ skills.push({
139
+ name: skillName,
140
+ path: skillPath,
141
+ type,
142
+ });
143
+ }
144
+ }
145
+ }
146
+ catch (error) {
147
+ logger.error(`扫描 ${type} Skills 目录失败`, { error: error instanceof Error ? error.message : String(error) });
148
+ }
149
+ return skills;
150
+ }
151
+ }
152
+ export { SkillsSyncer };
153
+ //# sourceMappingURL=skills-syncer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills-syncer.js","sourceRoot":"","sources":["../../src/syncers/skills-syncer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ export interface SyncConfig {
2
+ autostart: AutostartConfig;
3
+ errors?: number;
4
+ mcp?: {
5
+ count: number;
6
+ platforms?: Record<string, {
7
+ count: number;
8
+ enabled: boolean;
9
+ }>;
10
+ };
11
+ service: ServiceConfig;
12
+ skills?: {
13
+ claude?: string[];
14
+ codex?: string[];
15
+ count: number;
16
+ };
17
+ sync: SyncConfigDetails;
18
+ }
19
+ export interface ServiceConfig {
20
+ interval: number;
21
+ logFile: string;
22
+ logLevel: 'debug' | 'error' | 'info' | 'warn';
23
+ pid?: number;
24
+ running?: boolean;
25
+ uptime?: number;
26
+ }
27
+ export interface SyncConfigDetails {
28
+ mcp: McpConfig;
29
+ skills: SkillsConfig;
30
+ }
31
+ export interface SkillsConfig {
32
+ paths: {
33
+ claude: string;
34
+ codex: string;
35
+ };
36
+ sources: {
37
+ claude: boolean;
38
+ codex: boolean;
39
+ };
40
+ target: string;
41
+ }
42
+ export interface McpConfig {
43
+ dbPath: string;
44
+ enabled: boolean;
45
+ platforms: ('all' | 'claude' | 'codex' | 'gemini')[];
46
+ target: string;
47
+ }
48
+ export interface AutostartConfig {
49
+ enabled: boolean;
50
+ launchAgentPath: string;
51
+ }
52
+ export declare const DEFAULT_CONFIG: SyncConfig;
53
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +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,UA6B5B,CAAC"}
@@ -0,0 +1,33 @@
1
+ // 配置文件类型定义
2
+ // 默认配置
3
+ export const DEFAULT_CONFIG = {
4
+ autostart: {
5
+ enabled: false,
6
+ launchAgentPath: '~/Library/LaunchAgents/com.user.ccsync.plist',
7
+ },
8
+ service: {
9
+ interval: 15,
10
+ logFile: '~/.local/share/ccsync/logs/ccsync.log',
11
+ logLevel: 'info',
12
+ },
13
+ sync: {
14
+ mcp: {
15
+ dbPath: '~/.cc-switch/cc-switch.db',
16
+ enabled: true,
17
+ platforms: ['claude'],
18
+ target: '~/.config/opencode/opencode.json',
19
+ },
20
+ skills: {
21
+ paths: {
22
+ claude: '~/.claude/plugins/marketplaces/claude-plugins-official/plugins/',
23
+ codex: '~/.codex/skills/',
24
+ },
25
+ sources: {
26
+ claude: true,
27
+ codex: false,
28
+ },
29
+ target: '~/.claude/skills/',
30
+ },
31
+ },
32
+ };
33
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,WAAW;AA0EX,OAAO;AACP,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,SAAS,EAAE;QACT,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,8CAA8C;KAChE;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,uCAAuC;QAChD,QAAQ,EAAE,MAAM;KACjB;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"}
@@ -0,0 +1,20 @@
1
+ export interface McpServer {
2
+ enabledClaude: boolean;
3
+ enabledCodex: boolean;
4
+ enabledGemini: boolean;
5
+ id: number;
6
+ name: string;
7
+ serverConfig: McpServerConfig;
8
+ }
9
+ export interface McpServerConfig {
10
+ args?: string[];
11
+ command: string;
12
+ env?: Record<string, string>;
13
+ }
14
+ export interface OpenCodeMcpConfig {
15
+ command: string[];
16
+ enabled: true;
17
+ environment?: Record<string, string>;
18
+ type: 'local';
19
+ }
20
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/types/mcp.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,IAAI,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,EAAE,OAAO,CAAC;CACf"}
@@ -0,0 +1,3 @@
1
+ // MCP 相关类型定义
2
+ export {};
3
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/types/mcp.ts"],"names":[],"mappings":"AAAA,aAAa"}
@@ -0,0 +1,44 @@
1
+ export interface SyncResult {
2
+ duration: number;
3
+ mcp: McpSyncResult;
4
+ skills: SkillsSyncResult;
5
+ timestamp: Date;
6
+ }
7
+ export interface SkillsSyncResult {
8
+ claudeCount: number;
9
+ codexCount: number;
10
+ errors: string[];
11
+ synced: number;
12
+ }
13
+ export interface McpSyncResult {
14
+ cached: boolean;
15
+ errors: string[];
16
+ synced: number;
17
+ }
18
+ export interface ServiceStatus {
19
+ errors: number;
20
+ lastSync?: Date;
21
+ mcp: {
22
+ count: number;
23
+ platforms: Record<string, {
24
+ count: number;
25
+ enabled: boolean;
26
+ }>;
27
+ servers: string[];
28
+ };
29
+ pid?: number;
30
+ running: boolean;
31
+ skills: {
32
+ claude: string[];
33
+ codex: string[];
34
+ count: number;
35
+ };
36
+ statistics: {
37
+ avgDuration: number;
38
+ errors: number;
39
+ successful: number;
40
+ totalSyncs: number;
41
+ };
42
+ uptime?: number;
43
+ }
44
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/types/sync.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,aAAa,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;SAAE,CAAC,CAAC;QAChE,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,3 @@
1
+ // 同步相关类型定义
2
+ export {};
3
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/types/sync.ts"],"names":[],"mappings":"AAAA,WAAW"}
@@ -0,0 +1,263 @@
1
+ export interface Texts {
2
+ commands: {
3
+ config: string;
4
+ dashboard: string;
5
+ logs: string;
6
+ menu: string;
7
+ setup: string;
8
+ start: string;
9
+ status: string;
10
+ stop: string;
11
+ sync: string;
12
+ toggle: string;
13
+ };
14
+ dashboard: {
15
+ actions: {
16
+ checkPermissions: string;
17
+ editSettings: string;
18
+ exitDashboard: string;
19
+ runSetupWizard: string;
20
+ section: string;
21
+ toggleAutoRefresh: string;
22
+ toggleAutostart: string;
23
+ toggleService: string;
24
+ triggerSync: string;
25
+ viewLogs: string;
26
+ };
27
+ autoOff: string;
28
+ autoOn: string;
29
+ mcp: {
30
+ disabled: string;
31
+ enabled: string;
32
+ loading: string;
33
+ noServers: string;
34
+ platform: string;
35
+ section: string;
36
+ serversSynced: string;
37
+ status: string;
38
+ };
39
+ recentActivity: {
40
+ cached: string;
41
+ pressLToViewLogs: string;
42
+ section: string;
43
+ syncCompleted: string;
44
+ };
45
+ settings: {
46
+ autostart: string;
47
+ logLevel: string;
48
+ seconds: string;
49
+ section: string;
50
+ syncInterval: string;
51
+ };
52
+ shortcuts: {
53
+ exit: string;
54
+ refresh: string;
55
+ toggleAuto: string;
56
+ viewLogs: string;
57
+ };
58
+ skills: {
59
+ claudeSkills: string;
60
+ codexSkills: string;
61
+ loading: string;
62
+ section: string;
63
+ skills: string;
64
+ total: string;
65
+ };
66
+ statistics: {
67
+ avgDuration: string;
68
+ errors: string;
69
+ section: string;
70
+ successful: string;
71
+ totalSyncs: string;
72
+ };
73
+ status: {
74
+ autoRefresh: string;
75
+ lastSync: string;
76
+ pid: string;
77
+ running: string;
78
+ secondsAgo: string;
79
+ section: string;
80
+ stopped: string;
81
+ uptime: string;
82
+ };
83
+ title: string;
84
+ };
85
+ errors: {
86
+ actions: {
87
+ fix: {
88
+ description: string;
89
+ label: string;
90
+ };
91
+ retry: {
92
+ description: string;
93
+ label: string;
94
+ };
95
+ skip: {
96
+ description: string;
97
+ label: string;
98
+ };
99
+ stop: {
100
+ description: string;
101
+ label: string;
102
+ };
103
+ };
104
+ errorTypes: {
105
+ criticalError: {
106
+ message: string;
107
+ title: string;
108
+ };
109
+ databaseBusy: {
110
+ message: string;
111
+ title: string;
112
+ };
113
+ databaseNotFound: {
114
+ message: string;
115
+ title: string;
116
+ };
117
+ filePermission: {
118
+ message: string;
119
+ title: string;
120
+ };
121
+ invalidConfig: {
122
+ message: string;
123
+ title: string;
124
+ };
125
+ missingPermissions: {
126
+ message: string;
127
+ title: string;
128
+ };
129
+ };
130
+ question: string;
131
+ success: {
132
+ databaseReady: string;
133
+ permissionsFixed: string;
134
+ serviceStarted: string;
135
+ serviceStopped: string;
136
+ syncCompleted: string;
137
+ };
138
+ title: string;
139
+ };
140
+ logs: {
141
+ icons: {
142
+ debug: string;
143
+ error: string;
144
+ info: string;
145
+ success: string;
146
+ warn: string;
147
+ };
148
+ levels: {
149
+ debug: string;
150
+ error: string;
151
+ info: string;
152
+ warn: string;
153
+ };
154
+ messages: {
155
+ cached: string;
156
+ checkingDb: string;
157
+ checkingPermissions: string;
158
+ createdSymlinks: string;
159
+ creatingSymlinks: string;
160
+ dbChanged: string;
161
+ dbNotChanged: string;
162
+ duration: string;
163
+ foundMcpServers: string;
164
+ foundSkills: string;
165
+ mcpServers: string;
166
+ permissionsFixed: string;
167
+ permissionsOk: string;
168
+ scanningSkills: string;
169
+ serviceStarted: string;
170
+ serviceStarting: string;
171
+ serviceStopped: string;
172
+ serviceStopping: string;
173
+ skillSymlinks: string;
174
+ starting: string;
175
+ syncCompleted: string;
176
+ syncedMcpServers: string;
177
+ syncingMcp: string;
178
+ syncingMcpFor: string;
179
+ watchingChanges: string;
180
+ };
181
+ };
182
+ setup: {
183
+ autostart: {
184
+ hint: string;
185
+ no: string;
186
+ question: string;
187
+ tip: string;
188
+ yes: string;
189
+ };
190
+ complete: {
191
+ configuration: string;
192
+ helpTip: string;
193
+ nextStepHelp: string;
194
+ nextStepMenu: string;
195
+ nextSteps: string;
196
+ nextStepStatus: string;
197
+ serviceStatus: string;
198
+ subtitle: string;
199
+ title: string;
200
+ };
201
+ interval: {
202
+ custom: string;
203
+ hint: string;
204
+ question: string;
205
+ recommended: string;
206
+ unit: string;
207
+ };
208
+ mcp: {
209
+ all: string;
210
+ claude: string;
211
+ codex: string;
212
+ gemini: string;
213
+ hint: string;
214
+ question: string;
215
+ tip: string;
216
+ };
217
+ skills: {
218
+ claude: string;
219
+ codex: string;
220
+ hint: string;
221
+ question: string;
222
+ tip: string;
223
+ };
224
+ steps: {
225
+ autostart: string;
226
+ interval: string;
227
+ mcp: string;
228
+ skills: string;
229
+ summary: string;
230
+ };
231
+ summary: {
232
+ autostart: string;
233
+ backToEdit: string;
234
+ cancelSetup: string;
235
+ mcpSync: string;
236
+ saveAndStart: string;
237
+ skillsSync: string;
238
+ syncInterval: string;
239
+ title: string;
240
+ };
241
+ welcome: {
242
+ continue: string;
243
+ subtitle: string;
244
+ title: string;
245
+ };
246
+ };
247
+ status: {
248
+ errors: string;
249
+ forOptions: string;
250
+ lastSync: string;
251
+ mcp: string;
252
+ pid: string;
253
+ running: string;
254
+ service: string;
255
+ skills: string;
256
+ stopped: string;
257
+ synced: string;
258
+ tip: string;
259
+ title: string;
260
+ uptime: string;
261
+ };
262
+ }
263
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/types/ui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // UI 相关类型定义
2
+ export {};
3
+ //# sourceMappingURL=ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/types/ui.ts"],"names":[],"mappings":"AAAA,YAAY"}