@intellectronica/ruler
Version:
Ruler — apply the same rules to all coding agents
88 lines (87 loc) • 3.94 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.allAgents = exports.AbstractAgent = void 0;
exports.getAgentIdentifiersForCliHelp = getAgentIdentifiersForCliHelp;
const AbstractAgent_1 = require("./AbstractAgent");
Object.defineProperty(exports, "AbstractAgent", { enumerable: true, get: function () { return AbstractAgent_1.AbstractAgent; } });
const CopilotAgent_1 = require("./CopilotAgent");
const ClaudeAgent_1 = require("./ClaudeAgent");
const CodexCliAgent_1 = require("./CodexCliAgent");
const CursorAgent_1 = require("./CursorAgent");
const WindsurfAgent_1 = require("./WindsurfAgent");
const ClineAgent_1 = require("./ClineAgent");
const AiderAgent_1 = require("./AiderAgent");
const FirebaseAgent_1 = require("./FirebaseAgent");
const OpenHandsAgent_1 = require("./OpenHandsAgent");
const GeminiCliAgent_1 = require("./GeminiCliAgent");
const JulesAgent_1 = require("./JulesAgent");
const JunieAgent_1 = require("./JunieAgent");
const AugmentCodeAgent_1 = require("./AugmentCodeAgent");
const KiloCodeAgent_1 = require("./KiloCodeAgent");
const OpenCodeAgent_1 = require("./OpenCodeAgent");
const CrushAgent_1 = require("./CrushAgent");
const GooseAgent_1 = require("./GooseAgent");
const AmpAgent_1 = require("./AmpAgent");
const ZedAgent_1 = require("./ZedAgent");
const AgentsMdAgent_1 = require("./AgentsMdAgent");
const QwenCodeAgent_1 = require("./QwenCodeAgent");
const KiroAgent_1 = require("./KiroAgent");
const WarpAgent_1 = require("./WarpAgent");
const RooCodeAgent_1 = require("./RooCodeAgent");
const TraeAgent_1 = require("./TraeAgent");
const AmazonQCliAgent_1 = require("./AmazonQCliAgent");
const FirebenderAgent_1 = require("./FirebenderAgent");
const FactoryDroidAgent_1 = require("./FactoryDroidAgent");
const AntigravityAgent_1 = require("./AntigravityAgent");
const MistralVibeAgent_1 = require("./MistralVibeAgent");
const PiAgent_1 = require("./PiAgent");
const JetBrainsAiAssistantAgent_1 = require("./JetBrainsAiAssistantAgent");
exports.allAgents = [
new CopilotAgent_1.CopilotAgent(),
new ClaudeAgent_1.ClaudeAgent(),
new CodexCliAgent_1.CodexCliAgent(),
new CursorAgent_1.CursorAgent(),
new WindsurfAgent_1.WindsurfAgent(),
new ClineAgent_1.ClineAgent(),
new AiderAgent_1.AiderAgent(),
new FirebaseAgent_1.FirebaseAgent(),
new OpenHandsAgent_1.OpenHandsAgent(),
new GeminiCliAgent_1.GeminiCliAgent(),
new JulesAgent_1.JulesAgent(),
new JunieAgent_1.JunieAgent(),
new AugmentCodeAgent_1.AugmentCodeAgent(),
new KiloCodeAgent_1.KiloCodeAgent(),
new OpenCodeAgent_1.OpenCodeAgent(),
new GooseAgent_1.GooseAgent(),
new CrushAgent_1.CrushAgent(),
new AmpAgent_1.AmpAgent(),
new ZedAgent_1.ZedAgent(),
new QwenCodeAgent_1.QwenCodeAgent(),
new AgentsMdAgent_1.AgentsMdAgent(),
new KiroAgent_1.KiroAgent(),
new WarpAgent_1.WarpAgent(),
new RooCodeAgent_1.RooCodeAgent(),
new TraeAgent_1.TraeAgent(),
new AmazonQCliAgent_1.AmazonQCliAgent(),
new FirebenderAgent_1.FirebenderAgent(),
new FactoryDroidAgent_1.FactoryDroidAgent(),
new AntigravityAgent_1.AntigravityAgent(),
new MistralVibeAgent_1.MistralVibeAgent(),
new PiAgent_1.PiAgent(),
new JetBrainsAiAssistantAgent_1.JetBrainsAiAssistantAgent(),
];
/**
* Generates a comma-separated list of agent identifiers for CLI help text.
* Returns identifiers in alphabetical order, with 'agentsmd' always first.
*/
function getAgentIdentifiersForCliHelp() {
const identifiers = exports.allAgents.map((agent) => agent.getIdentifier());
const sorted = identifiers.sort();
// Ensure agentsmd is first (it should already be first alphabetically, but let's be explicit)
const agentsMdIndex = sorted.indexOf('agentsmd');
if (agentsMdIndex > 0) {
const agentsmd = sorted.splice(agentsMdIndex, 1)[0];
sorted.unshift(agentsmd);
}
return sorted.join(', ');
}