sync-agents-settings 0.4.0 → 0.4.2
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/marketplace.json +31 -0
- package/.claude-plugin/plugin.json +2 -2
- package/README.md +81 -32
- package/dist/backup.d.ts +1 -1
- package/dist/backup.js +7 -3
- package/dist/backup.js.map +1 -1
- package/dist/cli.js +51 -10
- package/dist/cli.js.map +1 -1
- package/dist/doctor.d.ts +1 -0
- package/dist/doctor.js +41 -29
- package/dist/doctor.js.map +1 -1
- package/dist/fix.d.ts +1 -0
- package/dist/fix.js +3 -0
- package/dist/fix.js.map +1 -1
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.js +14 -0
- package/dist/instructions.js.map +1 -1
- package/dist/paths.d.ts +3 -0
- package/dist/paths.js +4 -0
- package/dist/paths.js.map +1 -1
- package/dist/reconcile.d.ts +1 -0
- package/dist/reconcile.js +11 -3
- package/dist/reconcile.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/writers/vibe.d.ts +7 -0
- package/dist/writers/vibe.js +87 -0
- package/dist/writers/vibe.js.map +1 -0
- package/package.json +4 -2
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, existsSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { join, dirname, resolve } from "node:path";
|
|
4
|
+
import TOML from "@iarna/toml";
|
|
5
|
+
import { expandEnvVars } from "../env.js";
|
|
6
|
+
const DEFAULT_VIBE_HOME = join(homedir(), ".vibe");
|
|
7
|
+
export function resolveVibeConfigPath(vibeHome) {
|
|
8
|
+
const dir = resolve(vibeHome ?? DEFAULT_VIBE_HOME);
|
|
9
|
+
return join(dir, "config.toml");
|
|
10
|
+
}
|
|
11
|
+
export function writeToVibe(servers, dryRun, vibeHome) {
|
|
12
|
+
const added = [];
|
|
13
|
+
const skipped = [];
|
|
14
|
+
const configPath = resolveVibeConfigPath(vibeHome);
|
|
15
|
+
const vibeDir = dirname(configPath);
|
|
16
|
+
if (!existsSync(vibeDir)) {
|
|
17
|
+
return {
|
|
18
|
+
added: [],
|
|
19
|
+
skipped: [
|
|
20
|
+
`all ${servers.length} server(s) (${vibeDir} does not exist, please install Vibe CLI or use --vibe-home)`,
|
|
21
|
+
],
|
|
22
|
+
configPath,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
let config = {};
|
|
26
|
+
if (existsSync(configPath)) {
|
|
27
|
+
const raw = readFileSync(configPath, "utf-8");
|
|
28
|
+
if (raw.trim()) {
|
|
29
|
+
config = TOML.parse(raw);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (!config.mcp_servers || !Array.isArray(config.mcp_servers)) {
|
|
33
|
+
config.mcp_servers = [];
|
|
34
|
+
}
|
|
35
|
+
const existingNames = new Set(config.mcp_servers.map((s) => s.name));
|
|
36
|
+
for (const server of servers) {
|
|
37
|
+
if (server.oauth && !server.command && !server.url) {
|
|
38
|
+
skipped.push(`${server.name} (requires manual OAuth)`);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (existingNames.has(server.name)) {
|
|
42
|
+
skipped.push(`${server.name} (already exists)`);
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const vibeServer = toVibeServer(server);
|
|
46
|
+
if (!vibeServer) {
|
|
47
|
+
skipped.push(`${server.name} (cannot convert)`);
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
config.mcp_servers.push(vibeServer);
|
|
51
|
+
added.push(server.name);
|
|
52
|
+
}
|
|
53
|
+
if (!dryRun && added.length > 0) {
|
|
54
|
+
writeFileSync(configPath, TOML.stringify(config));
|
|
55
|
+
}
|
|
56
|
+
return { added, skipped, configPath };
|
|
57
|
+
}
|
|
58
|
+
function toVibeServer(server) {
|
|
59
|
+
if (server.transport === "stdio" && server.command) {
|
|
60
|
+
const result = {
|
|
61
|
+
name: server.name,
|
|
62
|
+
transport: "stdio",
|
|
63
|
+
command: server.command,
|
|
64
|
+
};
|
|
65
|
+
if (server.args)
|
|
66
|
+
result.args = server.args;
|
|
67
|
+
if (server.env)
|
|
68
|
+
result.env = server.env;
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
if (server.transport === "http" && server.url) {
|
|
72
|
+
return {
|
|
73
|
+
name: server.name,
|
|
74
|
+
transport: "streamable-http",
|
|
75
|
+
url: expandEnvVars(server.url),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
if (server.transport === "sse" && server.url) {
|
|
79
|
+
return {
|
|
80
|
+
name: server.name,
|
|
81
|
+
transport: "http",
|
|
82
|
+
url: expandEnvVars(server.url),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=vibe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vibe.js","sourceRoot":"","sources":["../../src/writers/vibe.ts"],"names":[],"mappings":"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"}
|
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.4.
|
|
5
|
-
"description": "Sync MCP server configurations and instruction files from Claude Code to Gemini CLI, Codex CLI, OpenCode, Kiro CLI, Cursor, and
|
|
4
|
+
"version": "0.4.2",
|
|
5
|
+
"description": "Sync MCP server configurations and instruction files from Claude Code to Gemini CLI, Codex CLI, OpenCode, Kiro CLI, Cursor, Kimi CLI, and Vibe CLI",
|
|
6
6
|
"main": "dist/cli.js",
|
|
7
7
|
"bin": {
|
|
8
8
|
"sync-agents-settings": "bin/sync-agents.cjs",
|
|
@@ -41,6 +41,8 @@
|
|
|
41
41
|
"kiro",
|
|
42
42
|
"cursor",
|
|
43
43
|
"kimi",
|
|
44
|
+
"vibe",
|
|
45
|
+
"mistral",
|
|
44
46
|
"sync",
|
|
45
47
|
"ai-agent",
|
|
46
48
|
"mcp-servers",
|