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 +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,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
@@ -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
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aws-runtime-bridge",
3
- "version": "1.1.11",
3
+ "version": "1.2.1",
4
4
  "description": "AgentsWorkStudio runtime bridge service for machine-level agent runtime integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",