rulesync
Version:
Unified AI rules management CLI tool that generates configuration files for various AI development tools
87 lines (84 loc) • 2.51 kB
JavaScript
import {
shouldIncludeServer
} from "./chunk-VI6SBYFB.js";
// src/generators/mcp/kiro.ts
function generateKiroMcp(config) {
const kiroConfig = {
mcpServers: {}
};
for (const [serverName, server] of Object.entries(config.mcpServers)) {
if (!shouldIncludeServer(server, "kiro")) continue;
const kiroServer = {};
if (server.command) {
kiroServer.command = server.command;
if (server.args) kiroServer.args = server.args;
} else if (server.url || server.httpUrl) {
const url = server.httpUrl || server.url;
if (url) {
kiroServer.url = url;
}
if (server.httpUrl || server.transport === "http") {
kiroServer.transport = "streamable-http";
} else if (server.transport === "sse" || server.type === "sse") {
kiroServer.transport = "sse";
}
}
if (server.env) {
kiroServer.env = server.env;
}
if (server.timeout) {
kiroServer.timeout = server.timeout;
}
if (server.disabled !== void 0) {
kiroServer.disabled = server.disabled;
}
if (server.transport) {
kiroServer.transport = server.transport;
}
if (server.kiroAutoApprove) {
kiroServer.autoApprove = server.kiroAutoApprove;
}
if (server.kiroAutoBlock) {
kiroServer.autoBlock = server.kiroAutoBlock;
}
kiroConfig.mcpServers[serverName] = kiroServer;
}
return JSON.stringify(kiroConfig, null, 2);
}
function generateKiroMcpConfiguration(mcpServers, baseDir = "") {
const filepath = baseDir ? `${baseDir}/.kiro/mcp.json` : ".kiro/mcp.json";
const config = {
mcpServers: {}
};
for (const [serverName, server] of Object.entries(mcpServers)) {
if (!shouldIncludeServer(server, "kiro")) {
continue;
}
const { targets: _targets, ...serverConfig } = server;
const kiroServer = { ...serverConfig };
if (serverConfig.httpUrl !== void 0) {
kiroServer.url = serverConfig.httpUrl;
delete kiroServer.httpUrl;
}
if (serverConfig.kiroAutoApprove !== void 0) {
kiroServer.autoApprove = serverConfig.kiroAutoApprove;
delete kiroServer.kiroAutoApprove;
}
if (serverConfig.kiroAutoBlock !== void 0) {
kiroServer.autoBlock = serverConfig.kiroAutoBlock;
delete kiroServer.kiroAutoBlock;
}
config.mcpServers[serverName] = kiroServer;
}
return [
{
filepath,
content: `${JSON.stringify(config, null, 2)}
`
}
];
}
export {
generateKiroMcp,
generateKiroMcpConfiguration
};