aws-runtime-bridge 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +77 -77
  2. package/dist/adapter/ClaudeSdkAdapter.d.ts +1 -0
  3. package/dist/adapter/ClaudeSdkAdapter.d.ts.map +1 -1
  4. package/dist/adapter/ClaudeSdkAdapter.js +7 -3
  5. package/dist/adapter/ClaudeSdkAdapter.test.js +2 -2
  6. package/dist/adapter/CodexSdkAdapter.d.ts.map +1 -1
  7. package/dist/adapter/CodexSdkAdapter.js +7 -4
  8. package/dist/adapter/CodexSdkAdapter.test.js +4 -2
  9. package/dist/adapter/OpencodeSdkAdapter.d.ts +2 -0
  10. package/dist/adapter/OpencodeSdkAdapter.d.ts.map +1 -1
  11. package/dist/adapter/OpencodeSdkAdapter.js +15 -1
  12. package/dist/adapter/OpencodeSdkAdapter.test.js +5 -0
  13. package/dist/index.js +0 -0
  14. package/dist/routes/properties.test.js +4 -4
  15. package/dist/routes/runtime-binding.d.ts.map +1 -1
  16. package/dist/routes/runtime-binding.js +8 -13
  17. package/dist/routes/runtime-mcp-proxy.d.ts +3 -0
  18. package/dist/routes/runtime-mcp-proxy.d.ts.map +1 -0
  19. package/dist/routes/runtime-mcp-proxy.js +102 -0
  20. package/dist/routes/runtime-mcp-proxy.test.d.ts +2 -0
  21. package/dist/routes/runtime-mcp-proxy.test.d.ts.map +1 -0
  22. package/dist/routes/runtime-mcp-proxy.test.js +111 -0
  23. package/dist/routes/terminal.js +2 -5
  24. package/dist/routes/terminal.test.js +3 -4
  25. package/dist/services/auto-register.d.ts +6 -0
  26. package/dist/services/auto-register.d.ts.map +1 -1
  27. package/dist/services/auto-register.js +63 -1
  28. package/dist/services/aws-client-agent-mcp.d.ts.map +1 -1
  29. package/dist/services/aws-client-agent-mcp.js +4 -4
  30. package/dist/services/aws-client-agent-mcp.test.js +14 -0
  31. package/dist/services/mcp-launch-binding-queue.d.ts +0 -2
  32. package/dist/services/mcp-launch-binding-queue.d.ts.map +1 -1
  33. package/dist/services/mcp-launch-binding-queue.js +44 -16
  34. package/dist/services/mcp-launch-binding-queue.test.js +42 -37
  35. package/dist/services/runtime-binding.d.ts +1 -0
  36. package/dist/services/runtime-binding.d.ts.map +1 -1
  37. package/dist/services/runtime-binding.js +39 -5
  38. package/dist/services/runtime-binding.test.d.ts +2 -0
  39. package/dist/services/runtime-binding.test.d.ts.map +1 -0
  40. package/dist/services/runtime-binding.test.js +11 -0
  41. package/dist/utils/yaml-utils.test.js +129 -129
  42. package/node_modules/@cc-switch/sdk/README.md +540 -540
  43. package/node_modules/@cc-switch/sdk/dist/sdk-import.test.d.ts +2 -0
  44. package/node_modules/@cc-switch/sdk/dist/sdk-import.test.d.ts.map +1 -0
  45. package/node_modules/@cc-switch/sdk/dist/sdk-import.test.js +119 -0
  46. package/node_modules/@cc-switch/sdk/package.json +31 -31
  47. package/package/aws-client-agent-mcp/README.md +288 -288
  48. package/package/aws-client-agent-mcp/dist/config.d.ts.map +1 -1
  49. package/package/aws-client-agent-mcp/dist/config.js +96 -13
  50. package/package/aws-client-agent-mcp/dist/config.js.map +1 -1
  51. package/package/aws-client-agent-mcp/dist/config.test.js +26 -8
  52. package/package/aws-client-agent-mcp/dist/config.test.js.map +1 -1
  53. package/package/aws-client-agent-mcp/dist/constants.d.ts +0 -1
  54. package/package/aws-client-agent-mcp/dist/constants.d.ts.map +1 -1
  55. package/package/aws-client-agent-mcp/dist/constants.js +0 -1
  56. package/package/aws-client-agent-mcp/dist/constants.js.map +1 -1
  57. package/package/aws-client-agent-mcp/dist/http-client.d.ts.map +1 -1
  58. package/package/aws-client-agent-mcp/dist/http-client.js +49 -13
  59. package/package/aws-client-agent-mcp/dist/http-client.js.map +1 -1
  60. package/package/aws-client-agent-mcp/dist/http-client.test.js +40 -13
  61. package/package/aws-client-agent-mcp/dist/http-client.test.js.map +1 -1
  62. package/package/aws-client-agent-mcp/dist/index.js +11 -6
  63. package/package/aws-client-agent-mcp/dist/index.js.map +1 -1
  64. package/package/aws-client-agent-mcp/dist/logger.d.ts +11 -1
  65. package/package/aws-client-agent-mcp/dist/logger.d.ts.map +1 -1
  66. package/package/aws-client-agent-mcp/dist/logger.js +91 -6
  67. package/package/aws-client-agent-mcp/dist/logger.js.map +1 -1
  68. package/package/aws-client-agent-mcp/dist/logger.test.d.ts +2 -0
  69. package/package/aws-client-agent-mcp/dist/logger.test.d.ts.map +1 -0
  70. package/package/aws-client-agent-mcp/dist/logger.test.js +27 -0
  71. package/package/aws-client-agent-mcp/dist/logger.test.js.map +1 -0
  72. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.d.ts.map +1 -1
  73. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.js +18 -14
  74. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.js.map +1 -1
  75. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.js +51 -21
  76. package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.js.map +1 -1
  77. package/package/aws-client-agent-mcp/dist/types.d.ts +3 -2
  78. package/package/aws-client-agent-mcp/dist/types.d.ts.map +1 -1
  79. package/package/aws-client-agent-mcp/dist/types.js.map +1 -1
  80. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +1 -0
  81. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts.map +1 -1
  82. package/package/aws-client-agent-mcp/dist/websocket-client.js +18 -0
  83. package/package/aws-client-agent-mcp/dist/websocket-client.js.map +1 -1
  84. package/package/aws-client-agent-mcp/dist/websocket-client.test.js +53 -2
  85. package/package/aws-client-agent-mcp/dist/websocket-client.test.js.map +1 -1
  86. package/package/aws-client-agent-mcp/package.json +52 -52
  87. package/package/cc-switch-sdk/README.md +540 -540
  88. package/package/cc-switch-sdk/dist/sdk-import.test.d.ts +2 -0
  89. package/package/cc-switch-sdk/dist/sdk-import.test.d.ts.map +1 -0
  90. package/package/cc-switch-sdk/dist/sdk-import.test.js +119 -0
  91. package/package/cc-switch-sdk/package.json +31 -31
  92. package/package.json +78 -78
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sdk-import.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-import.test.d.ts","sourceRoot":"","sources":["../src/sdk-import.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,119 @@
1
+ import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { afterEach, describe, expect, it } from "vitest";
5
+ import { CcSwitchSdk } from "./sdk.js";
6
+ class MemoryMcpAdapter {
7
+ constructor(appId, imported = []) {
8
+ this.appId = appId;
9
+ this.imported = imported;
10
+ this.synced = [];
11
+ this.removed = [];
12
+ }
13
+ async importServers() {
14
+ return this.imported;
15
+ }
16
+ async syncServer(server) {
17
+ this.synced.push(server);
18
+ }
19
+ async removeServer(server) {
20
+ this.removed.push(server);
21
+ }
22
+ }
23
+ class MemorySkillAdapter {
24
+ constructor(appId, imported = []) {
25
+ this.appId = appId;
26
+ this.imported = imported;
27
+ this.synced = [];
28
+ this.removed = [];
29
+ }
30
+ async importSkills() {
31
+ return this.imported;
32
+ }
33
+ async syncSkill(skill, _sourceDir, _method) {
34
+ this.synced.push(skill);
35
+ }
36
+ async removeSkill(skill) {
37
+ this.removed.push(skill);
38
+ }
39
+ }
40
+ describe("CcSwitchSdk imports", () => {
41
+ let tempDir = "";
42
+ const extraTempDirs = [];
43
+ afterEach(async () => {
44
+ if (tempDir) {
45
+ await rm(tempDir, { recursive: true, force: true });
46
+ tempDir = "";
47
+ }
48
+ for (const dir of extraTempDirs.splice(0)) {
49
+ await rm(dir, { recursive: true, force: true });
50
+ }
51
+ });
52
+ async function createSdk(adapters) {
53
+ tempDir = await mkdtemp(path.join(os.tmpdir(), "cc-switch-sdk-import-"));
54
+ const paths = {
55
+ stateFile: path.join(tempDir, "state.json"),
56
+ backupDir: path.join(tempDir, "backups"),
57
+ claudeConfigFile: path.join(tempDir, "claude.json"),
58
+ claudeSkillsDir: path.join(tempDir, "claude-skills"),
59
+ claudecodeConfigFile: path.join(tempDir, "claudecode.json"),
60
+ claudecodeSkillsDir: path.join(tempDir, "claudecode-skills"),
61
+ codexConfigFile: path.join(tempDir, "codex.toml"),
62
+ opencodeConfigFile: path.join(tempDir, "opencode.json"),
63
+ opencodeSkillsDir: path.join(tempDir, "opencode-skills"),
64
+ ssotSkillsDir: path.join(tempDir, "ssot-skills"),
65
+ };
66
+ const emptyMcpAdapters = Object.fromEntries(["claude", "claudecode", "codex", "gemini", "opencode", "openclaw"].map((appId) => [
67
+ appId,
68
+ new MemoryMcpAdapter(appId),
69
+ ]));
70
+ const emptySkillAdapters = Object.fromEntries(["claude", "claudecode", "codex", "gemini", "opencode", "openclaw"].map((appId) => [
71
+ appId,
72
+ new MemorySkillAdapter(appId),
73
+ ]));
74
+ const sdk = new CcSwitchSdk({
75
+ paths,
76
+ adapters: {
77
+ mcp: { ...emptyMcpAdapters, ...adapters.mcp },
78
+ skill: { ...emptySkillAdapters, ...adapters.skill },
79
+ },
80
+ });
81
+ await sdk.load();
82
+ return sdk;
83
+ }
84
+ it("merges imported MCP app flags before syncing", async () => {
85
+ const sharedServer = {
86
+ id: "mcp-1",
87
+ name: "shared-mcp",
88
+ server: { type: "stdio", command: "node" },
89
+ apps: { claude: false, claudecode: true, codex: false, gemini: false, opencode: false, openclaw: false },
90
+ };
91
+ const claudecode = new MemoryMcpAdapter("claudecode", [sharedServer]);
92
+ const opencode = new MemoryMcpAdapter("opencode", [{ ...sharedServer, id: "mcp-2" }]);
93
+ const sdk = await createSdk({ mcp: { claudecode, opencode } });
94
+ await sdk.importMcpFromApps();
95
+ const [server] = sdk.getAllMcpServers();
96
+ expect(server.apps.claudecode).toBe(true);
97
+ expect(server.apps.opencode).toBe(true);
98
+ expect(opencode.removed).toHaveLength(0);
99
+ });
100
+ it("merges imported Skill app flags before syncing", async () => {
101
+ const sourceRoot = await mkdtemp(path.join(os.tmpdir(), "skill-source-"));
102
+ extraTempDirs.push(sourceRoot);
103
+ const sourceDir = path.join(sourceRoot, "demo-skill");
104
+ await mkdir(sourceDir, { recursive: true });
105
+ await writeFile(path.join(sourceDir, "SKILL.md"), "# Demo");
106
+ const claudecode = new MemorySkillAdapter("claudecode", [
107
+ { id: "skill-1", name: "demo-skill", directory: sourceDir },
108
+ ]);
109
+ const opencode = new MemorySkillAdapter("opencode", [
110
+ { id: "skill-2", name: "demo-skill", directory: sourceDir },
111
+ ]);
112
+ const sdk = await createSdk({ skill: { claudecode, opencode } });
113
+ await sdk.importSkillsFromApps();
114
+ const [skill] = sdk.getAllSkills();
115
+ expect(skill.apps.claudecode).toBe(true);
116
+ expect(skill.apps.opencode).toBe(true);
117
+ expect(opencode.removed).toHaveLength(0);
118
+ });
119
+ });
@@ -1,31 +1,31 @@
1
- {
2
- "name": "@cc-switch/sdk",
3
- "version": "0.1.0",
4
- "description": "Node SDK for MCP and Skill management",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/index.d.ts",
11
- "default": "./dist/index.js"
12
- }
13
- },
14
- "files": [
15
- "dist"
16
- ],
17
- "scripts": {
18
- "build": "tsc -p tsconfig.json",
19
- "typecheck": "tsc -p tsconfig.json --noEmit",
20
- "test": "vitest run --config vitest.config.ts",
21
- "test:watch": "vitest --config vitest.config.ts"
22
- },
23
- "dependencies": {
24
- "zod": "^4.1.12"
25
- },
26
- "devDependencies": {
27
- "@types/node": "^20.0.0",
28
- "typescript": "^5.3.0",
29
- "vitest": "^2.0.5"
30
- }
31
- }
1
+ {
2
+ "name": "@cc-switch/sdk",
3
+ "version": "0.1.0",
4
+ "description": "Node SDK for MCP and Skill management",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "scripts": {
18
+ "build": "tsc -p tsconfig.json",
19
+ "typecheck": "tsc -p tsconfig.json --noEmit",
20
+ "test": "vitest run --config vitest.config.ts",
21
+ "test:watch": "vitest --config vitest.config.ts"
22
+ },
23
+ "dependencies": {
24
+ "zod": "^4.1.12"
25
+ },
26
+ "devDependencies": {
27
+ "@types/node": "^20.0.0",
28
+ "typescript": "^5.3.0",
29
+ "vitest": "^2.0.5"
30
+ }
31
+ }
package/package.json CHANGED
@@ -1,78 +1,78 @@
1
- {
2
- "name": "aws-runtime-bridge",
3
- "version": "1.2.1",
4
- "description": "AgentsWorkStudio runtime bridge service for machine-level agent runtime integration",
5
- "type": "module",
6
- "main": "dist/index.js",
7
- "bin": {
8
- "awsb": "dist/index.js",
9
- "aws-bridge": "dist/index.js",
10
- "aws-runtime-bridge": "dist/index.js"
11
- },
12
- "files": [
13
- "dist",
14
- "scripts/ensure-bin-executable.mjs",
15
- "package/aws-client-agent-mcp/dist",
16
- "package/aws-client-agent-mcp/package.json",
17
- "package/aws-client-agent-mcp/README.md",
18
- "package/cc-switch-sdk/dist",
19
- "package/cc-switch-sdk/package.json",
20
- "package/cc-switch-sdk/README.md"
21
- ],
22
- "bundleDependencies": [
23
- "@cc-switch/sdk"
24
- ],
25
- "engines": {
26
- "node": ">=20.0.0 <25"
27
- },
28
- "scripts": {
29
- "build:agent-mcp": "npm run build --prefix package/aws-client-agent-mcp",
30
- "build:sdk": "npm run build --prefix package/cc-switch-sdk",
31
- "prebuild": "npm run build:sdk && npm run build:agent-mcp",
32
- "build": "tsc -p tsconfig.json",
33
- "postinstall": "node scripts/ensure-bin-executable.mjs",
34
- "pretypecheck": "npm run build:sdk && npm run build:agent-mcp",
35
- "typecheck": "tsc -p tsconfig.json --noEmit",
36
- "prestart": "npm run build:sdk && npm run build:agent-mcp",
37
- "start": "node dist/index.js",
38
- "dev": "tsc -p tsconfig.json && node scripts/dev-runner.mjs",
39
- "prepare": "npm run build",
40
- "lint": "eslint src --max-warnings 0",
41
- "lint:fix": "eslint src --fix",
42
- "format": "prettier --write \"src/**/*.ts\"",
43
- "format:check": "prettier --check \"src/**/*.ts\"",
44
- "test": "vitest run",
45
- "test:watch": "vitest",
46
- "test:coverage": "vitest run --coverage"
47
- },
48
- "dependencies": {
49
- "@anthropic-ai/claude-agent-sdk": "^0.2.87",
50
- "@cc-switch/sdk": "file:package/cc-switch-sdk",
51
- "@modelcontextprotocol/sdk": "^1.27.1",
52
- "@openai/codex-sdk": "^0.125.0",
53
- "@opencode-ai/sdk": "^1.3.13",
54
- "axios": "^1.7.9",
55
- "cors": "^2.8.5",
56
- "express": "^4.21.2",
57
- "js-yaml": "^4.1.1",
58
- "node-pty": "^1.0.0",
59
- "uuid": "^11.0.3",
60
- "ws": "^8.14.2",
61
- "yaml": "^2.3.4"
62
- },
63
- "devDependencies": {
64
- "@eslint/js": "^9.0.0",
65
- "@types/cors": "^2.8.19",
66
- "@types/express": "^4.17.21",
67
- "@types/js-yaml": "^4.0.9",
68
- "@types/node": "^20.17.0",
69
- "@vitest/coverage-v8": "^2.0.0",
70
- "eslint": "^9.0.0",
71
- "eslint-plugin-import": "^2.29.0",
72
- "prettier": "^3.2.0",
73
- "tsx": "^4.21.0",
74
- "typescript": "^5.9.3",
75
- "typescript-eslint": "^8.0.0",
76
- "vitest": "^2.0.0"
77
- }
78
- }
1
+ {
2
+ "name": "aws-runtime-bridge",
3
+ "version": "1.3.0",
4
+ "description": "AgentsWorkStudio runtime bridge service for machine-level agent runtime integration",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "awsb": "dist/index.js",
9
+ "aws-bridge": "dist/index.js",
10
+ "aws-runtime-bridge": "dist/index.js"
11
+ },
12
+ "files": [
13
+ "dist",
14
+ "scripts/ensure-bin-executable.mjs",
15
+ "package/aws-client-agent-mcp/dist",
16
+ "package/aws-client-agent-mcp/package.json",
17
+ "package/aws-client-agent-mcp/README.md",
18
+ "package/cc-switch-sdk/dist",
19
+ "package/cc-switch-sdk/package.json",
20
+ "package/cc-switch-sdk/README.md"
21
+ ],
22
+ "bundleDependencies": [
23
+ "@cc-switch/sdk"
24
+ ],
25
+ "engines": {
26
+ "node": ">=20.0.0 <25"
27
+ },
28
+ "scripts": {
29
+ "build:agent-mcp": "npm run build --prefix package/aws-client-agent-mcp",
30
+ "build:sdk": "npm run build --prefix package/cc-switch-sdk",
31
+ "prebuild": "npm run build:sdk && npm run build:agent-mcp",
32
+ "build": "tsc -p tsconfig.json",
33
+ "postinstall": "node scripts/ensure-bin-executable.mjs",
34
+ "pretypecheck": "npm run build:sdk && npm run build:agent-mcp",
35
+ "typecheck": "tsc -p tsconfig.json --noEmit",
36
+ "prestart": "npm run build:sdk && npm run build:agent-mcp",
37
+ "start": "node dist/index.js",
38
+ "dev": "tsc -p tsconfig.json && node scripts/dev-runner.mjs",
39
+ "prepare": "npm run build",
40
+ "lint": "eslint src --max-warnings 0",
41
+ "lint:fix": "eslint src --fix",
42
+ "format": "prettier --write \"src/**/*.ts\"",
43
+ "format:check": "prettier --check \"src/**/*.ts\"",
44
+ "test": "vitest run",
45
+ "test:watch": "vitest",
46
+ "test:coverage": "vitest run --coverage"
47
+ },
48
+ "dependencies": {
49
+ "@anthropic-ai/claude-agent-sdk": "^0.2.87",
50
+ "@cc-switch/sdk": "file:package/cc-switch-sdk",
51
+ "@modelcontextprotocol/sdk": "^1.27.1",
52
+ "@openai/codex-sdk": "^0.125.0",
53
+ "@opencode-ai/sdk": "^1.3.13",
54
+ "axios": "^1.7.9",
55
+ "cors": "^2.8.5",
56
+ "express": "^4.21.2",
57
+ "js-yaml": "^4.1.1",
58
+ "node-pty": "^1.0.0",
59
+ "uuid": "^11.0.3",
60
+ "ws": "^8.14.2",
61
+ "yaml": "^2.3.4"
62
+ },
63
+ "devDependencies": {
64
+ "@eslint/js": "^9.0.0",
65
+ "@types/cors": "^2.8.19",
66
+ "@types/express": "^4.17.21",
67
+ "@types/js-yaml": "^4.0.9",
68
+ "@types/node": "^20.17.0",
69
+ "@vitest/coverage-v8": "^2.0.0",
70
+ "eslint": "^9.0.0",
71
+ "eslint-plugin-import": "^2.29.0",
72
+ "prettier": "^3.2.0",
73
+ "tsx": "^4.21.0",
74
+ "typescript": "^5.9.3",
75
+ "typescript-eslint": "^8.0.0",
76
+ "vitest": "^2.0.0"
77
+ }
78
+ }