"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AutoBeCompiler = void 0;
const AutoBeTypeScriptCompiler_1 = require("./AutoBeTypeScriptCompiler");
const AutoBeInterfaceCompiler_1 = require("./interface/AutoBeInterfaceCompiler");
const AutoBePrismaCompiler_1 = require("./prisma/AutoBePrismaCompiler");
const AutoBeRealizeCompiler_1 = require("./realize/AutoBeRealizeCompiler");
const AutoBeTestCompiler_1 = require("./test/AutoBeTestCompiler");
/**
 * Comprehensive compilation infrastructure for the vibe coding pipeline.
 *
 * This class provides the three-tier compiler system that transforms AST
 * structures into production-ready code across all development phases. The
 * AutoBeCompiler integrates the custom Prisma compiler, Interface compiler, and
 * official TypeScript compiler into a unified compilation infrastructure.
 *
 * The compilation system ensures 100% syntactic correctness and semantic
 * integrity throughout the automated development workflow by operating on
 * validated AST data and providing continuous validation feedback loops. This
 * enables the revolutionary "structure first, validate continuously, generate
 * deterministically" approach that guarantees generated applications work
 * correctly on the first attempt.
 *
 * For high-performance scenarios with multiple concurrent users, individual
 * compiler components can be separated into dedicated worker processes to
 * prevent blocking during computationally intensive compilation operations
 * while maintaining the same interface compatibility.
 *
 * @author Samchon
 */
class AutoBeCompiler {
    constructor(listener) {
        this.listener = listener;
        this.prisma = new AutoBePrismaCompiler_1.AutoBePrismaCompiler();
        this.interface = new AutoBeInterfaceCompiler_1.AutoBeInterfaceCompiler();
        this.typescript = new AutoBeTypeScriptCompiler_1.AutoBeTypeScriptCompiler();
        this.test = new AutoBeTestCompiler_1.AutoBeTestCompiler();
        this.realize = new AutoBeRealizeCompiler_1.AutoBeRealizeCompiler(this.listener.realize);
    }
}
exports.AutoBeCompiler = AutoBeCompiler;
//# sourceMappingURL=AutoBeCompiler.js.map