@kwonye/mcpx 0.1.68 → 0.1.73

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 (144) hide show
  1. package/dist/adapters/claude-desktop.d.ts +1 -0
  2. package/dist/adapters/claude-desktop.d.ts.map +1 -0
  3. package/dist/adapters/claude.d.ts +1 -0
  4. package/dist/adapters/claude.d.ts.map +1 -0
  5. package/dist/adapters/cline.d.ts +1 -0
  6. package/dist/adapters/cline.d.ts.map +1 -0
  7. package/dist/adapters/codex.d.ts +1 -0
  8. package/dist/adapters/codex.d.ts.map +1 -0
  9. package/dist/adapters/cursor.d.ts +1 -0
  10. package/dist/adapters/cursor.d.ts.map +1 -0
  11. package/dist/adapters/index.d.ts +1 -0
  12. package/dist/adapters/index.d.ts.map +1 -0
  13. package/dist/adapters/kiro.d.ts +1 -0
  14. package/dist/adapters/kiro.d.ts.map +1 -0
  15. package/dist/adapters/opencode.d.ts +1 -0
  16. package/dist/adapters/opencode.d.ts.map +1 -0
  17. package/dist/adapters/qwen.d.ts +1 -0
  18. package/dist/adapters/qwen.d.ts.map +1 -0
  19. package/dist/adapters/utils/index.d.ts +1 -0
  20. package/dist/adapters/utils/index.d.ts.map +1 -0
  21. package/dist/adapters/vscode.d.ts +1 -0
  22. package/dist/adapters/vscode.d.ts.map +1 -0
  23. package/dist/cli-7rggq938.js +3292 -0
  24. package/dist/cli-ezvj44tr.js +3292 -0
  25. package/dist/cli-q8de7zb0.js +12 -0
  26. package/dist/cli.d.ts +1 -0
  27. package/dist/cli.d.ts.map +1 -0
  28. package/dist/cli.js +1880 -1131
  29. package/dist/compat/claude.d.ts +1 -0
  30. package/dist/compat/claude.d.ts.map +1 -0
  31. package/dist/compat/codex.d.ts +1 -0
  32. package/dist/compat/codex.d.ts.map +1 -0
  33. package/dist/compat/index.d.ts +1 -0
  34. package/dist/compat/index.d.ts.map +1 -0
  35. package/dist/compat/qwen.d.ts +1 -0
  36. package/dist/compat/qwen.d.ts.map +1 -0
  37. package/dist/compat/unsupported.d.ts +1 -0
  38. package/dist/compat/unsupported.d.ts.map +1 -0
  39. package/dist/compat/vscode.d.ts +1 -0
  40. package/dist/compat/vscode.d.ts.map +1 -0
  41. package/dist/core/auth-probe.d.ts +1 -0
  42. package/dist/core/auth-probe.d.ts.map +1 -0
  43. package/dist/core/config.d.ts +1 -0
  44. package/dist/core/config.d.ts.map +1 -0
  45. package/dist/core/daemon.d.ts +1 -0
  46. package/dist/core/daemon.d.ts.map +1 -0
  47. package/dist/core/index.d.ts +1 -0
  48. package/dist/core/index.d.ts.map +1 -0
  49. package/dist/core/index.js +81 -24
  50. package/dist/core/managed-index.d.ts +1 -0
  51. package/dist/core/managed-index.d.ts.map +1 -0
  52. package/dist/core/paths.d.ts +2 -0
  53. package/dist/core/paths.d.ts.map +1 -0
  54. package/dist/core/registry.d.ts +1 -0
  55. package/dist/core/registry.d.ts.map +1 -0
  56. package/dist/core/secrets.d.ts +1 -0
  57. package/dist/core/secrets.d.ts.map +1 -0
  58. package/dist/core/server-auth.d.ts +1 -0
  59. package/dist/core/server-auth.d.ts.map +1 -0
  60. package/dist/core/status.d.ts +1 -0
  61. package/dist/core/status.d.ts.map +1 -0
  62. package/dist/core/sync.d.ts +1 -0
  63. package/dist/core/sync.d.ts.map +1 -0
  64. package/dist/core/update-manager.d.ts +1 -0
  65. package/dist/core/update-manager.d.ts.map +1 -0
  66. package/dist/core/update.d.ts +1 -0
  67. package/dist/core/update.d.ts.map +1 -0
  68. package/dist/gateway/server.d.ts +1 -0
  69. package/dist/gateway/server.d.ts.map +1 -0
  70. package/dist/types.d.ts +1 -0
  71. package/dist/types.d.ts.map +1 -0
  72. package/dist/types.js +8 -10
  73. package/dist/util/fs.d.ts +1 -0
  74. package/dist/util/fs.d.ts.map +1 -0
  75. package/dist/version.d.ts +2 -1
  76. package/dist/version.d.ts.map +1 -0
  77. package/package.json +10 -11
  78. package/dist/adapters/claude-desktop.js +0 -118
  79. package/dist/adapters/claude-desktop.js.map +0 -1
  80. package/dist/adapters/claude.js +0 -131
  81. package/dist/adapters/claude.js.map +0 -1
  82. package/dist/adapters/cline.js +0 -135
  83. package/dist/adapters/cline.js.map +0 -1
  84. package/dist/adapters/codex.js +0 -125
  85. package/dist/adapters/codex.js.map +0 -1
  86. package/dist/adapters/cursor.js +0 -125
  87. package/dist/adapters/cursor.js.map +0 -1
  88. package/dist/adapters/index.js +0 -23
  89. package/dist/adapters/index.js.map +0 -1
  90. package/dist/adapters/kiro.js +0 -120
  91. package/dist/adapters/kiro.js.map +0 -1
  92. package/dist/adapters/opencode.js +0 -122
  93. package/dist/adapters/opencode.js.map +0 -1
  94. package/dist/adapters/qwen.js +0 -117
  95. package/dist/adapters/qwen.js.map +0 -1
  96. package/dist/adapters/utils/index.js +0 -144
  97. package/dist/adapters/utils/index.js.map +0 -1
  98. package/dist/adapters/vscode.js +0 -125
  99. package/dist/adapters/vscode.js.map +0 -1
  100. package/dist/cli.js.map +0 -1
  101. package/dist/compat/claude.js +0 -252
  102. package/dist/compat/claude.js.map +0 -1
  103. package/dist/compat/codex.js +0 -179
  104. package/dist/compat/codex.js.map +0 -1
  105. package/dist/compat/index.js +0 -108
  106. package/dist/compat/index.js.map +0 -1
  107. package/dist/compat/qwen.js +0 -316
  108. package/dist/compat/qwen.js.map +0 -1
  109. package/dist/compat/unsupported.js +0 -47
  110. package/dist/compat/unsupported.js.map +0 -1
  111. package/dist/compat/vscode.js +0 -164
  112. package/dist/compat/vscode.js.map +0 -1
  113. package/dist/core/auth-probe.js +0 -54
  114. package/dist/core/auth-probe.js.map +0 -1
  115. package/dist/core/config.js +0 -76
  116. package/dist/core/config.js.map +0 -1
  117. package/dist/core/daemon.js +0 -176
  118. package/dist/core/daemon.js.map +0 -1
  119. package/dist/core/index.js.map +0 -1
  120. package/dist/core/managed-index.js +0 -22
  121. package/dist/core/managed-index.js.map +0 -1
  122. package/dist/core/paths.js +0 -55
  123. package/dist/core/paths.js.map +0 -1
  124. package/dist/core/registry.js +0 -51
  125. package/dist/core/registry.js.map +0 -1
  126. package/dist/core/secrets.js +0 -108
  127. package/dist/core/secrets.js.map +0 -1
  128. package/dist/core/server-auth.js +0 -112
  129. package/dist/core/server-auth.js.map +0 -1
  130. package/dist/core/status.js +0 -65
  131. package/dist/core/status.js.map +0 -1
  132. package/dist/core/sync.js +0 -128
  133. package/dist/core/sync.js.map +0 -1
  134. package/dist/core/update-manager.js +0 -170
  135. package/dist/core/update-manager.js.map +0 -1
  136. package/dist/core/update.js +0 -111
  137. package/dist/core/update.js.map +0 -1
  138. package/dist/gateway/server.js +0 -995
  139. package/dist/gateway/server.js.map +0 -1
  140. package/dist/types.js.map +0 -1
  141. package/dist/util/fs.js +0 -34
  142. package/dist/util/fs.js.map +0 -1
  143. package/dist/version.js +0 -2
  144. package/dist/version.js.map +0 -1
@@ -1,120 +0,0 @@
1
- import os from "node:os";
2
- import path from "node:path";
3
- import { z } from "zod";
4
- import { readJsonFile, writeJsonAtomic } from "../util/fs.js";
5
- import { buildImportSkip, emptyImportScan, ensureManagedEntryWritable, errorResult, isManagedGatewayProjection, okResult, pruneStaleManagedEntries, removeSourceEntries, setManagedEntries } from "./utils/index.js";
6
- const stringMapSchema = z.record(z.string(), z.string());
7
- const kiroEntrySchema = z.object({
8
- url: z.string().min(1).optional(),
9
- headers: stringMapSchema.optional(),
10
- command: z.string().min(1).optional(),
11
- args: z.array(z.string()).optional(),
12
- env: stringMapSchema.optional(),
13
- cwd: z.string().min(1).optional(),
14
- disabled: z.boolean().optional()
15
- }).passthrough();
16
- export class KiroAdapter {
17
- id = "kiro";
18
- detectConfigPath() {
19
- return path.join(os.homedir(), ".kiro", "settings", "mcp.json");
20
- }
21
- supportsHttp() {
22
- return true;
23
- }
24
- scanForImports(_config, managedIndex) {
25
- const configPath = this.detectConfigPath();
26
- const result = emptyImportScan(this.id, configPath ?? undefined);
27
- if (!configPath) {
28
- return result;
29
- }
30
- const raw = readJsonFile(configPath, {});
31
- const servers = {
32
- ...(raw.mcpServers ?? {})
33
- };
34
- for (const [name, rawEntry] of Object.entries(servers)) {
35
- if (isManagedGatewayProjection(name) || managedIndex.managed[this.id]?.entries?.[name]) {
36
- continue;
37
- }
38
- const parsed = kiroEntrySchema.safeParse(rawEntry);
39
- if (!parsed.success) {
40
- result.skipped.push(buildImportSkip(this.id, name, "Entry could not be mapped to an mcpx server.", configPath));
41
- continue;
42
- }
43
- const entry = parsed.data;
44
- if (entry.url && !entry.command) {
45
- result.candidates.push({
46
- clientId: this.id,
47
- configPath,
48
- sourceEntryName: name,
49
- serverName: name,
50
- spec: {
51
- transport: "http",
52
- url: entry.url,
53
- headers: entry.headers,
54
- enabled: entry.disabled !== true
55
- }
56
- });
57
- continue;
58
- }
59
- if (entry.command && !entry.url) {
60
- result.candidates.push({
61
- clientId: this.id,
62
- configPath,
63
- sourceEntryName: name,
64
- serverName: name,
65
- spec: {
66
- transport: "stdio",
67
- command: entry.command,
68
- args: entry.args,
69
- env: entry.env,
70
- cwd: entry.cwd,
71
- enabled: entry.disabled !== true
72
- }
73
- });
74
- continue;
75
- }
76
- result.skipped.push(buildImportSkip(this.id, name, "Entry must define exactly one transport that mcpx supports.", configPath));
77
- }
78
- return result;
79
- }
80
- syncGateway(_config, options) {
81
- const configPath = this.detectConfigPath();
82
- if (!configPath) {
83
- return errorResult(this.id, undefined, "Unable to resolve Kiro MCP config path.");
84
- }
85
- try {
86
- const raw = readJsonFile(configPath, {});
87
- const servers = {
88
- ...(raw.mcpServers ?? {})
89
- };
90
- removeSourceEntries(servers, options.sourceEntriesToRemove);
91
- const managedNames = options.managedEntries.map((entry) => entry.name);
92
- const serverEntries = Object.fromEntries(options.managedEntries.map((entry) => [entry.name, {
93
- url: entry.url,
94
- headers: entry.headers,
95
- disabled: !entry.enabled
96
- }]));
97
- for (const name of managedNames) {
98
- const conflict = ensureManagedEntryWritable(options.managedIndex, this.id, name, servers[name]);
99
- if (conflict) {
100
- return errorResult(this.id, configPath, conflict);
101
- }
102
- }
103
- pruneStaleManagedEntries(options.managedIndex, this.id, servers, managedNames);
104
- for (const [name, entry] of Object.entries(serverEntries)) {
105
- servers[name] = entry;
106
- }
107
- const next = {
108
- ...raw,
109
- mcpServers: servers
110
- };
111
- writeJsonAtomic(configPath, next);
112
- setManagedEntries(options.managedIndex, this.id, configPath, Object.fromEntries(Object.entries(serverEntries).map(([name, entry]) => [name, JSON.stringify(entry)])));
113
- return okResult(this.id, configPath);
114
- }
115
- catch (error) {
116
- return errorResult(this.id, configPath, error.message);
117
- }
118
- }
119
- }
120
- //# sourceMappingURL=kiro.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kiro.js","sourceRoot":"","sources":["../../src/adapters/kiro.ts"],"names":[],"mappings":"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"}
@@ -1,122 +0,0 @@
1
- import os from "node:os";
2
- import path from "node:path";
3
- import { z } from "zod";
4
- import { readJsonFile, writeJsonAtomic } from "../util/fs.js";
5
- import { buildImportSkip, emptyImportScan, ensureManagedEntryWritable, errorResult, isManagedGatewayProjection, okResult, pruneStaleManagedEntries, removeSourceEntries, setManagedEntries } from "./utils/index.js";
6
- const stringMapSchema = z.record(z.string(), z.string());
7
- const openCodeEntrySchema = z.object({
8
- type: z.string().optional(),
9
- url: z.string().min(1).optional(),
10
- headers: stringMapSchema.optional(),
11
- command: z.string().min(1).optional(),
12
- args: z.array(z.string()).optional(),
13
- env: stringMapSchema.optional(),
14
- cwd: z.string().min(1).optional(),
15
- enabled: z.boolean().optional()
16
- }).passthrough();
17
- export class OpenCodeAdapter {
18
- id = "opencode";
19
- detectConfigPath() {
20
- return path.join(os.homedir(), ".config", "opencode", "opencode.json");
21
- }
22
- supportsHttp() {
23
- return true;
24
- }
25
- scanForImports(_config, managedIndex) {
26
- const configPath = this.detectConfigPath();
27
- const result = emptyImportScan(this.id, configPath ?? undefined);
28
- if (!configPath) {
29
- return result;
30
- }
31
- const raw = readJsonFile(configPath, {});
32
- const mcp = {
33
- ...(raw.mcp ?? {})
34
- };
35
- for (const [name, rawEntry] of Object.entries(mcp)) {
36
- if (isManagedGatewayProjection(name) || managedIndex.managed[this.id]?.entries?.[name]) {
37
- continue;
38
- }
39
- const parsed = openCodeEntrySchema.safeParse(rawEntry);
40
- if (!parsed.success) {
41
- result.skipped.push(buildImportSkip(this.id, name, "Entry could not be mapped to an mcpx server.", configPath));
42
- continue;
43
- }
44
- const entry = parsed.data;
45
- if ((entry.type === undefined || entry.type === "remote" || entry.type === "http") && entry.url && !entry.command) {
46
- result.candidates.push({
47
- clientId: this.id,
48
- configPath,
49
- sourceEntryName: name,
50
- serverName: name,
51
- spec: {
52
- transport: "http",
53
- url: entry.url,
54
- headers: entry.headers,
55
- enabled: entry.enabled !== false
56
- }
57
- });
58
- continue;
59
- }
60
- if ((entry.type === undefined || entry.type === "stdio") && entry.command && !entry.url) {
61
- result.candidates.push({
62
- clientId: this.id,
63
- configPath,
64
- sourceEntryName: name,
65
- serverName: name,
66
- spec: {
67
- transport: "stdio",
68
- command: entry.command,
69
- args: entry.args,
70
- env: entry.env,
71
- cwd: entry.cwd,
72
- enabled: entry.enabled !== false
73
- }
74
- });
75
- continue;
76
- }
77
- result.skipped.push(buildImportSkip(this.id, name, "Entry must define exactly one transport that mcpx supports.", configPath));
78
- }
79
- return result;
80
- }
81
- syncGateway(_config, options) {
82
- const configPath = this.detectConfigPath();
83
- if (!configPath) {
84
- return errorResult(this.id, undefined, "Unable to resolve OpenCode config path.");
85
- }
86
- try {
87
- const raw = readJsonFile(configPath, {});
88
- const mcp = {
89
- ...(raw.mcp ?? {})
90
- };
91
- removeSourceEntries(mcp, options.sourceEntriesToRemove);
92
- const managedNames = options.managedEntries.map((entry) => entry.name);
93
- const serverEntries = Object.fromEntries(options.managedEntries.map((entry) => [entry.name, {
94
- type: "remote",
95
- url: entry.url,
96
- headers: entry.headers,
97
- enabled: entry.enabled
98
- }]));
99
- for (const name of managedNames) {
100
- const conflict = ensureManagedEntryWritable(options.managedIndex, this.id, name, mcp[name]);
101
- if (conflict) {
102
- return errorResult(this.id, configPath, conflict);
103
- }
104
- }
105
- pruneStaleManagedEntries(options.managedIndex, this.id, mcp, managedNames);
106
- for (const [name, entry] of Object.entries(serverEntries)) {
107
- mcp[name] = entry;
108
- }
109
- const next = {
110
- ...raw,
111
- mcp
112
- };
113
- writeJsonAtomic(configPath, next);
114
- setManagedEntries(options.managedIndex, this.id, configPath, Object.fromEntries(Object.entries(serverEntries).map(([name, entry]) => [name, JSON.stringify(entry)])));
115
- return okResult(this.id, configPath);
116
- }
117
- catch (error) {
118
- return errorResult(this.id, configPath, error.message);
119
- }
120
- }
121
- }
122
- //# sourceMappingURL=opencode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/adapters/opencode.ts"],"names":[],"mappings":"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"}
@@ -1,117 +0,0 @@
1
- import os from "node:os";
2
- import path from "node:path";
3
- import { z } from "zod";
4
- import { readJsonFile, writeJsonAtomic } from "../util/fs.js";
5
- import { buildImportSkip, emptyImportScan, ensureManagedEntryWritable, errorResult, isManagedGatewayProjection, okResult, pruneStaleManagedEntries, removeSourceEntries, setManagedEntries, syncMcpExcludedArray } from "./utils/index.js";
6
- const stringMapSchema = z.record(z.string(), z.string());
7
- const qwenEntrySchema = z.object({
8
- httpUrl: z.string().min(1).optional(),
9
- headers: stringMapSchema.optional(),
10
- command: z.string().min(1).optional(),
11
- args: z.array(z.string()).optional(),
12
- env: stringMapSchema.optional(),
13
- cwd: z.string().min(1).optional(),
14
- disabled: z.boolean().optional()
15
- }).passthrough();
16
- export class QwenAdapter {
17
- id = "qwen";
18
- detectConfigPath() {
19
- return path.join(os.homedir(), ".qwen", "settings.json");
20
- }
21
- supportsHttp() {
22
- return true;
23
- }
24
- scanForImports(_config, managedIndex) {
25
- const configPath = this.detectConfigPath();
26
- const result = emptyImportScan(this.id, configPath ?? undefined);
27
- if (!configPath) {
28
- return result;
29
- }
30
- const raw = readJsonFile(configPath, {});
31
- const excludedSet = new Set((raw.mcp?.excluded ?? []));
32
- const topLevelServers = (raw.mcpServers ?? {});
33
- for (const [name, rawEntry] of Object.entries(topLevelServers)) {
34
- if (isManagedGatewayProjection(name) || managedIndex.managed[this.id]?.entries?.[name]) {
35
- continue;
36
- }
37
- const parsed = qwenEntrySchema.safeParse(rawEntry);
38
- if (!parsed.success) {
39
- result.skipped.push(buildImportSkip(this.id, name, "Entry could not be mapped to an mcpx server.", configPath));
40
- continue;
41
- }
42
- const entry = parsed.data;
43
- if (entry.httpUrl && !entry.command) {
44
- result.candidates.push({
45
- clientId: this.id,
46
- configPath,
47
- sourceEntryName: name,
48
- serverName: name,
49
- spec: {
50
- transport: "http",
51
- url: entry.httpUrl,
52
- headers: entry.headers,
53
- enabled: !(entry.disabled === true || excludedSet.has(name))
54
- }
55
- });
56
- continue;
57
- }
58
- if (entry.command && !entry.httpUrl) {
59
- result.candidates.push({
60
- clientId: this.id,
61
- configPath,
62
- sourceEntryName: name,
63
- serverName: name,
64
- spec: {
65
- transport: "stdio",
66
- command: entry.command,
67
- args: entry.args,
68
- env: entry.env,
69
- cwd: entry.cwd,
70
- enabled: !(entry.disabled === true || excludedSet.has(name))
71
- }
72
- });
73
- continue;
74
- }
75
- result.skipped.push(buildImportSkip(this.id, name, "Entry must define exactly one transport that mcpx supports.", configPath));
76
- }
77
- return result;
78
- }
79
- syncGateway(_config, options) {
80
- const configPath = this.detectConfigPath();
81
- if (!configPath) {
82
- return errorResult(this.id, undefined, "Unable to resolve Qwen config path.");
83
- }
84
- try {
85
- const raw = readJsonFile(configPath, {});
86
- const managedNames = options.managedEntries.map((entry) => entry.name);
87
- const serverEntries = Object.fromEntries(options.managedEntries.map((entry) => [entry.name, {
88
- httpUrl: entry.url,
89
- headers: entry.headers
90
- }]));
91
- const topLevelServers = (raw.mcpServers ?? {});
92
- removeSourceEntries(topLevelServers, options.sourceEntriesToRemove);
93
- for (const name of managedNames) {
94
- const topLevelConflict = ensureManagedEntryWritable(options.managedIndex, this.id, name, topLevelServers[name]);
95
- if (topLevelConflict) {
96
- return errorResult(this.id, configPath, topLevelConflict);
97
- }
98
- }
99
- pruneStaleManagedEntries(options.managedIndex, this.id, topLevelServers, managedNames);
100
- for (const [name, entry] of Object.entries(serverEntries)) {
101
- topLevelServers[name] = entry;
102
- }
103
- raw.mcpServers = topLevelServers;
104
- syncMcpExcludedArray(raw, managedNames, options.managedEntries);
105
- writeJsonAtomic(configPath, raw);
106
- setManagedEntries(options.managedIndex, this.id, configPath, Object.fromEntries(options.managedEntries.map((entry) => [
107
- entry.name,
108
- JSON.stringify({ httpUrl: entry.url, headers: entry.headers, enabled: entry.enabled })
109
- ])));
110
- return okResult(this.id, configPath);
111
- }
112
- catch (error) {
113
- return errorResult(this.id, configPath, error.message);
114
- }
115
- }
116
- }
117
- //# sourceMappingURL=qwen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"qwen.js","sourceRoot":"","sources":["../../src/adapters/qwen.ts"],"names":[],"mappings":"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"}
@@ -1,144 +0,0 @@
1
- import { sha256 } from "../../util/fs.js";
2
- export function getManagedEntryNames(managedIndex, clientId) {
3
- return Object.keys(managedIndex.managed[clientId]?.entries ?? {});
4
- }
5
- export function isManagedEntry(managedIndex, clientId, entryName) {
6
- return Boolean(managedIndex.managed[clientId]?.entries?.[entryName]);
7
- }
8
- export function pruneStaleManagedEntries(managedIndex, clientId, servers, keepEntryNames) {
9
- const keep = new Set(keepEntryNames);
10
- const managedNames = getManagedEntryNames(managedIndex, clientId);
11
- for (const name of managedNames) {
12
- if (!keep.has(name)) {
13
- delete servers[name];
14
- }
15
- }
16
- }
17
- export function ensureManagedEntryWritable(managedIndex, clientId, entryName, existingValue) {
18
- if (existingValue === undefined || existingValue === null) {
19
- return null;
20
- }
21
- if (isManagedEntry(managedIndex, clientId, entryName)) {
22
- return null;
23
- }
24
- return `Cannot sync managed entry \"${entryName}\" because an unmanaged entry already exists.`;
25
- }
26
- export function setManagedEntries(managedIndex, clientId, configPath, entries) {
27
- if (!managedIndex.managed[clientId]) {
28
- managedIndex.managed[clientId] = {
29
- configPath,
30
- entries: {}
31
- };
32
- }
33
- managedIndex.managed[clientId].configPath = configPath;
34
- managedIndex.managed[clientId].entries = Object.fromEntries(Object.entries(entries).map(([entryName, serializedEntry]) => [entryName, {
35
- fingerprint: sha256(serializedEntry),
36
- lastSyncedAt: new Date().toISOString()
37
- }]));
38
- }
39
- export function okResult(clientId, configPath, message) {
40
- return {
41
- clientId,
42
- status: "SYNCED",
43
- configPath,
44
- message
45
- };
46
- }
47
- export function unsupportedResult(clientId, message) {
48
- return {
49
- clientId,
50
- status: "UNSUPPORTED_HTTP",
51
- message
52
- };
53
- }
54
- export function errorResult(clientId, configPath, message) {
55
- return {
56
- clientId,
57
- status: "ERROR",
58
- configPath,
59
- message
60
- };
61
- }
62
- export function skippedResult(clientId, message) {
63
- return {
64
- clientId,
65
- status: "SKIPPED",
66
- message
67
- };
68
- }
69
- export function managedGatewayEntryName(serverName) {
70
- return `${serverName} (mcpx)`;
71
- }
72
- export function isManagedGatewayProjection(entryName) {
73
- return entryName.endsWith(" (mcpx)");
74
- }
75
- function sortRecord(record) {
76
- if (!record || Object.keys(record).length === 0) {
77
- return undefined;
78
- }
79
- return Object.fromEntries(Object.entries(record)
80
- .sort(([left], [right]) => left.localeCompare(right)));
81
- }
82
- export function normalizeServerSpec(spec) {
83
- if (spec.transport === "http") {
84
- return {
85
- transport: "http",
86
- url: spec.url,
87
- headers: sortRecord(spec.headers)
88
- };
89
- }
90
- return {
91
- transport: "stdio",
92
- command: spec.command,
93
- args: spec.args && spec.args.length > 0 ? [...spec.args] : undefined,
94
- env: sortRecord(spec.env),
95
- cwd: spec.cwd
96
- };
97
- }
98
- export function serializeServerSpec(spec) {
99
- return JSON.stringify(normalizeServerSpec(spec));
100
- }
101
- export function serverSpecsEqual(left, right) {
102
- return serializeServerSpec(left) === serializeServerSpec(right);
103
- }
104
- export function emptyImportScan(clientId, configPath) {
105
- return {
106
- clientId,
107
- configPath,
108
- candidates: [],
109
- skipped: []
110
- };
111
- }
112
- export function buildImportSkip(clientId, sourceEntryName, reason, configPath, serverName = sourceEntryName) {
113
- return {
114
- clientId,
115
- configPath,
116
- sourceEntryName,
117
- serverName,
118
- reason
119
- };
120
- }
121
- export function removeSourceEntries(entries, names) {
122
- for (const name of names ?? []) {
123
- delete entries[name];
124
- }
125
- }
126
- export function syncDisabledMcpServersArray(raw, managedNames, managedEntries) {
127
- const existingDisabled = (raw.disabledMcpServers ?? [])
128
- .filter((name) => !managedNames.includes(name));
129
- const disabledManaged = managedEntries
130
- .filter((entry) => !entry.enabled)
131
- .map((entry) => entry.name);
132
- raw.disabledMcpServers = [...existingDisabled, ...disabledManaged];
133
- }
134
- export function syncMcpExcludedArray(raw, managedNames, managedEntries) {
135
- const mcp = (raw.mcp ?? {});
136
- const existingExcluded = (mcp.excluded ?? [])
137
- .filter((name) => !managedNames.includes(name));
138
- const disabledManaged = managedEntries
139
- .filter((entry) => !entry.enabled)
140
- .map((entry) => entry.name);
141
- mcp.excluded = [...existingExcluded, ...disabledManaged];
142
- raw.mcp = mcp;
143
- }
144
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/utils/index.ts"],"names":[],"mappings":"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"}