UNPKG

@reliverse/rse-sdk

Version:

@reliverse/rse-sdk allows you to create new plugins for @reliverse/rse CLI, interact with reliverse.org, and even extend your own CLI functionality (you may also try @reliverse/dler-sdk for this case).

58 lines (57 loc) 1.61 kB
import path from "@reliverse/pathkit"; import { ensuredir } from "@reliverse/relifso"; import { defineCommand } from "@reliverse/rempts"; import os from "os"; import { showRulesMenu, handleDirectRules } from "./add-rule-impl.js"; export default defineCommand({ meta: { name: "rule", description: "Download and manage AI IDE rules" }, args: { dev: { type: "boolean", description: "Run in development mode", required: false, default: false }, source: { type: "string", description: "Source of the rules | Accepted: `official`, `community`, `prompt`", default: "prompt" }, get: { type: "string", // TODO: support array description: "Specify rule files by name or pass `all` to install everything without prompt", required: false } }, async run({ args }) { const { dev: isDev, source, get } = args; const effectiveGet = get ? [get] : []; if (source !== "prompt" && source !== "official" && source !== "community") { throw new Error( "Invalid source. Accepted values: `prompt`, `official`, `community`" ); } const homeDir = os.homedir(); const rulesBaseDir = path.join(homeDir, ".reliverse", "rules"); await ensuredir(rulesBaseDir); if (effectiveGet && effectiveGet.length > 0) { await handleDirectRules({ cwd: process.cwd(), isDev, source, ruleNames: effectiveGet }); } else { await showRulesMenu({ cwd: process.cwd(), isDev, source }); } process.exit(0); } });