UNPKG

tdd-guard

Version:

Automated Test-Driven Development enforcement for Claude Code

55 lines (54 loc) 1.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClaudeCodeSdk = void 0; const Config_1 = require("../../config/Config"); const claude_code_1 = require("@anthropic-ai/claude-code"); const system_prompt_1 = require("../prompts/system-prompt"); class ClaudeCodeSdk { config; queryFn; constructor(config = new Config_1.Config(), queryFn = claude_code_1.query) { this.config = config; this.queryFn = queryFn; } async ask(prompt) { const queryResult = this.queryFn({ prompt, options: this.getQueryOptions(), }); for await (const message of queryResult) { if (message.type !== 'result') continue; if (message.subtype === 'success') { return message.result; } throw new Error(`Claude Code SDK error: ${message.subtype}`); } throw new Error('Claude Code SDK error: No result message received'); } getQueryOptions() { return { maxTurns: 1, customSystemPrompt: system_prompt_1.SYSTEM_PROMPT, allowedTools: [], disallowedTools: [ 'Read', 'Edit', 'MultiEdit', 'Write', 'Grep', 'Glob', 'Bash', 'WebFetch', 'WebSearch', 'Task', 'TodoWrite', ], maxThinkingTokens: 0, model: this.config.modelVersion, strictMcpConfig: true, cwd: this.config.dataDir, }; } } exports.ClaudeCodeSdk = ClaudeCodeSdk;