UNPKG

tdd-guard

Version:

TDD Guard enforces Test-Driven Development principles using Claude Code hooks

49 lines (48 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UserPromptHandler = void 0; const GuardManager_1 = require("../guard/GuardManager"); class UserPromptHandler { guardManager; GUARD_COMMANDS = { ON: 'tdd-guard on', OFF: 'tdd-guard off' }; constructor(guardManager) { this.guardManager = guardManager ?? new GuardManager_1.GuardManager(); } async processUserCommand(hookData) { const data = JSON.parse(hookData); // Only process UserPromptSubmit events if (data.hook_event_name !== 'UserPromptSubmit') { return undefined; } const command = data.prompt?.toLowerCase(); switch (command) { case this.GUARD_COMMANDS.ON: await this.guardManager.enable(); return this.createBlockResult('TDD Guard enabled'); case this.GUARD_COMMANDS.OFF: await this.guardManager.disable(); return this.createBlockResult('TDD Guard disabled'); default: return undefined; } } createBlockResult(message) { return { decision: undefined, reason: message, continue: false, stopReason: message }; } async getDisabledResult() { const isEnabled = await this.guardManager.isEnabled(); if (!isEnabled) { return { decision: undefined, reason: '' }; } return undefined; } } exports.UserPromptHandler = UserPromptHandler;