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.
- package/dist/adapters/cc-switch/common.d.ts +1 -1
- package/dist/adapters/cc-switch/common.d.ts.map +1 -1
- package/dist/adapters/cc-switch/index.d.ts +1 -0
- package/dist/adapters/cc-switch/index.d.ts.map +1 -1
- package/dist/adapters/cc-switch/index.js +5 -5
- package/dist/adapters/cc-switch/mcp-claudecode.d.ts.map +1 -1
- package/dist/adapters/cc-switch/mcp-claudecode.js +2 -3
- package/dist/adapters/cc-switch/mcp-claudecode.test.d.ts +2 -0
- package/dist/adapters/cc-switch/mcp-claudecode.test.d.ts.map +1 -0
- package/dist/adapters/cc-switch/mcp-claudecode.test.js +74 -0
- package/dist/adapters/cc-switch/mcp-opencode.d.ts.map +1 -1
- package/dist/adapters/cc-switch/mcp-opencode.js +3 -7
- package/dist/adapters/cc-switch/mcp-opencode.test.d.ts +2 -0
- package/dist/adapters/cc-switch/mcp-opencode.test.d.ts.map +1 -0
- package/dist/adapters/cc-switch/mcp-opencode.test.js +61 -0
- package/dist/adapters/cc-switch/skill-claude.d.ts +2 -7
- package/dist/adapters/cc-switch/skill-claude.d.ts.map +1 -1
- package/dist/adapters/cc-switch/skill-claude.js +3 -83
- package/dist/adapters/cc-switch/skill-claudecode.d.ts +2 -7
- package/dist/adapters/cc-switch/skill-claudecode.d.ts.map +1 -1
- package/dist/adapters/cc-switch/skill-claudecode.js +3 -83
- package/dist/adapters/cc-switch/skill-codex.d.ts +5 -0
- package/dist/adapters/cc-switch/skill-codex.d.ts.map +1 -0
- package/dist/adapters/cc-switch/skill-codex.js +6 -0
- package/dist/adapters/cc-switch/skill-directory.d.ts +10 -0
- package/dist/adapters/cc-switch/skill-directory.d.ts.map +1 -0
- package/dist/adapters/cc-switch/skill-directory.js +137 -0
- package/dist/adapters/cc-switch/skill-directory.test.d.ts +2 -0
- package/dist/adapters/cc-switch/skill-directory.test.d.ts.map +1 -0
- package/dist/adapters/cc-switch/skill-directory.test.js +73 -0
- package/dist/adapters/cc-switch/skill-opencode.d.ts +2 -7
- package/dist/adapters/cc-switch/skill-opencode.d.ts.map +1 -1
- package/dist/adapters/cc-switch/skill-opencode.js +3 -87
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -0
- package/dist/routes/instance.js +4 -5
- package/dist/routes/mcp.js +3 -2
- package/dist/routes/skills.js +3 -2
- package/dist/services/aws-client-agent-mcp.d.ts.map +1 -1
- package/dist/services/aws-client-agent-mcp.js +69 -3
- package/dist/services/aws-client-agent-mcp.test.js +69 -2
- package/dist/services/cc-switch-discovery.test.d.ts +2 -0
- package/dist/services/cc-switch-discovery.test.d.ts.map +1 -0
- package/dist/services/cc-switch-discovery.test.js +56 -0
- package/dist/services/cc-switch-sdk.d.ts +7 -2
- package/dist/services/cc-switch-sdk.d.ts.map +1 -1
- package/dist/services/cc-switch-sdk.js +15 -5
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/mcp-utils.d.ts.map +1 -1
- package/dist/utils/mcp-utils.js +6 -5
- package/node_modules/@cc-switch/sdk/dist/constants.d.ts.map +1 -1
- package/node_modules/@cc-switch/sdk/dist/constants.js +4 -2
- package/node_modules/@cc-switch/sdk/dist/sdk.d.ts.map +1 -1
- package/node_modules/@cc-switch/sdk/dist/sdk.js +20 -30
- package/node_modules/@cc-switch/sdk/dist/services/mcp-model.d.ts.map +1 -1
- package/node_modules/@cc-switch/sdk/dist/services/mcp-model.js +7 -4
- package/node_modules/@cc-switch/sdk/dist/services/skill-model.d.ts.map +1 -1
- package/node_modules/@cc-switch/sdk/dist/services/skill-model.js +7 -4
- package/node_modules/@cc-switch/sdk/dist/types.d.ts +1 -0
- package/node_modules/@cc-switch/sdk/dist/types.d.ts.map +1 -1
- package/node_modules/@cc-switch/sdk/dist/utils/fs.d.ts +1 -0
- package/node_modules/@cc-switch/sdk/dist/utils/fs.d.ts.map +1 -1
- package/node_modules/@cc-switch/sdk/dist/utils/fs.js +23 -0
- package/package/cc-switch-sdk/dist/constants.d.ts.map +1 -1
- package/package/cc-switch-sdk/dist/constants.js +4 -2
- package/package/cc-switch-sdk/dist/sdk.d.ts.map +1 -1
- package/package/cc-switch-sdk/dist/sdk.js +20 -30
- package/package/cc-switch-sdk/dist/services/mcp-model.d.ts.map +1 -1
- package/package/cc-switch-sdk/dist/services/mcp-model.js +7 -4
- package/package/cc-switch-sdk/dist/services/skill-model.d.ts.map +1 -1
- package/package/cc-switch-sdk/dist/services/skill-model.js +7 -4
- package/package/cc-switch-sdk/dist/types.d.ts +1 -0
- package/package/cc-switch-sdk/dist/types.d.ts.map +1 -1
- package/package/cc-switch-sdk/dist/utils/fs.d.ts +1 -0
- package/package/cc-switch-sdk/dist/utils/fs.d.ts.map +1 -1
- package/package/cc-switch-sdk/dist/utils/fs.js +23 -0
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
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({
|
|
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 @@
|
|
|
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 {
|
|
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,
|
|
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 {
|
|
8
|
+
import { AiConfigService, CcSwitchSdk } from '@cc-switch/sdk';
|
|
9
9
|
import { createMcpAdapters, createSkillAdapters } from '../adapters/cc-switch/index.js';
|
|
10
|
-
import {
|
|
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.
|
|
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:
|
|
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:
|
|
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
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/utils/mcp-utils.js
CHANGED
|
@@ -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:
|
|
89
|
-
claudecode
|
|
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.
|
|
147
|
+
enabled: Boolean(apps.claudecode || apps.codex || apps.gemini || apps.opencode || apps.openclaw),
|
|
147
148
|
apps: {
|
|
148
|
-
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:
|
|
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,
|
|
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:
|
|
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;
|
|
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
|
-
[
|
|
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
|
-
[
|
|
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, [
|
|
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
|
|
380
|
-
|
|
381
|
-
|
|
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, [
|
|
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
|
-
[
|
|
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,
|
|
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,
|
|
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
|
}
|
|
@@ -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
|