UNPKG

tdd-guard

Version:

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

42 lines (41 loc) 1.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClaudeCli = void 0; const child_process_1 = require("child_process"); const path_1 = require("path"); const fs_1 = require("fs"); const Config_1 = require("../../config/Config"); class ClaudeCli { config; constructor(config) { this.config = config ?? new Config_1.Config(); } async ask(prompt) { const claudeBinary = this.config.useSystemClaude ? 'claude' : `${process.env.HOME}/.claude/local/claude`; const args = [ '-', '--output-format', 'json', '--max-turns', '5', '--model', 'sonnet', ]; const claudeDir = (0, path_1.join)(process.cwd(), '.claude'); if (!(0, fs_1.existsSync)(claudeDir)) { (0, fs_1.mkdirSync)(claudeDir, { recursive: true }); } const output = (0, child_process_1.execFileSync)(claudeBinary, args, { encoding: 'utf-8', timeout: 60000, input: prompt, cwd: claudeDir, }); // Parse the Claude CLI response and extract the result field const response = JSON.parse(output); return response.result; } } exports.ClaudeCli = ClaudeCli;