rulesync
Version:
Unified AI rules management CLI tool that generates configuration files for various AI development tools
91 lines (88 loc) • 2.59 kB
JavaScript
import {
shouldIncludeServer
} from "./chunk-VI6SBYFB.js";
// src/generators/mcp/junie.ts
function generateJunieMcp(config) {
const junieConfig = {
mcpServers: {}
};
for (const [serverName, server] of Object.entries(config.mcpServers)) {
if (!shouldIncludeServer(server, "junie")) continue;
const junieServer = {
name: serverName
};
if (server.command) {
junieServer.command = server.command;
if (server.args) junieServer.args = server.args;
} else if (server.url || server.httpUrl) {
if (server.httpUrl) {
junieServer.httpUrl = server.httpUrl;
} else if (server.url) {
junieServer.url = server.url;
}
}
if (server.env) {
junieServer.env = server.env;
}
if (server.cwd) {
junieServer.workingDirectory = server.cwd;
}
if (server.timeout !== void 0) {
junieServer.timeout = server.timeout;
}
if (server.trust !== void 0) {
junieServer.trust = server.trust;
}
if (server.transport) {
if (String(server.transport) === "streamable-http") {
junieServer.transport = "http";
} else if (server.transport === "stdio" || server.transport === "http" || server.transport === "sse") {
junieServer.transport = server.transport;
}
} else if (server.command) {
junieServer.transport = "stdio";
}
junieConfig.mcpServers[serverName] = junieServer;
}
return JSON.stringify(junieConfig, null, 2);
}
function generateJunieMcpConfiguration(mcpServers, baseDir = "") {
const filepath = baseDir ? `${baseDir}/.junie/mcp-config.json` : ".junie/mcp-config.json";
const config = {
mcpServers: {}
};
for (const [serverName, server] of Object.entries(mcpServers)) {
if (!shouldIncludeServer(server, "junie")) {
continue;
}
const { targets: _, transport, cwd, ...serverConfig } = server;
const junieServer = {
...serverConfig,
name: serverName
};
if (cwd) {
junieServer.workingDirectory = cwd;
}
if (transport) {
if (String(transport) === "streamable-http") {
junieServer.transport = "http";
} else if (transport === "stdio" || transport === "http" || transport === "sse") {
junieServer.transport = transport;
}
} else if (serverConfig.command) {
junieServer.transport = "stdio";
}
config.mcpServers[serverName] = junieServer;
}
return [
{
filepath,
content: `${JSON.stringify(config, null, 2)}
`
}
];
}
export {
generateJunieMcp,
generateJunieMcpConfiguration
};