{"version":3,"sources":["../../src/commands/apply.ts"],"names":["applyCommand","filePath","options","cwd","config","loadConfigOrExit","logger","coreLogger","content","absoluteFilePath","path","fs","chalk","parsedResponse","parseLLMResponse","block","processPatch"],"mappings":"4XAQO,MAAMA,CAAAA,CAAe,MAAOC,CAAAA,CAAkBC,CAAAA,CAA6B,EAAC,CAAGC,CAAAA,CAAc,QAAQ,GAAA,EAAI,GAAqB,CACjI,MAAMC,CAAAA,CAAS,MAAMC,uBAAAA,CAAiBF,CAAG,CAAA,CACzCG,aAAAA,CAAO,QAAA,CAASF,CAAAA,CAAO,KAAK,QAAQ,CAAA,CAChCA,EAAO,IAAA,CAAK,QAAA,GAAa,SACzBG,oBAAAA,CAAW,QAAA,CAAS,OAAO,CAAA,CAG/B,IAAIC,EACJ,MAAMC,CAAAA,CAAmBC,mBAAK,OAAA,CAAQP,CAAAA,CAAKF,CAAQ,CAAA,CACnD,GAAI,CAEA,GAAA,CADc,MAAMU,WAAAA,CAAG,KAAKF,CAAgB,CAAA,EAClC,aAAY,CAAG,CACrBH,cAAO,KAAA,CAAM,CAAA,iCAAA,EAAoCM,mBAAM,IAAA,CAAKH,CAAgB,CAAC,CAAA,CAAE,CAAA,CAC/E,MACJ,CACAD,CAAAA,CAAU,MAAMG,WAAAA,CAAG,QAAA,CAASF,CAAAA,CAAkB,OAAO,CAAA,CACrDH,aAAAA,CAAO,KAAK,CAAA,yBAAA,EAA4BM,kBAAAA,CAAM,KAAKH,CAAgB,CAAC,EAAE,EAC1E,CAAA,KAAgB,CACZH,aAAAA,CAAO,KAAA,CAAM,iCAAiCM,kBAAAA,CAAM,IAAA,CAAKH,CAAgB,CAAC,CAAA,YAAA,CAAc,EACxF,MACJ,CAEAH,aAAAA,CAAO,IAAA,CAAK,mCAAmC,CAAA,CAC/C,MAAMO,CAAAA,CAAiBC,8BAAAA,CAAiBN,CAAO,CAAA,CAE/C,GAAI,CAACK,CAAAA,CAAgB,CACjBP,cAAO,KAAA,CAAM,mEAAmE,EAChF,MACJ,CAQA,GANIO,CAAAA,CAAe,aAAA,EAAiBA,EAAe,aAAA,CAAc,MAAA,CAAS,CAAA,EACtEA,CAAAA,CAAe,aAAA,CAAc,OAAA,CAAQE,GAAS,CAC1CT,aAAAA,CAAO,KAAK,CAAA,EAAGM,kBAAAA,CAAM,OAAO,uBAAkB,CAAC,IAAIG,CAAAA,CAAM,MAAM,EAAE,EACrE,CAAC,EAGDF,CAAAA,CAAe,UAAA,CAAW,SAAW,CAAA,CAAG,CACxCP,aAAAA,CAAO,IAAA,CAAK,wCAAwC,CAAA,CACpD,MACJ,CAEAA,aAAAA,CAAO,QAAQ,4CAA4C,CAAA,CAC3D,MAAMU,wBAAAA,CAAaZ,CAAAA,CAAQS,CAAAA,CAAgB,CAAE,GAAA,CAAAV,CAAAA,CAAK,IAAKD,CAAAA,CAAQ,GAAI,CAAC,CAAA,CACpEI,aAAAA,CAAO,KAAKM,kBAAAA,CAAM,IAAA,CAAK,oDAAoD,CAAC,EAChF","file":"apply.cjs","sourcesContent":["import { promises as fs } from 'fs';\nimport path from 'path';\nimport { loadConfigOrExit } from '../core/config';\nimport { parseLLMResponse, logger as coreLogger } from 'relaycode-core';\nimport { processPatch } from '../core/transaction';\nimport { logger } from '../utils/logger';\nimport chalk from 'chalk';\n\nexport const applyCommand = async (filePath: string, options: { yes?: boolean } = {}, cwd: string = process.cwd()): Promise<void> => {\n    const config = await loadConfigOrExit(cwd);\n    logger.setLevel(config.core.logLevel);\n    if (config.core.logLevel === 'debug') {\n        coreLogger.setLevel('debug');\n    }\n\n    let content: string;\n    const absoluteFilePath = path.resolve(cwd, filePath);\n    try {\n        const stats = await fs.stat(absoluteFilePath);\n        if (stats.isDirectory()) {\n            logger.error(`Path is a directory, not a file: ${chalk.cyan(absoluteFilePath)}`);\n            return;\n        }\n        content = await fs.readFile(absoluteFilePath, 'utf-8');\n        logger.info(`Reading patch from file: ${chalk.cyan(absoluteFilePath)}`);\n    } catch (error) {\n        logger.error(`Failed to read patch file at '${chalk.cyan(absoluteFilePath)}'. Aborting.`);\n        return;\n    }\n\n    logger.info('Attempting to parse patch file...');\n    const parsedResponse = parseLLMResponse(content);\n\n    if (!parsedResponse) {\n        logger.error('The content of the file is not a valid relaycode patch. Aborting.');\n        return;\n    }\n\n    if (parsedResponse.ignoredBlocks && parsedResponse.ignoredBlocks.length > 0) {\n        parsedResponse.ignoredBlocks.forEach(block => {\n            logger.warn(`${chalk.yellow('⚠ Ignored block:')} ${block.reason}`);\n        });\n    }\n\n    if (parsedResponse.operations.length === 0) {\n        logger.info('No operations to apply from this file.');\n        return;\n    }\n\n    logger.success('Valid patch format detected. Processing...');\n    await processPatch(config, parsedResponse, { cwd, yes: options.yes });\n    logger.info(chalk.gray('--------------------------------------------------'));\n};"]}