"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createTemplateCommand = createTemplateCommand;
const registration_1 = require("../registration");
const materialize_1 = require("./materialize");
const template_reconcile_1 = require("../template-reconcile");
const template_update_1 = require("../template-update");
async function createTemplateCommand() {
    const { Command } = await import("commander");
    const command = new Command("template");
    command.description("Run explicit template-family materialize/update/reconcile operations; review and validation surfaces stay separate and read-only.");
    (0, registration_1.registerCommand)(command, await (0, materialize_1.createTemplateMaterializeCommand)());
    (0, registration_1.registerCommand)(command, await (0, template_update_1.createTemplateUpdateCommand)());
    (0, registration_1.registerCommand)(command, await (0, template_reconcile_1.createTemplateReconcileCommand)());
    return command;
}
