tdd-guard
Version:
TDD Guard enforces Test-Driven Development principles using Claude Code hooks
42 lines (41 loc) • 1.32 kB
JavaScript
;
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;