"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPromptUpdateCommand = createPromptUpdateCommand;
const runtime_contract_1 = require("../../../lib/runtime/runtime-contract");
const metadata_update_operation_1 = require("../metadata-update-operation");
async function createPromptUpdateCommand() {
    const { Command } = await import("commander");
    const command = new Command("update");
    command
        .description("Apply helper-backed metadata field updates to an existing user-layer prompt file.")
        .requiredOption("--prompt <path>", "Repository-relative prompt path to update.")
        .option("--field <key=value>", "Direct intended metadata update. Repeat for multiple fields.", collectFieldAssignment, [])
        .action((_, commandInstance) => {
        const repositoryContext = (0, runtime_contract_1.createRepositoryContext)((0, runtime_contract_1.detectRepositoryRoot)(), false);
        (0, metadata_update_operation_1.executeMetadataUpdateOperation)({
            commandName: "prompt update",
            write: true,
            commandInstance,
            repositoryRoot: repositoryContext.root,
            detectionSource: repositoryContext.detectionSource,
            artifactPathOption: "prompt",
            expectedFamilies: ["prompt"]
        });
    });
    return command;
}
function collectFieldAssignment(value, previous) {
    previous.push(value);
    return previous;
}
