UNPKG

@jjdenhertog/ai-driven-development

Version:

AI-driven development workflow with learning capabilities for Claude

41 lines 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = removeHooks; const fs_extra_1 = require("fs-extra"); const node_path_1 = require("node:path"); const logger_1 = require("../logger"); function removeHooks(path) { const claudeSettingsPath = (0, node_path_1.join)(path, '.claude', 'settings.json'); // Check if settings file exists if (!(0, fs_extra_1.existsSync)(claudeSettingsPath)) return; // Read existing settings let settings = {}; try { settings = (0, fs_extra_1.readJsonSync)(claudeSettingsPath); } catch (_a) { return; } // Check if hooks exist if (!settings.hooks) { (0, logger_1.log)('No hooks found in Claude settings - nothing to remove', 'info'); return; } // List of hook types that addHooks adds const hookTypesToRemove = ['PreToolUse', 'PostToolUse', 'Notification', 'Stop']; // Remove each hook type for (const hookType of hookTypesToRemove) { if (settings.hooks[hookType]) { // eslint-disable-next-line @typescript-eslint/no-dynamic-delete delete settings.hooks[hookType]; } } // If hooks object is now empty, remove it entirely if (Object.keys(settings.hooks).length === 0) delete settings.hooks; // Write updated settings back (0, fs_extra_1.writeFileSync)(claudeSettingsPath, JSON.stringify(settings, null, 2)); (0, logger_1.log)('Removed Claude Code hooks from .claude/settings.json', 'success'); } //# sourceMappingURL=removeHooks.js.map