import fs from "node:fs"; import path from "node:path"; import { fileURLToPath } from "node:url"; export type BuildCopyContext = { prefix: string; projectRoot: string; verbose: boolean; }; export function resolveBuildCopyContext(importMetaUrl: string): BuildCopyContext { const filePath = fileURLToPath(importMetaUrl); return { prefix: `[${path.basename(filePath, path.extname(filePath))}]`, projectRoot: path.resolve(path.dirname(filePath), ".."), verbose: process.env.OPENCLAW_BUILD_VERBOSE === "1", }; } export function ensureDirectory(dirPath: string): void { if (!fs.existsSync(dirPath)) { fs.mkdirSync(dirPath, { recursive: true }); } } export function logVerboseCopy(context: BuildCopyContext, message: string): void { if (context.verbose) { console.log(`${context.prefix} ${message}`); } }