sync-agents-settings 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +121 -22
- package/commands/report-schema.md +25 -0
- package/commands/sync-diff.md +5 -1
- package/commands/sync-doctor.md +43 -0
- package/commands/sync-instructions.md +6 -2
- package/commands/sync-reconcile.md +41 -0
- package/commands/sync-validate.md +42 -0
- package/commands/sync.md +6 -2
- package/dist/backup.d.ts +1 -1
- package/dist/backup.js +4 -1
- package/dist/backup.js.map +1 -1
- package/dist/cli.js +541 -54
- package/dist/cli.js.map +1 -1
- package/dist/diff.d.ts +6 -0
- package/dist/diff.js +7 -0
- package/dist/diff.js.map +1 -0
- package/dist/doctor.d.ts +23 -0
- package/dist/doctor.js +140 -0
- package/dist/doctor.js.map +1 -0
- package/dist/fix.d.ts +19 -0
- package/dist/fix.js +71 -0
- package/dist/fix.js.map +1 -0
- package/dist/instructions.d.ts +8 -1
- package/dist/instructions.js +370 -11
- package/dist/instructions.js.map +1 -1
- package/dist/oauth.d.ts +2 -0
- package/dist/oauth.js +7 -0
- package/dist/oauth.js.map +1 -0
- package/dist/paths.d.ts +4 -0
- package/dist/paths.js +5 -0
- package/dist/paths.js.map +1 -1
- package/dist/reconcile.d.ts +27 -0
- package/dist/reconcile.js +122 -0
- package/dist/reconcile.js.map +1 -0
- package/dist/report-parser.d.ts +81 -0
- package/dist/report-parser.js +129 -0
- package/dist/report-parser.js.map +1 -0
- package/dist/report-schema-renderer.d.ts +2 -0
- package/dist/report-schema-renderer.js +129 -0
- package/dist/report-schema-renderer.js.map +1 -0
- package/dist/report-schema-sync.d.ts +9 -0
- package/dist/report-schema-sync.js +28 -0
- package/dist/report-schema-sync.js.map +1 -0
- package/dist/report.d.ts +47 -0
- package/dist/report.js +55 -0
- package/dist/report.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/dist/validation.d.ts +18 -0
- package/dist/validation.js +62 -0
- package/dist/validation.js.map +1 -0
- package/dist/writers/codex.js +12 -2
- package/dist/writers/codex.js.map +1 -1
- package/dist/writers/kimi.d.ts +7 -0
- package/dist/writers/kimi.js +25 -0
- package/dist/writers/kimi.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { isOAuthOnlyServer } from "./oauth.js";
|
|
2
|
+
export function validateServersForTargets(servers, targets, options = {}) {
|
|
3
|
+
const issues = [];
|
|
4
|
+
const filtered = options.skipOAuth
|
|
5
|
+
? servers.filter((server) => !isOAuthOnlyServer(server))
|
|
6
|
+
: servers;
|
|
7
|
+
for (const target of targets) {
|
|
8
|
+
for (const server of filtered) {
|
|
9
|
+
if (isOAuthOnlyServer(server)) {
|
|
10
|
+
issues.push({
|
|
11
|
+
target,
|
|
12
|
+
server: server.name,
|
|
13
|
+
severity: "warning",
|
|
14
|
+
code: "OAUTH_MANUAL_SETUP_REQUIRED",
|
|
15
|
+
message: `${server.name} is OAuth-only and requires manual setup on ${target}.`,
|
|
16
|
+
});
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
if (server.transport === "stdio" && !hasText(server.command)) {
|
|
20
|
+
issues.push({
|
|
21
|
+
target,
|
|
22
|
+
server: server.name,
|
|
23
|
+
severity: "error",
|
|
24
|
+
code: "INVALID_STDIO_COMMAND_REQUIRED",
|
|
25
|
+
message: `${server.name} uses stdio transport but has no command.`,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
if ((server.transport === "http" || server.transport === "sse") && !hasText(server.url)) {
|
|
29
|
+
issues.push({
|
|
30
|
+
target,
|
|
31
|
+
server: server.name,
|
|
32
|
+
severity: "error",
|
|
33
|
+
code: "INVALID_REMOTE_URL_REQUIRED",
|
|
34
|
+
message: `${server.name} uses ${server.transport} transport but has no url.`,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
if (target === "codex" &&
|
|
38
|
+
(server.transport === "http" || server.transport === "sse") &&
|
|
39
|
+
hasUnsupportedCodexHeaders(server.headers)) {
|
|
40
|
+
issues.push({
|
|
41
|
+
target,
|
|
42
|
+
server: server.name,
|
|
43
|
+
severity: "warning",
|
|
44
|
+
code: "CODEX_UNSUPPORTED_HEADERS",
|
|
45
|
+
message: `${server.name} has headers not supported by Codex (only Authorization is mapped).`,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const errorCount = issues.filter((issue) => issue.severity === "error").length;
|
|
51
|
+
const warningCount = issues.length - errorCount;
|
|
52
|
+
return { issues, errorCount, warningCount };
|
|
53
|
+
}
|
|
54
|
+
function hasUnsupportedCodexHeaders(headers) {
|
|
55
|
+
if (!headers)
|
|
56
|
+
return false;
|
|
57
|
+
return Object.keys(headers).some((key) => key.toLowerCase() !== "authorization");
|
|
58
|
+
}
|
|
59
|
+
function hasText(value) {
|
|
60
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
|
package/dist/writers/codex.js
CHANGED
|
@@ -75,8 +75,8 @@ function toCodexServer(server) {
|
|
|
75
75
|
url: expandEnvVars(server.url),
|
|
76
76
|
};
|
|
77
77
|
// Extract bearer token env var from Authorization header
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
const auth = getAuthorizationHeaderValue(server.headers);
|
|
79
|
+
if (auth) {
|
|
80
80
|
const envMatch = auth.match(/\$\{?(\w+)\}?/);
|
|
81
81
|
if (envMatch?.[1]) {
|
|
82
82
|
result.bearer_token_env_var = envMatch[1];
|
|
@@ -86,4 +86,14 @@ function toCodexServer(server) {
|
|
|
86
86
|
}
|
|
87
87
|
return null;
|
|
88
88
|
}
|
|
89
|
+
function getAuthorizationHeaderValue(headers) {
|
|
90
|
+
if (!headers)
|
|
91
|
+
return undefined;
|
|
92
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
93
|
+
if (key.toLowerCase() === "authorization") {
|
|
94
|
+
return value;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
89
99
|
//# sourceMappingURL=codex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/writers/codex.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/writers/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { UnifiedMcpServer } from "../types.js";
|
|
2
|
+
export declare function resolveKimiMcpConfigPath(kimiHome?: string): string;
|
|
3
|
+
export declare function writeToKimi(servers: UnifiedMcpServer[], dryRun: boolean, kimiHome?: string): {
|
|
4
|
+
added: string[];
|
|
5
|
+
skipped: string[];
|
|
6
|
+
configPath: string;
|
|
7
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { dirname, join, resolve } from "node:path";
|
|
4
|
+
import { writeClaudeFormat } from "./claude-format.js";
|
|
5
|
+
const DEFAULT_KIMI_HOME = join(homedir(), ".kimi");
|
|
6
|
+
export function resolveKimiMcpConfigPath(kimiHome) {
|
|
7
|
+
const dir = resolve(kimiHome ?? DEFAULT_KIMI_HOME);
|
|
8
|
+
return join(dir, "mcp.json");
|
|
9
|
+
}
|
|
10
|
+
export function writeToKimi(servers, dryRun, kimiHome) {
|
|
11
|
+
const configPath = resolveKimiMcpConfigPath(kimiHome);
|
|
12
|
+
const kimiDir = dirname(configPath);
|
|
13
|
+
if (!existsSync(kimiDir)) {
|
|
14
|
+
return {
|
|
15
|
+
added: [],
|
|
16
|
+
skipped: [
|
|
17
|
+
`all ${servers.length} server(s) (${kimiDir} does not exist, please install Kimi CLI or use --kimi-home)`,
|
|
18
|
+
],
|
|
19
|
+
configPath,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const result = writeClaudeFormat(servers, dryRun, configPath, "Kimi CLI");
|
|
23
|
+
return { ...result, configPath };
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=kimi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kimi.js","sourceRoot":"","sources":["../../src/writers/kimi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AAEnD,MAAM,UAAU,wBAAwB,CAAC,QAAiB;IACxD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,OAA2B,EAC3B,MAAe,EACf,QAAiB;IAEjB,MAAM,UAAU,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEpC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,KAAK,EAAE,EAAE;YACT,OAAO,EAAE;gBACP,OAAO,OAAO,CAAC,MAAM,eAAe,OAAO,8DAA8D;aAC1G;YACD,UAAU;SACX,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1E,OAAO,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,CAAC;AACnC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sync-agents-settings",
|
|
3
3
|
"packageManager": "pnpm@10.32.1",
|
|
4
|
-
"version": "0.
|
|
5
|
-
"description": "Sync MCP server configurations and instruction files from Claude Code to Gemini CLI, Codex CLI, OpenCode, Kiro CLI, and
|
|
4
|
+
"version": "0.4.0",
|
|
5
|
+
"description": "Sync MCP server configurations and instruction files from Claude Code to Gemini CLI, Codex CLI, OpenCode, Kiro CLI, Cursor, and Kimi CLI",
|
|
6
6
|
"main": "dist/cli.js",
|
|
7
7
|
"bin": {
|
|
8
8
|
"sync-agents-settings": "bin/sync-agents.cjs",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"opencode",
|
|
41
41
|
"kiro",
|
|
42
42
|
"cursor",
|
|
43
|
+
"kimi",
|
|
43
44
|
"sync",
|
|
44
45
|
"ai-agent",
|
|
45
46
|
"mcp-servers",
|