UNPKG

rulesync

Version:

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

68 lines (65 loc) 1.91 kB
import { shouldIncludeServer } from "./chunk-VI6SBYFB.js"; // src/generators/mcp/geminicli.ts function generateGeminiCliMcp(config) { const geminiSettings = { mcpServers: {} }; for (const [serverName, server] of Object.entries(config.mcpServers)) { if (!shouldIncludeServer(server, "geminicli")) continue; const geminiServer = {}; if (server.command) { geminiServer.command = server.command; if (server.args) geminiServer.args = server.args; } else if (server.url || server.httpUrl) { if (server.httpUrl) { geminiServer.httpUrl = server.httpUrl; } else if (server.url) { geminiServer.url = server.url; } } if (server.env) { geminiServer.env = {}; for (const [key, value] of Object.entries(server.env)) { if (value.startsWith("${") && value.endsWith("}")) { geminiServer.env[key] = value; } else { geminiServer.env[key] = `\${${value}}`; } } } if (server.timeout !== void 0) { geminiServer.timeout = server.timeout; } if (server.trust !== void 0) { geminiServer.trust = server.trust; } geminiSettings.mcpServers[serverName] = geminiServer; } return JSON.stringify(geminiSettings, null, 2); } function generateGeminiCliMcpConfiguration(mcpServers, baseDir = "") { const filepath = baseDir ? `${baseDir}/.gemini/settings.json` : ".gemini/settings.json"; const config = { mcpServers: {} }; for (const [serverName, server] of Object.entries(mcpServers)) { if (!shouldIncludeServer(server, "geminicli")) { continue; } const { targets: _, ...serverConfig } = server; config.mcpServers[serverName] = { ...serverConfig }; } return [ { filepath, content: `${JSON.stringify(config, null, 2)} ` } ]; } export { generateGeminiCliMcp, generateGeminiCliMcpConfiguration };