aws-runtime-bridge 1.1.11 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/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 +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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAwCA,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrE;AAED,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhE;AAED,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvE;AAED,wBAAsB,YAAY,CAAC,CAAC,EAClC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,CAAC,GACV,OAAO,CAAC,CAAC,CAAC,CAOZ;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpF;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAItE;AAED,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAsBf"}
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAwCA,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrE;AAED,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhE;AAED,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvE;AAED,wBAAsB,YAAY,CAAC,CAAC,EAClC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,CAAC,GACV,OAAO,CAAC,CAAC,CAAC,CAOZ;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpF;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAItE;AAED,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAWD,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAgBlB"}
|
|
@@ -89,3 +89,26 @@ export async function copyDir(sourceDir, targetDir) {
|
|
|
89
89
|
await fs.copyFile(sourcePath, targetPath);
|
|
90
90
|
}));
|
|
91
91
|
}
|
|
92
|
+
function isMissingPathError(err) {
|
|
93
|
+
if (typeof err !== "object" || err === null || !("code" in err)) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
const { code } = err;
|
|
97
|
+
return code === "ENOENT";
|
|
98
|
+
}
|
|
99
|
+
export async function copyDirIfExists(sourceDir, targetDir) {
|
|
100
|
+
if (!(await pathExists(sourceDir))) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
await copyDir(sourceDir, targetDir);
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
if (isMissingPathError(err)) {
|
|
109
|
+
await removeIfExists(targetDir);
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
throw err;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAwCA,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrE;AAED,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhE;AAED,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvE;AAED,wBAAsB,YAAY,CAAC,CAAC,EAClC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,CAAC,GACV,OAAO,CAAC,CAAC,CAAC,CAOZ;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpF;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAItE;AAED,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAsBf"}
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAwCA,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrE;AAED,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhE;AAED,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvE;AAED,wBAAsB,YAAY,CAAC,CAAC,EAClC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,CAAC,GACV,OAAO,CAAC,CAAC,CAAC,CAOZ;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpF;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAItE;AAED,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAWD,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAgBlB"}
|