@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.
- package/dist/adapters/claude-desktop.d.ts +1 -0
- package/dist/adapters/claude-desktop.d.ts.map +1 -0
- package/dist/adapters/claude.d.ts +1 -0
- package/dist/adapters/claude.d.ts.map +1 -0
- package/dist/adapters/cline.d.ts +1 -0
- package/dist/adapters/cline.d.ts.map +1 -0
- package/dist/adapters/codex.d.ts +1 -0
- package/dist/adapters/codex.d.ts.map +1 -0
- package/dist/adapters/cursor.d.ts +1 -0
- package/dist/adapters/cursor.d.ts.map +1 -0
- package/dist/adapters/index.d.ts +1 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/kiro.d.ts +1 -0
- package/dist/adapters/kiro.d.ts.map +1 -0
- package/dist/adapters/opencode.d.ts +1 -0
- package/dist/adapters/opencode.d.ts.map +1 -0
- package/dist/adapters/qwen.d.ts +1 -0
- package/dist/adapters/qwen.d.ts.map +1 -0
- package/dist/adapters/utils/index.d.ts +1 -0
- package/dist/adapters/utils/index.d.ts.map +1 -0
- package/dist/adapters/vscode.d.ts +1 -0
- package/dist/adapters/vscode.d.ts.map +1 -0
- package/dist/cli-7rggq938.js +3292 -0
- package/dist/cli-ezvj44tr.js +3292 -0
- package/dist/cli-q8de7zb0.js +12 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1880 -1131
- package/dist/compat/claude.d.ts +1 -0
- package/dist/compat/claude.d.ts.map +1 -0
- package/dist/compat/codex.d.ts +1 -0
- package/dist/compat/codex.d.ts.map +1 -0
- package/dist/compat/index.d.ts +1 -0
- package/dist/compat/index.d.ts.map +1 -0
- package/dist/compat/qwen.d.ts +1 -0
- package/dist/compat/qwen.d.ts.map +1 -0
- package/dist/compat/unsupported.d.ts +1 -0
- package/dist/compat/unsupported.d.ts.map +1 -0
- package/dist/compat/vscode.d.ts +1 -0
- package/dist/compat/vscode.d.ts.map +1 -0
- package/dist/core/auth-probe.d.ts +1 -0
- package/dist/core/auth-probe.d.ts.map +1 -0
- package/dist/core/config.d.ts +1 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/daemon.d.ts +1 -0
- package/dist/core/daemon.d.ts.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +81 -24
- package/dist/core/managed-index.d.ts +1 -0
- package/dist/core/managed-index.d.ts.map +1 -0
- package/dist/core/paths.d.ts +2 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/registry.d.ts +1 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/secrets.d.ts +1 -0
- package/dist/core/secrets.d.ts.map +1 -0
- package/dist/core/server-auth.d.ts +1 -0
- package/dist/core/server-auth.d.ts.map +1 -0
- package/dist/core/status.d.ts +1 -0
- package/dist/core/status.d.ts.map +1 -0
- package/dist/core/sync.d.ts +1 -0
- package/dist/core/sync.d.ts.map +1 -0
- package/dist/core/update-manager.d.ts +1 -0
- package/dist/core/update-manager.d.ts.map +1 -0
- package/dist/core/update.d.ts +1 -0
- package/dist/core/update.d.ts.map +1 -0
- package/dist/gateway/server.d.ts +1 -0
- package/dist/gateway/server.d.ts.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -10
- package/dist/util/fs.d.ts +1 -0
- package/dist/util/fs.d.ts.map +1 -0
- package/dist/version.d.ts +2 -1
- package/dist/version.d.ts.map +1 -0
- package/package.json +10 -11
- package/dist/adapters/claude-desktop.js +0 -118
- package/dist/adapters/claude-desktop.js.map +0 -1
- package/dist/adapters/claude.js +0 -131
- package/dist/adapters/claude.js.map +0 -1
- package/dist/adapters/cline.js +0 -135
- package/dist/adapters/cline.js.map +0 -1
- package/dist/adapters/codex.js +0 -125
- package/dist/adapters/codex.js.map +0 -1
- package/dist/adapters/cursor.js +0 -125
- package/dist/adapters/cursor.js.map +0 -1
- package/dist/adapters/index.js +0 -23
- package/dist/adapters/index.js.map +0 -1
- package/dist/adapters/kiro.js +0 -120
- package/dist/adapters/kiro.js.map +0 -1
- package/dist/adapters/opencode.js +0 -122
- package/dist/adapters/opencode.js.map +0 -1
- package/dist/adapters/qwen.js +0 -117
- package/dist/adapters/qwen.js.map +0 -1
- package/dist/adapters/utils/index.js +0 -144
- package/dist/adapters/utils/index.js.map +0 -1
- package/dist/adapters/vscode.js +0 -125
- package/dist/adapters/vscode.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/compat/claude.js +0 -252
- package/dist/compat/claude.js.map +0 -1
- package/dist/compat/codex.js +0 -179
- package/dist/compat/codex.js.map +0 -1
- package/dist/compat/index.js +0 -108
- package/dist/compat/index.js.map +0 -1
- package/dist/compat/qwen.js +0 -316
- package/dist/compat/qwen.js.map +0 -1
- package/dist/compat/unsupported.js +0 -47
- package/dist/compat/unsupported.js.map +0 -1
- package/dist/compat/vscode.js +0 -164
- package/dist/compat/vscode.js.map +0 -1
- package/dist/core/auth-probe.js +0 -54
- package/dist/core/auth-probe.js.map +0 -1
- package/dist/core/config.js +0 -76
- package/dist/core/config.js.map +0 -1
- package/dist/core/daemon.js +0 -176
- package/dist/core/daemon.js.map +0 -1
- package/dist/core/index.js.map +0 -1
- package/dist/core/managed-index.js +0 -22
- package/dist/core/managed-index.js.map +0 -1
- package/dist/core/paths.js +0 -55
- package/dist/core/paths.js.map +0 -1
- package/dist/core/registry.js +0 -51
- package/dist/core/registry.js.map +0 -1
- package/dist/core/secrets.js +0 -108
- package/dist/core/secrets.js.map +0 -1
- package/dist/core/server-auth.js +0 -112
- package/dist/core/server-auth.js.map +0 -1
- package/dist/core/status.js +0 -65
- package/dist/core/status.js.map +0 -1
- package/dist/core/sync.js +0 -128
- package/dist/core/sync.js.map +0 -1
- package/dist/core/update-manager.js +0 -170
- package/dist/core/update-manager.js.map +0 -1
- package/dist/core/update.js +0 -111
- package/dist/core/update.js.map +0 -1
- package/dist/gateway/server.js +0 -995
- package/dist/gateway/server.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/util/fs.js +0 -34
- package/dist/util/fs.js.map +0 -1
- package/dist/version.js +0 -2
- package/dist/version.js.map +0 -1
package/dist/adapters/kiro.js
DELETED
|
@@ -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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"}
|
package/dist/adapters/qwen.js
DELETED
|
@@ -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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"}
|