tdd-guard
Version:
Automated Test-Driven Development enforcement for Claude Code
55 lines (54 loc) • 1.71 kB
JavaScript
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;
;