add confirmation if removing ALL rules profiles, and add --force flag on rules remove

This commit is contained in:
Joe Danziger
2025-05-26 22:09:45 -04:00
parent bd81d00169
commit 36e8257d08
7 changed files with 318 additions and 5 deletions

View File

@@ -68,7 +68,14 @@ import {
displayApiKeyStatus,
displayAiUsageSummary
} from './ui.js';
import { confirmProfilesRemove } from '../../src/ui/confirm.js';
import {
confirmProfilesRemove,
confirmRemoveAllRemainingProfiles
} from '../../src/ui/confirm.js';
import {
wouldRemovalLeaveNoProfiles,
getInstalledRulesProfiles
} from '../../src/utils/rules-detection.js';
import { initializeProject } from '../init.js';
import {
@@ -2730,8 +2737,16 @@ Examples:
if (action === RULES_ACTIONS.REMOVE) {
let confirmed = true;
if (!options.force) {
const ui = await import('./ui.js');
confirmed = await confirmProfilesRemove(expandedProfiles);
// Check if this removal would leave no profiles remaining
if (wouldRemovalLeaveNoProfiles(projectDir, expandedProfiles)) {
const installedProfiles = getInstalledRulesProfiles(projectDir);
confirmed = await confirmRemoveAllRemainingProfiles(
expandedProfiles,
installedProfiles
);
} else {
confirmed = await confirmProfilesRemove(expandedProfiles);
}
}
if (!confirmed) {
console.log(chalk.yellow('Aborted: No rules were removed.'));