aws-runtime-bridge 1.1.11 → 1.2.1

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 (79) hide show
  1. package/dist/adapters/cc-switch/common.d.ts +1 -1
  2. package/dist/adapters/cc-switch/common.d.ts.map +1 -1
  3. package/dist/adapters/cc-switch/index.d.ts +1 -0
  4. package/dist/adapters/cc-switch/index.d.ts.map +1 -1
  5. package/dist/adapters/cc-switch/index.js +5 -5
  6. package/dist/adapters/cc-switch/mcp-claudecode.d.ts.map +1 -1
  7. package/dist/adapters/cc-switch/mcp-claudecode.js +2 -3
  8. package/dist/adapters/cc-switch/mcp-claudecode.test.d.ts +2 -0
  9. package/dist/adapters/cc-switch/mcp-claudecode.test.d.ts.map +1 -0
  10. package/dist/adapters/cc-switch/mcp-claudecode.test.js +74 -0
  11. package/dist/adapters/cc-switch/mcp-opencode.d.ts.map +1 -1
  12. package/dist/adapters/cc-switch/mcp-opencode.js +3 -7
  13. package/dist/adapters/cc-switch/mcp-opencode.test.d.ts +2 -0
  14. package/dist/adapters/cc-switch/mcp-opencode.test.d.ts.map +1 -0
  15. package/dist/adapters/cc-switch/mcp-opencode.test.js +61 -0
  16. package/dist/adapters/cc-switch/skill-claude.d.ts +2 -7
  17. package/dist/adapters/cc-switch/skill-claude.d.ts.map +1 -1
  18. package/dist/adapters/cc-switch/skill-claude.js +3 -83
  19. package/dist/adapters/cc-switch/skill-claudecode.d.ts +2 -7
  20. package/dist/adapters/cc-switch/skill-claudecode.d.ts.map +1 -1
  21. package/dist/adapters/cc-switch/skill-claudecode.js +3 -83
  22. package/dist/adapters/cc-switch/skill-codex.d.ts +5 -0
  23. package/dist/adapters/cc-switch/skill-codex.d.ts.map +1 -0
  24. package/dist/adapters/cc-switch/skill-codex.js +6 -0
  25. package/dist/adapters/cc-switch/skill-directory.d.ts +10 -0
  26. package/dist/adapters/cc-switch/skill-directory.d.ts.map +1 -0
  27. package/dist/adapters/cc-switch/skill-directory.js +137 -0
  28. package/dist/adapters/cc-switch/skill-directory.test.d.ts +2 -0
  29. package/dist/adapters/cc-switch/skill-directory.test.d.ts.map +1 -0
  30. package/dist/adapters/cc-switch/skill-directory.test.js +73 -0
  31. package/dist/adapters/cc-switch/skill-opencode.d.ts +2 -7
  32. package/dist/adapters/cc-switch/skill-opencode.d.ts.map +1 -1
  33. package/dist/adapters/cc-switch/skill-opencode.js +3 -87
  34. package/dist/config.d.ts +2 -0
  35. package/dist/config.d.ts.map +1 -1
  36. package/dist/config.js +5 -0
  37. package/dist/routes/instance.js +4 -5
  38. package/dist/routes/mcp.js +3 -2
  39. package/dist/routes/skills.js +3 -2
  40. package/dist/services/aws-client-agent-mcp.d.ts.map +1 -1
  41. package/dist/services/aws-client-agent-mcp.js +69 -3
  42. package/dist/services/aws-client-agent-mcp.test.js +69 -2
  43. package/dist/services/cc-switch-discovery.test.d.ts +2 -0
  44. package/dist/services/cc-switch-discovery.test.d.ts.map +1 -0
  45. package/dist/services/cc-switch-discovery.test.js +56 -0
  46. package/dist/services/cc-switch-sdk.d.ts +7 -2
  47. package/dist/services/cc-switch-sdk.d.ts.map +1 -1
  48. package/dist/services/cc-switch-sdk.js +15 -5
  49. package/dist/types.d.ts +2 -0
  50. package/dist/types.d.ts.map +1 -1
  51. package/dist/utils/mcp-utils.d.ts.map +1 -1
  52. package/dist/utils/mcp-utils.js +6 -5
  53. package/node_modules/@cc-switch/sdk/dist/constants.d.ts.map +1 -1
  54. package/node_modules/@cc-switch/sdk/dist/constants.js +4 -2
  55. package/node_modules/@cc-switch/sdk/dist/sdk.d.ts.map +1 -1
  56. package/node_modules/@cc-switch/sdk/dist/sdk.js +20 -30
  57. package/node_modules/@cc-switch/sdk/dist/services/mcp-model.d.ts.map +1 -1
  58. package/node_modules/@cc-switch/sdk/dist/services/mcp-model.js +7 -4
  59. package/node_modules/@cc-switch/sdk/dist/services/skill-model.d.ts.map +1 -1
  60. package/node_modules/@cc-switch/sdk/dist/services/skill-model.js +7 -4
  61. package/node_modules/@cc-switch/sdk/dist/types.d.ts +1 -0
  62. package/node_modules/@cc-switch/sdk/dist/types.d.ts.map +1 -1
  63. package/node_modules/@cc-switch/sdk/dist/utils/fs.d.ts +1 -0
  64. package/node_modules/@cc-switch/sdk/dist/utils/fs.d.ts.map +1 -1
  65. package/node_modules/@cc-switch/sdk/dist/utils/fs.js +23 -0
  66. package/package/cc-switch-sdk/dist/constants.d.ts.map +1 -1
  67. package/package/cc-switch-sdk/dist/constants.js +4 -2
  68. package/package/cc-switch-sdk/dist/sdk.d.ts.map +1 -1
  69. package/package/cc-switch-sdk/dist/sdk.js +20 -30
  70. package/package/cc-switch-sdk/dist/services/mcp-model.d.ts.map +1 -1
  71. package/package/cc-switch-sdk/dist/services/mcp-model.js +7 -4
  72. package/package/cc-switch-sdk/dist/services/skill-model.d.ts.map +1 -1
  73. package/package/cc-switch-sdk/dist/services/skill-model.js +7 -4
  74. package/package/cc-switch-sdk/dist/types.d.ts +1 -0
  75. package/package/cc-switch-sdk/dist/types.d.ts.map +1 -1
  76. package/package/cc-switch-sdk/dist/utils/fs.d.ts +1 -0
  77. package/package/cc-switch-sdk/dist/utils/fs.d.ts.map +1 -1
  78. package/package/cc-switch-sdk/dist/utils/fs.js +23 -0
  79. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
- import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync, } from 'node:fs';
1
+ import { spawnSync } from 'node:child_process';
2
+ import { existsSync, lstatSync, mkdirSync, mkdtempSync, readFileSync, readlinkSync, realpathSync, rmSync, writeFileSync, } from 'node:fs';
2
3
  import os from 'node:os';
3
4
  import path from 'node:path';
4
5
  import { afterEach, describe, expect, it, vi } from 'vitest';
@@ -13,7 +14,31 @@ function createBundledMcpPackage(version = '1.0.0') {
13
14
  const bundledDist = path.join(packageRoot, 'package', 'aws-client-agent-mcp', 'dist');
14
15
  mkdirSync(bundledDist, { recursive: true });
15
16
  writeFileSync(path.join(packageRoot, 'package.json'), JSON.stringify({ name: 'aws-runtime-bridge', version: '9.9.9' }), 'utf-8');
16
- writeFileSync(path.join(packageRoot, 'package', 'aws-client-agent-mcp', 'package.json'), JSON.stringify({ name: 'aws-client-agent-mcp', version }), 'utf-8');
17
+ writeFileSync(path.join(packageRoot, 'package', 'aws-client-agent-mcp', 'package.json'), JSON.stringify({
18
+ name: 'aws-client-agent-mcp',
19
+ version,
20
+ type: 'module',
21
+ main: 'dist/index.js',
22
+ dependencies: {
23
+ '@modelcontextprotocol/sdk': '^1.27.1',
24
+ ws: '^8.14.2',
25
+ yaml: '^2.3.4',
26
+ },
27
+ }), 'utf-8');
28
+ writeFileSync(path.join(packageRoot, 'package', 'aws-client-agent-mcp', 'README.md'), '# aws-client-agent-mcp\n', 'utf-8');
29
+ mkdirSync(path.join(packageRoot, 'node_modules', '@modelcontextprotocol', 'sdk'), {
30
+ recursive: true,
31
+ });
32
+ writeFileSync(path.join(packageRoot, 'node_modules', '@modelcontextprotocol', 'sdk', 'package.json'), JSON.stringify({
33
+ name: '@modelcontextprotocol/sdk',
34
+ version: '1.27.1',
35
+ type: 'module',
36
+ main: 'index.js',
37
+ exports: './index.js',
38
+ }), 'utf-8');
39
+ writeFileSync(path.join(packageRoot, 'node_modules', '@modelcontextprotocol', 'sdk', 'index.js'), 'export const sdkMarker = "resolved-sdk";\n', 'utf-8');
40
+ mkdirSync(path.join(packageRoot, 'node_modules', 'ws'), { recursive: true });
41
+ mkdirSync(path.join(packageRoot, 'node_modules', 'yaml'), { recursive: true });
17
42
  writeFileSync(path.join(bundledDist, 'index.js'), 'console.log("mcp v1");\n', 'utf-8');
18
43
  return packageRoot;
19
44
  }
@@ -56,8 +81,21 @@ describe('aws-client-agent-mcp service', () => {
56
81
  });
57
82
  const releasedIndex = path.join(releasedRoot, 'dist', 'index.js');
58
83
  const manifestPath = path.join(releasedRoot, '.release.json');
84
+ const releasedPackageJson = path.join(releasedRoot, 'package.json');
85
+ const releasedNodeModules = path.join(releasedRoot, 'node_modules');
59
86
  expect(firstRelease).toBe(releasedIndex);
60
87
  expect(existsSync(releasedIndex)).toBe(true);
88
+ expect(JSON.parse(readFileSync(releasedPackageJson, 'utf-8'))).toMatchObject({
89
+ name: 'aws-client-agent-mcp',
90
+ version: '1.0.0',
91
+ dependencies: {
92
+ '@modelcontextprotocol/sdk': '^1.27.1',
93
+ },
94
+ });
95
+ expect(readFileSync(path.join(releasedRoot, 'README.md'), 'utf-8')).toBe('# aws-client-agent-mcp\n');
96
+ expect(lstatSync(releasedNodeModules).isSymbolicLink()).toBe(true);
97
+ expect(realpathSync(releasedNodeModules)).toBe(realpathSync(path.join(packageRoot, 'node_modules')));
98
+ expect(path.resolve(readlinkSync(releasedNodeModules))).toBe(path.join(packageRoot, 'node_modules'));
61
99
  const firstManifest = JSON.parse(readFileSync(manifestPath, 'utf-8'));
62
100
  expect(firstManifest).toMatchObject({
63
101
  bridgeVersion: '9.9.9',
@@ -66,12 +104,15 @@ describe('aws-client-agent-mcp service', () => {
66
104
  });
67
105
  expect(firstManifest.distHash).toMatch(/^sha256:/);
68
106
  writeFileSync(releasedIndex, 'console.log("local marker");\n', 'utf-8');
107
+ rmSync(releasedNodeModules, { recursive: true, force: true });
108
+ mkdirSync(releasedNodeModules, { recursive: true });
69
109
  mod.releaseBundledAwsClientAgentMcp({
70
110
  packageRoot,
71
111
  releasedRoot,
72
112
  now: () => '2026-05-05T00:00:00.000Z',
73
113
  });
74
114
  expect(readFileSync(releasedIndex, 'utf-8')).toBe('console.log("local marker");\n');
115
+ expect(realpathSync(releasedNodeModules)).toBe(realpathSync(path.join(packageRoot, 'node_modules')));
75
116
  expect(JSON.parse(readFileSync(manifestPath, 'utf-8')).releasedAt).toBe('2026-05-04T00:00:00.000Z');
76
117
  }
77
118
  finally {
@@ -102,6 +143,32 @@ describe('aws-client-agent-mcp service', () => {
102
143
  rmSync(releasedRoot, { recursive: true, force: true });
103
144
  }
104
145
  });
146
+ it('releases a runnable package root that resolves bundled mcp runtime dependencies', async () => {
147
+ process.env.AWS_CLIENT_AGENT_MCP_COMMAND = '';
148
+ const packageRoot = createBundledMcpPackage('1.0.0');
149
+ const releasedRoot = mkdtempSync(path.join(os.tmpdir(), 'aws-mcp-release-'));
150
+ try {
151
+ const bundledIndex = path.join(packageRoot, 'package', 'aws-client-agent-mcp', 'dist', 'index.js');
152
+ writeFileSync(bundledIndex, 'import { sdkMarker } from "@modelcontextprotocol/sdk";\nconsole.log(sdkMarker);\n', 'utf-8');
153
+ const mod = await import('./aws-client-agent-mcp.js');
154
+ const releasedEntry = mod.releaseBundledAwsClientAgentMcp({ packageRoot, releasedRoot });
155
+ expect(releasedEntry).toBe(path.join(releasedRoot, 'dist', 'index.js'));
156
+ if (!releasedEntry) {
157
+ throw new Error('Expected bundled MCP release entry to exist');
158
+ }
159
+ const result = spawnSync(process.execPath, [releasedEntry], {
160
+ cwd: releasedRoot,
161
+ encoding: 'utf-8',
162
+ });
163
+ expect(result.stderr).toBe('');
164
+ expect(result.status).toBe(0);
165
+ expect(result.stdout.trim()).toBe('resolved-sdk');
166
+ }
167
+ finally {
168
+ rmSync(packageRoot, { recursive: true, force: true });
169
+ rmSync(releasedRoot, { recursive: true, force: true });
170
+ }
171
+ });
105
172
  it('releases bundled mcp into home directory when runtime dist is missing', async () => {
106
173
  process.env.AWS_CLIENT_AGENT_MCP_COMMAND = '';
107
174
  const mod = await import('./aws-client-agent-mcp.js');
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cc-switch-discovery.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cc-switch-discovery.test.d.ts","sourceRoot":"","sources":["../../src/services/cc-switch-discovery.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
1
+ import { mkdir, mkdtemp, readFile, readdir, rm, writeFile } from 'node:fs/promises';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
5
+ import { discoverCcSwitchConfiguredItems, loadCcSwitchSdk } from './cc-switch-sdk.js';
6
+ import { getAgentInitRoot } from './instance-state.js';
7
+ import { syncLegacyStateFromSdk } from './instance-init-service.js';
8
+ describe('CC Switch discovery flow', () => {
9
+ const previousRuntimeHome = process.env.AWS_RUNTIME_HOME_DIR;
10
+ let runtimeHome = '';
11
+ let agentId = '';
12
+ beforeEach(async () => {
13
+ runtimeHome = await mkdtemp(path.join(os.tmpdir(), 'cc-switch-discovery-runtime-'));
14
+ agentId = `agent-discovery-${Date.now()}-${Math.random().toString(36).slice(2)}`;
15
+ process.env.AWS_RUNTIME_HOME_DIR = runtimeHome;
16
+ });
17
+ afterEach(async () => {
18
+ if (previousRuntimeHome === undefined) {
19
+ delete process.env.AWS_RUNTIME_HOME_DIR;
20
+ }
21
+ else {
22
+ process.env.AWS_RUNTIME_HOME_DIR = previousRuntimeHome;
23
+ }
24
+ await rm(runtimeHome, { recursive: true, force: true });
25
+ if (agentId) {
26
+ await rm(getAgentInitRoot(agentId), { recursive: true, force: true });
27
+ }
28
+ });
29
+ it('discovers configured MCP and Skill items into instance state without rewriting source app files', async () => {
30
+ const opencodeConfigPath = path.join(runtimeHome, '.config', 'opencode', 'opencode.json');
31
+ const codexSkillDir = path.join(runtimeHome, '.codex', 'skills', 'codex-review');
32
+ const opencodeConfig = {
33
+ theme: 'dark',
34
+ mcpServers: {
35
+ 'legacy-opencode': {
36
+ type: 'remote',
37
+ url: 'http://localhost:9999/sse',
38
+ },
39
+ },
40
+ };
41
+ await mkdir(path.dirname(opencodeConfigPath), { recursive: true });
42
+ await writeFile(opencodeConfigPath, JSON.stringify(opencodeConfig, null, 2), 'utf-8');
43
+ await mkdir(codexSkillDir, { recursive: true });
44
+ await writeFile(path.join(codexSkillDir, 'SKILL.md'), '---\nname: Codex Review\ndescription: Review code with Codex\n---\n# Skill\n', 'utf-8');
45
+ const beforeOpencodeRaw = await readFile(opencodeConfigPath, 'utf-8');
46
+ const beforeCodexEntries = await readdir(path.dirname(codexSkillDir));
47
+ const sdk = await loadCcSwitchSdk(agentId);
48
+ const imported = await discoverCcSwitchConfiguredItems(sdk);
49
+ const synced = await syncLegacyStateFromSdk(agentId, sdk);
50
+ expect(imported).toEqual({ mcpServers: 1, skills: 1 });
51
+ expect(synced.state.mcpServers.some((item) => item.name === 'legacy-opencode')).toBe(true);
52
+ expect(synced.state.skills.some((item) => item.name === 'Codex Review')).toBe(true);
53
+ expect(await readFile(opencodeConfigPath, 'utf-8')).toBe(beforeOpencodeRaw);
54
+ expect(await readdir(path.dirname(codexSkillDir))).toEqual(beforeCodexEntries);
55
+ });
56
+ });
@@ -4,12 +4,17 @@
4
4
  * 负责创建 SDK 实例并注入 adapters。
5
5
  * adapters 实现在 src/adapters/cc-switch/ 中。
6
6
  */
7
- import { CcSwitchSdk, AiConfigService, type AppFlags } from '@cc-switch/sdk';
8
- import { InstanceService } from './instance-service.js';
7
+ import { AiConfigService, CcSwitchSdk, type AppFlags } from '@cc-switch/sdk';
9
8
  import type { CcSwitchAppPaths, AdapterResult, SdkApps } from '../types.js';
9
+ import { InstanceService } from './instance-service.js';
10
10
  export declare function getCcSwitchAppPaths(): CcSwitchAppPaths;
11
11
  export declare function getCcSwitchSdk(agentId: string): CcSwitchSdk;
12
12
  export declare function loadCcSwitchSdk(agentId: string): Promise<CcSwitchSdk>;
13
+ export interface CcSwitchDiscoveryResult {
14
+ mcpServers: number;
15
+ skills: number;
16
+ }
17
+ export declare function discoverCcSwitchConfiguredItems(sdk: CcSwitchSdk): Promise<CcSwitchDiscoveryResult>;
13
18
  export declare function getAiConfigService(): AiConfigService;
14
19
  export declare function getInstanceService(agentId: string, workspacePath: string): InstanceService;
15
20
  export declare function runCcSwitchAdapter(action: string, agentId: string, payload: unknown, sdk?: CcSwitchSdk): Promise<AdapterResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"cc-switch-sdk.d.ts","sourceRoot":"","sources":["../../src/services/cc-switch-sdk.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAc,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAWzF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE5E,wBAAgB,mBAAmB,IAAI,gBAAgB,CAWtD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CA8B3D;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAI3E;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAOpD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,eAAe,CAI1F;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC,aAAa,CAAC,CAgBxB;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,QAAQ,CAW1E;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAmB7D"}
1
+ {"version":3,"file":"cc-switch-sdk.d.ts","sourceRoot":"","sources":["../../src/services/cc-switch-sdk.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAc,MAAM,gBAAgB,CAAC;AAYzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,wBAAgB,mBAAmB,IAAI,gBAAgB,CAatD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CA+B3D;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAI3E;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,uBAAuB,CAAC,CAOlC;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAOpD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,eAAe,CAI1F;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC,aAAa,CAAC,CAgBxB;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,QAAQ,CAW1E;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAmB7D"}
@@ -5,9 +5,9 @@
5
5
  * adapters 实现在 src/adapters/cc-switch/ 中。
6
6
  */
7
7
  import path from 'node:path';
8
- import { CcSwitchSdk, AiConfigService } from '@cc-switch/sdk';
8
+ import { AiConfigService, CcSwitchSdk } from '@cc-switch/sdk';
9
9
  import { createMcpAdapters, createSkillAdapters } from '../adapters/cc-switch/index.js';
10
- import { getCodexConfigFile, getRuntimeHomeDir, getClaudeConfigFile, getClaudeSkillsDir, getOpencodeConfigFile, getOpencodeSkillsDir, } from '../config.js';
10
+ import { getClaudeConfigFile, getClaudeMcpConfigFile, getClaudeSkillsDir, getCodexConfigFile, getCodexSkillsDir, getRuntimeHomeDir, getOpencodeConfigFile, getOpencodeSkillsDir, } from '../config.js';
11
11
  import { getAgentInitRoot } from './instance-state.js';
12
12
  import { InstanceService } from './instance-service.js';
13
13
  export function getCcSwitchAppPaths() {
@@ -15,8 +15,10 @@ export function getCcSwitchAppPaths() {
15
15
  return {
16
16
  runtimeHome,
17
17
  claudeConfigFile: path.resolve(getClaudeConfigFile(runtimeHome)),
18
+ claudeMcpConfigFile: path.resolve(getClaudeMcpConfigFile(runtimeHome)),
18
19
  claudeSkillsDir: path.resolve(getClaudeSkillsDir(runtimeHome)),
19
20
  codexConfigFile: path.resolve(getCodexConfigFile(runtimeHome)),
21
+ codexSkillsDir: path.resolve(getCodexSkillsDir(runtimeHome)),
20
22
  opencodeConfigFile: path.resolve(getOpencodeConfigFile(runtimeHome)),
21
23
  opencodeSkillsDir: path.resolve(getOpencodeSkillsDir(runtimeHome)),
22
24
  };
@@ -30,9 +32,10 @@ export function getCcSwitchSdk(agentId) {
30
32
  backupDir: path.join(sdkRoot, 'backups'),
31
33
  claudeConfigFile: appPaths.claudeConfigFile,
32
34
  claudeSkillsDir: appPaths.claudeSkillsDir,
33
- claudecodeConfigFile: appPaths.claudeConfigFile, // 使用 claude 路径
35
+ claudecodeConfigFile: appPaths.claudeMcpConfigFile,
34
36
  claudecodeSkillsDir: appPaths.claudeSkillsDir, // 使用 claude 路径
35
37
  codexConfigFile: appPaths.codexConfigFile,
38
+ codexSkillsDir: appPaths.codexSkillsDir,
36
39
  opencodeConfigFile: appPaths.opencodeConfigFile,
37
40
  opencodeSkillsDir: appPaths.opencodeSkillsDir,
38
41
  ssotSkillsDir: path.join(sdkRoot, 'skills'),
@@ -54,6 +57,13 @@ export async function loadCcSwitchSdk(agentId) {
54
57
  await sdk.load();
55
58
  return sdk;
56
59
  }
60
+ export async function discoverCcSwitchConfiguredItems(sdk) {
61
+ const [mcpServers, skills] = await Promise.all([
62
+ sdk.importMcpFromApps(),
63
+ sdk.importSkillsFromApps(),
64
+ ]);
65
+ return { mcpServers, skills };
66
+ }
57
67
  export function getAiConfigService() {
58
68
  const appPaths = getCcSwitchAppPaths();
59
69
  return new AiConfigService({
@@ -87,7 +97,7 @@ export function toSdkAppsFromEnabledTools(enabledTools) {
87
97
  const tools = Array.isArray(enabledTools) ? enabledTools : [];
88
98
  const includes = (name) => tools.includes(name);
89
99
  return {
90
- claude: includes('claude'),
100
+ claude: false,
91
101
  claudecode: includes('claudecode') || includes('claude'),
92
102
  codex: includes('codex'),
93
103
  gemini: includes('gemini'),
@@ -107,7 +117,7 @@ export function toSdkApps(apps) {
107
117
  };
108
118
  }
109
119
  return {
110
- claude: Boolean(apps.claude),
120
+ claude: false,
111
121
  claudecode: Boolean(apps.claudecode) || Boolean(apps.claude),
112
122
  codex: Boolean(apps.codex),
113
123
  gemini: Boolean(apps.gemini),
package/dist/types.d.ts CHANGED
@@ -139,8 +139,10 @@ export interface AiSourceApplyPayload {
139
139
  export interface CcSwitchAppPaths {
140
140
  runtimeHome: string;
141
141
  claudeConfigFile: string;
142
+ claudeMcpConfigFile: string;
142
143
  claudeSkillsDir: string;
143
144
  codexConfigFile: string;
145
+ codexSkillsDir: string;
144
146
  opencodeConfigFile: string;
145
147
  opencodeSkillsDir: string;
146
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-utils.d.ts","sourceRoot":"","sources":["../../src/utils/mcp-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,OAAO,EACR,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAgD9E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAoBvE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAa1E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,CA6BxE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,GAAG,kBAAkB,CAsBpF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/B,GAAG;IACF,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,CAAA;CACpB,CAmBA"}
1
+ {"version":3,"file":"mcp-utils.d.ts","sourceRoot":"","sources":["../../src/utils/mcp-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,OAAO,EACR,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAgD9E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAoBvE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAc1E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,CA6BxE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,GAAG,kBAAkB,CAsBpF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/B,GAAG;IACF,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,CAAA;CACpB,CAmBA"}
@@ -84,9 +84,10 @@ export function normalizeSdkAppFlags(rawApps) {
84
84
  return undefined;
85
85
  }
86
86
  const apps = rawApps;
87
+ const claudecode = parseBoolean(apps.claudecode, false) || parseBoolean(apps.claude, false);
87
88
  return {
88
- claude: parseBoolean(apps.claude, false),
89
- claudecode: parseBoolean(apps.claudecode, false),
89
+ claude: false,
90
+ claudecode,
90
91
  codex: parseBoolean(apps.codex, false),
91
92
  gemini: parseBoolean(apps.gemini, false),
92
93
  opencode: parseBoolean(apps.opencode, false),
@@ -143,9 +144,9 @@ export function toLegacyMcpStateItem(mcpServer) {
143
144
  url: server.url == null ? '' : String(server.url),
144
145
  args: Array.isArray(server.args) ? server.args.map((item) => String(item)) : [],
145
146
  env: server.env && typeof server.env === 'object' ? server.env : {},
146
- enabled: Boolean(apps.claude || apps.claudecode || apps.codex || apps.gemini || apps.opencode || apps.openclaw),
147
+ enabled: Boolean(apps.claudecode || apps.codex || apps.gemini || apps.opencode || apps.openclaw),
147
148
  apps: {
148
- claude: Boolean(apps.claude),
149
+ claude: false,
149
150
  claudecode: Boolean(apps.claudecode),
150
151
  codex: Boolean(apps.codex),
151
152
  gemini: Boolean(apps.gemini),
@@ -171,7 +172,7 @@ export function toLegacySkillStateItem(skill) {
171
172
  filePath: directory,
172
173
  bytes: 0,
173
174
  apps: {
174
- claude: Boolean(apps.claude),
175
+ claude: false,
175
176
  claudecode: Boolean(apps.claudecode),
176
177
  codex: Boolean(apps.codex),
177
178
  gemini: Boolean(apps.gemini),
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,QAAQ,EACR,KAAK,EACL,UAAU,EACV,QAAQ,EACR,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,QAAQ,EAAE,KAAK,EAO3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,QAO/B,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CASrE;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,UAAe,GAAG;IACtD,KAAK,EAAE,QAAQ,CAAC;IAChB,eAAe,EAAE,eAAe,CAAC;CAClC,CAkCA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,QAAQ,EACR,KAAK,EACL,UAAU,EACV,QAAQ,EACR,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,QAAQ,EAAE,KAAK,EAO3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,QAO/B,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CASrE;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,UAAe,GAAG;IACtD,KAAK,EAAE,QAAQ,CAAC;IAChB,eAAe,EAAE,eAAe,CAAC;CAClC,CAqCA"}
@@ -18,8 +18,8 @@ export const DEFAULT_APP_FLAGS = {
18
18
  };
19
19
  export function normalizeAppFlags(flags) {
20
20
  return {
21
- claude: Boolean(flags?.claude),
22
- claudecode: Boolean(flags?.claudecode),
21
+ claude: false,
22
+ claudecode: Boolean(flags?.claudecode) || Boolean(flags?.claude),
23
23
  codex: Boolean(flags?.codex),
24
24
  gemini: Boolean(flags?.gemini),
25
25
  opencode: Boolean(flags?.opencode),
@@ -41,6 +41,8 @@ export function resolvePaths(options = {}) {
41
41
  path.join(os.homedir(), ".claudecode", "skills"),
42
42
  codexConfigFile: options.paths?.codexConfigFile ??
43
43
  path.join(os.homedir(), ".codex", "config.toml"),
44
+ codexSkillsDir: options.paths?.codexSkillsDir ??
45
+ path.join(os.homedir(), ".codex", "skills"),
44
46
  opencodeConfigFile: options.paths?.opencodeConfigFile ??
45
47
  path.join(os.homedir(), ".opencode", "config.json"),
46
48
  opencodeSkillsDir: options.paths?.opencodeSkillsDir ??
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,KAAK,EAEL,cAAc,EAEd,SAAS,EACT,UAAU,EACV,QAAQ,EAGT,MAAM,YAAY,CAAC;AAQpB,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAQ9E,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AA2BnC,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAC7D,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,cAAc,CAAoC;IAE1D;;;;;;;;;OASG;gBACS,OAAO,EAAE,UAAU;YAiBjB,gBAAgB;IAexB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,eAAe;YAKT,sBAAsB;YAgBtB,yBAAyB;YAWzB,mBAAmB;IAI3B,eAAe,CAAC,MAAM,GAAE,KAAK,EAAwC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrF,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAe/C,gBAAgB,CAAC,MAAM,GAAE,KAAK,EAAwC,GAAG,OAAO,CACpF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACxB;IAQD,gBAAgB,IAAI,SAAS,EAAE;IAI/B,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI7C,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAW1D,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAetE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB1C,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,SAAS,CAAC;IAiBf,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAoC1C;;OAEG;YACW,gBAAgB;IAc9B;;;OAGG;YACW,kBAAkB;IAgBhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAe5B,YAAY,IAAI,cAAc,EAAE;IAIhC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI9C,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;IAmB9D,WAAW,CACf,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,cAAc,CAAC;IAoBpB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCzC,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,cAAc,CAAC;IAsBpB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IA6C7C;;OAEG;YACW,mBAAmB;IAcjC;;;OAGG;YACW,oBAAoB;IAelC;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;YACW,kBAAkB;IAUhC;;OAEG;YACW,sBAAsB;IAWpC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAuB9B,QAAQ,IAAI,QAAQ;CAGrB"}
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,KAAK,EAEL,cAAc,EAEd,SAAS,EACT,UAAU,EACV,QAAQ,EAGT,MAAM,YAAY,CAAC;AAQpB,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAQ9E,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AA+BnC,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAC7D,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,cAAc,CAAoC;IAE1D;;;;;;;;;OASG;gBACS,OAAO,EAAE,UAAU;YAiBjB,gBAAgB;IAexB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,eAAe;YAKT,sBAAsB;YAgBtB,yBAAyB;YAWzB,mBAAmB;IAI3B,eAAe,CAAC,MAAM,GAAE,KAAK,EAAwC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrF,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAe/C,gBAAgB,CAAC,MAAM,GAAE,KAAK,EAAwC,GAAG,OAAO,CACpF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACxB;IAQD,gBAAgB,IAAI,SAAS,EAAE;IAI/B,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI7C,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAW1D,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAetE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB1C,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,SAAS,CAAC;IAiBf,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IA0B1C;;OAEG;YACW,gBAAgB;IAc9B;;;OAGG;YACW,kBAAkB;IAgBhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiB5B,YAAY,IAAI,cAAc,EAAE;IAIhC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI9C,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;IAmB9D,WAAW,CACf,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,cAAc,CAAC;IAoBpB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCzC,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,cAAc,CAAC;IAsBpB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAwC7C;;OAEG;YACW,mBAAmB;IAcjC;;;OAGG;YACW,oBAAoB;IAelC;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;YACW,kBAAkB;IAYhC;;OAEG;YACW,sBAAsB;IAWpC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAwB9B,QAAQ,IAAI,QAAQ;CAGrB"}
@@ -5,18 +5,20 @@ import { buildMcpFromInput, mergeMcp, applyMcpAppFlag, } from "./services/mcp-mo
5
5
  import { syncMcpServerToApps } from "./services/mcp-service.js";
6
6
  import { buildSkillFromInput, mergeSkill, applySkillAppFlag, skillSourceDir, } from "./services/skill-model.js";
7
7
  import { syncSkillToApps } from "./services/skill-service.js";
8
- import { copyDir, copyFile, pathExists, removeIfExists, } from "./utils/fs.js";
8
+ import { copyDir, copyDirIfExists, copyFile, pathExists, removeIfExists, } from "./utils/fs.js";
9
9
  import { SdkError } from "./errors.js";
10
10
  /**
11
11
  * 导入时合并 App 标记
12
12
  * 注意:此函数移到 sdk.ts 中,因为它是导入逻辑的一部分
13
13
  */
14
14
  function mergeAppFlagOnImport(server, appId) {
15
+ const canonicalAppId = appId === "claude" ? "claudecode" : appId;
15
16
  return {
16
17
  ...server,
17
18
  apps: {
18
19
  ...server.apps,
19
- [appId]: true,
20
+ [canonicalAppId]: true,
21
+ claude: false,
20
22
  },
21
23
  };
22
24
  }
@@ -199,7 +201,6 @@ export class CcSwitchSdk {
199
201
  return this.executeExclusive(async () => {
200
202
  let count = 0;
201
203
  const apps = ["claude", "claudecode", "opencode", "codex", "gemini", "openclaw"];
202
- const touchedIds = new Set();
203
204
  for (const appId of apps) {
204
205
  const imported = await this.mcpAdapters[appId].importServers();
205
206
  for (const imp of imported) {
@@ -207,21 +208,13 @@ export class CcSwitchSdk {
207
208
  if (existing) {
208
209
  const merged = mergeAppFlagOnImport(existing, appId);
209
210
  this.state.mcpServers[existing.id] = merged;
210
- touchedIds.add(existing.id);
211
211
  continue;
212
212
  }
213
213
  const withFlag = this.createMcpWithAppFlag(imp, appId);
214
214
  this.state.mcpServers[withFlag.id] = withFlag;
215
- touchedIds.add(withFlag.id);
216
215
  count++;
217
216
  }
218
217
  }
219
- for (const id of touchedIds) {
220
- const server = this.state.mcpServers[id];
221
- if (server) {
222
- await syncMcpServerToApps(server, this.mcpAdapters);
223
- }
224
- }
225
218
  await this.save();
226
219
  return count;
227
220
  });
@@ -267,6 +260,7 @@ export class CcSwitchSdk {
267
260
  * 创建带有应用标记的 MCP 服务器
268
261
  */
269
262
  createMcpWithAppFlag(imp, appId) {
263
+ const canonicalAppId = appId === "claude" ? "claudecode" : appId;
270
264
  return {
271
265
  ...imp,
272
266
  apps: {
@@ -276,7 +270,7 @@ export class CcSwitchSdk {
276
270
  gemini: false,
277
271
  opencode: false,
278
272
  openclaw: false,
279
- [appId]: true,
273
+ [canonicalAppId]: true,
280
274
  },
281
275
  };
282
276
  }
@@ -357,38 +351,32 @@ export class CcSwitchSdk {
357
351
  return this.executeExclusive(async () => {
358
352
  let count = 0;
359
353
  const apps = ["claude", "claudecode", "opencode", "codex", "gemini", "openclaw"];
360
- const touchedIds = new Set();
361
- const sourceDirs = new Map();
362
354
  for (const appId of apps) {
363
355
  const imported = await this.skillAdapters[appId].importSkills();
364
356
  for (const imp of imported) {
365
357
  const existing = this.findSkillByName(imp.name);
366
358
  if (existing) {
359
+ if (!(await pathExists(imp.directory))) {
360
+ continue;
361
+ }
362
+ const canonicalAppId = appId === "claude" ? "claudecode" : appId;
367
363
  const merged = {
368
364
  ...existing,
369
- apps: { ...existing.apps, [appId]: true },
365
+ apps: { ...existing.apps, [canonicalAppId]: true, claude: false },
370
366
  };
371
367
  this.state.skills[existing.id] = merged;
372
- touchedIds.add(existing.id);
373
- sourceDirs.set(existing.id, skillSourceDir(this.paths.ssotSkillsDir, merged));
374
368
  continue;
375
369
  }
376
370
  const withFlag = this.createSkillWithAppFlag(imp, appId);
377
- this.state.skills[withFlag.id] = withFlag;
378
371
  const source = skillSourceDir(this.paths.ssotSkillsDir, withFlag);
379
- await copyDir(imp.directory, source);
380
- touchedIds.add(withFlag.id);
381
- sourceDirs.set(withFlag.id, source);
372
+ const copied = await copyDirIfExists(imp.directory, source);
373
+ if (!copied) {
374
+ continue;
375
+ }
376
+ this.state.skills[withFlag.id] = withFlag;
382
377
  count++;
383
378
  }
384
379
  }
385
- for (const id of touchedIds) {
386
- const skill = this.state.skills[id];
387
- const source = sourceDirs.get(id);
388
- if (skill && source) {
389
- await syncSkillToApps(skill, source, this.skillSyncMethod, this.skillAdapters);
390
- }
391
- }
392
380
  await this.save();
393
381
  return count;
394
382
  });
@@ -430,9 +418,10 @@ export class CcSwitchSdk {
430
418
  * 合并已存在的 Skill
431
419
  */
432
420
  async mergeExistingSkill(existing, appId) {
421
+ const canonicalAppId = appId === "claude" ? "claudecode" : appId;
433
422
  const merged = {
434
423
  ...existing,
435
- apps: { ...existing.apps, [appId]: true },
424
+ apps: { ...existing.apps, [canonicalAppId]: true, claude: false },
436
425
  };
437
426
  this.state.skills[existing.id] = merged;
438
427
  const source = skillSourceDir(this.paths.ssotSkillsDir, merged);
@@ -452,6 +441,7 @@ export class CcSwitchSdk {
452
441
  * 创建带有应用标记的 Skill
453
442
  */
454
443
  createSkillWithAppFlag(imp, appId) {
444
+ const canonicalAppId = appId === "claude" ? "claudecode" : appId;
455
445
  const now = Date.now();
456
446
  return {
457
447
  id: imp.id,
@@ -465,7 +455,7 @@ export class CcSwitchSdk {
465
455
  gemini: false,
466
456
  opencode: false,
467
457
  openclaw: false,
468
- [appId]: true,
458
+ [canonicalAppId]: true,
469
459
  },
470
460
  installedAt: now,
471
461
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-model.d.ts","sourceRoot":"","sources":["../../src/services/mcp-model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG9D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAQlE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,CAa7E;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,GACf,SAAS,CAQX"}
1
+ {"version":3,"file":"mcp-model.d.ts","sourceRoot":"","sources":["../../src/services/mcp-model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG9D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAQlE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,CAa7E;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,GACf,SAAS,CAYX"}
@@ -24,11 +24,14 @@ export function mergeMcp(current, patch) {
24
24
  };
25
25
  }
26
26
  export function applyMcpAppFlag(server, appId, enabled) {
27
+ const canonicalAppId = appId === "claude" ? "claudecode" : appId;
28
+ const apps = {
29
+ ...server.apps,
30
+ [canonicalAppId]: enabled,
31
+ claude: false,
32
+ };
27
33
  return {
28
34
  ...server,
29
- apps: {
30
- ...server.apps,
31
- [appId]: enabled,
32
- },
35
+ apps,
33
36
  };
34
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skill-model.d.ts","sourceRoot":"","sources":["../../src/services/skill-model.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGnE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,cAAc,CAS3E;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,gBAAgB,GACtB,cAAc,CAYhB;AAED,wBAAgB,cAAc,CAC5B,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,cAAc,GACpB,MAAM,CAER;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,GACf,cAAc,CAQhB"}
1
+ {"version":3,"file":"skill-model.d.ts","sourceRoot":"","sources":["../../src/services/skill-model.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGnE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,cAAc,CAS3E;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,gBAAgB,GACtB,cAAc,CAYhB;AAED,wBAAgB,cAAc,CAC5B,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,cAAc,GACpB,MAAM,CAER;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,GACf,cAAc,CAYhB"}
@@ -28,11 +28,14 @@ export function skillSourceDir(ssotSkillsDir, skill) {
28
28
  return path.join(ssotSkillsDir, skill.id);
29
29
  }
30
30
  export function applySkillAppFlag(skill, appId, enabled) {
31
+ const canonicalAppId = appId === "claude" ? "claudecode" : appId;
32
+ const apps = {
33
+ ...skill.apps,
34
+ [canonicalAppId]: enabled,
35
+ claude: false,
36
+ };
31
37
  return {
32
38
  ...skill,
33
- apps: {
34
- ...skill.apps,
35
- [appId]: enabled,
36
- },
39
+ apps,
37
40
  };
38
41
  }
@@ -46,6 +46,7 @@ export interface SdkPaths {
46
46
  claudecodeConfigFile: string;
47
47
  claudecodeSkillsDir: string;
48
48
  codexConfigFile: string;
49
+ codexSkillsDir: string;
49
50
  opencodeConfigFile: string;
50
51
  opencodeSkillsDir: string;
51
52
  ssotSkillsDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,5 @@ export declare function writeTextFile(targetPath: string, content: string): Prom
7
7
  export declare function copyFile(sourcePath: string, targetPath: string): Promise<void>;
8
8
  export declare function removeIfExists(targetPath: string): Promise<void>;
9
9
  export declare function copyDir(sourceDir: string, targetDir: string): Promise<void>;
10
+ export declare function copyDirIfExists(sourceDir: string, targetDir: string): Promise<boolean>;
10
11
  //# sourceMappingURL=fs.d.ts.map