UNPKG

rulesync

Version:

Unified AI rules management CLI tool that generates configuration files for various AI development tools

91 lines (88 loc) 2.59 kB
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 };