rulesync
Version:
Unified AI rules management CLI tool that generates configuration files for various AI development tools
51 lines (48 loc) • 1.24 kB
JavaScript
// src/types/tool-targets.ts
import { z } from "zod/mini";
var ALL_TOOL_TARGETS = [
"augmentcode",
"augmentcode-legacy",
"copilot",
"cursor",
"cline",
"claudecode",
"codexcli",
"roo",
"geminicli",
"kiro",
"junie"
];
var ToolTargetSchema = z.enum(ALL_TOOL_TARGETS);
var ToolTargetsSchema = z.array(ToolTargetSchema);
var WildcardTargetSchema = z.tuple([z.literal("*")]);
var RulesyncTargetsSchema = z.union([ToolTargetsSchema, WildcardTargetSchema]);
function isToolTarget(target) {
if (!target) return false;
return ALL_TOOL_TARGETS.some((validTarget) => validTarget === target);
}
// src/utils/mcp-helpers.ts
function shouldIncludeServer(server, targetTool) {
if (!server.targets || server.targets.length === 0) {
return true;
}
const parsedTargets = RulesyncTargetsSchema.parse(server.targets);
if (parsedTargets.length === 1 && parsedTargets[0] === "*") {
return true;
}
const validatedTool = ToolTargetSchema.parse(targetTool);
for (const target of parsedTargets) {
if (target === validatedTool) {
return true;
}
}
return false;
}
export {
ALL_TOOL_TARGETS,
ToolTargetSchema,
ToolTargetsSchema,
RulesyncTargetsSchema,
isToolTarget,
shouldIncludeServer
};