UNPKG

aicm

Version:

A TypeScript CLI tool for managing AI IDE rules across different projects and teams

50 lines (49 loc) 2.46 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.initCommand = initCommand; const fs_extra_1 = __importDefault(require("fs-extra")); const path_1 = __importDefault(require("path")); const chalk_1 = __importDefault(require("chalk")); const defaultConfig = { rootDir: "./", targets: ["cursor"], }; function initCommand() { const configPath = path_1.default.join(process.cwd(), "aicm.json"); if (fs_extra_1.default.existsSync(configPath)) { console.log(chalk_1.default.yellow("Configuration file already exists!")); return; } try { // Create standard directory structure const dirs = ["rules", "commands", "assets", "hooks"]; for (const dir of dirs) { const dirPath = path_1.default.join(process.cwd(), dir); if (!fs_extra_1.default.existsSync(dirPath)) { fs_extra_1.default.mkdirSync(dirPath, { recursive: true }); } } // Create placeholder file in rules directory const rulesReadmePath = path_1.default.join(process.cwd(), "rules", ".gitkeep"); if (!fs_extra_1.default.existsSync(rulesReadmePath)) { fs_extra_1.default.writeFileSync(rulesReadmePath, "# Place your .mdc rule files here\n"); } fs_extra_1.default.writeJsonSync(configPath, defaultConfig, { spaces: 2 }); console.log(`Configuration file location: ${chalk_1.default.blue(configPath)}`); console.log(`\nCreated directory structure:`); console.log(` - ${chalk_1.default.blue("rules/")} for rule files (.mdc)`); console.log(` - ${chalk_1.default.blue("commands/")} for command files (.md)`); console.log(` - ${chalk_1.default.blue("assets/")} for auxiliary files`); console.log(` - ${chalk_1.default.blue("hooks/")} for hook scripts`); console.log(`\nNext steps:`); console.log(` 1. Add your rule files to ${chalk_1.default.blue("rules/")} directory`); console.log(` 2. Edit ${chalk_1.default.blue("aicm.json")} to configure presets if needed`); console.log(` 3. Run ${chalk_1.default.blue("npx aicm install")} to install rules & mcps`); } catch (error) { console.error(chalk_1.default.red("Error creating configuration file:"), error); } }