rulesync
Version:
Unified AI rules management CLI tool that generates configuration files for various AI development tools
112 lines (109 loc) • 3.36 kB
JavaScript
import {
shouldIncludeServer
} from "./chunk-VI6SBYFB.js";
// src/generators/mcp/augmentcode.ts
function generateAugmentcodeMcp(config) {
const augmentSettings = {
mcpServers: []
};
const shouldInclude = (server) => {
return shouldIncludeServer(server, "augmentcode");
};
for (const [serverName, server] of Object.entries(config.mcpServers)) {
if (!shouldInclude(server)) continue;
const augmentServer = {
name: serverName
};
if (server.command) {
augmentServer.command = server.command;
if (server.args) {
augmentServer.args = server.args;
}
} else if (server.url || server.httpUrl) {
const url = server.httpUrl || server.url;
if (url) {
augmentServer.url = url;
}
if (server.httpUrl || server.transport === "http") {
augmentServer.transport = "http";
} else if (server.transport === "sse") {
augmentServer.transport = "sse";
}
if (server.env) {
augmentServer.headers = server.env;
}
}
if (server.env && server.command) {
augmentServer.env = server.env;
}
if (server.timeout) {
augmentServer.timeout = server.timeout;
}
if (server.disabled !== void 0) {
augmentServer.enabled = !server.disabled;
}
if (server.networkTimeout && server.networkTimeout > 0) {
augmentServer.retries = Math.max(1, Math.floor(server.networkTimeout / 3e4));
}
if (augmentSettings.mcpServers) {
augmentSettings.mcpServers.push(augmentServer);
}
}
return JSON.stringify(augmentSettings, null, 2);
}
function generateAugmentcodeMcpConfiguration(mcpServers, baseDir = "") {
const filepath = baseDir ? `${baseDir}/.mcp.json` : ".mcp.json";
const settings = {
mcpServers: {}
};
for (const [serverName, server] of Object.entries(mcpServers)) {
if (!shouldIncludeServer(server, "augmentcode")) {
continue;
}
const { targets: _, ...serverConfig } = server;
const augmentServer = {};
if (serverConfig.command) {
augmentServer.command = serverConfig.command;
if (serverConfig.args) {
augmentServer.args = serverConfig.args;
}
if (serverConfig.env) {
augmentServer.env = serverConfig.env;
}
} else if (serverConfig.url || serverConfig.httpUrl) {
const url = serverConfig.httpUrl || serverConfig.url;
if (url) {
augmentServer.url = url;
}
if (serverConfig.httpUrl || serverConfig.transport === "http") {
augmentServer.transport = "http";
} else if (serverConfig.transport === "sse") {
augmentServer.transport = "sse";
}
if (serverConfig.env) {
augmentServer.headers = serverConfig.env;
}
}
if (serverConfig.timeout) {
augmentServer.timeout = serverConfig.timeout;
}
if (serverConfig.disabled !== void 0) {
augmentServer.enabled = !serverConfig.disabled;
}
if (serverConfig.networkTimeout && serverConfig.networkTimeout > 0) {
augmentServer.retries = Math.max(1, Math.floor(serverConfig.networkTimeout / 3e4));
}
settings.mcpServers[serverName] = augmentServer;
}
return [
{
filepath,
content: `${JSON.stringify(settings, null, 2)}
`
}
];
}
export {
generateAugmentcodeMcp,
generateAugmentcodeMcpConfiguration
};