import fss from "node:fs";
import path from "node:path";
import { userWarn } from "../engine/core/logger.js";
import { ENV } from "../engine/core/env.js";
export const command = process.argv[2];
export const args = process.argv.slice(3);
/**
 * 获取命令行参数值。支持 --flag value 和 --flag=value 两种格式。
 * [DC-7] 从各 CLI 命令文件中去重提升为唯一实现。
 */
export function getArgValue(flag) {
    // 支持 --flag=value 格式
    const eqPrefix = flag + "=";
    const eqIdx = args.findIndex((a) => a.startsWith(eqPrefix));
    if (eqIdx !== -1) {
        return args[eqIdx].slice(eqPrefix.length) || undefined;
    }
    const idx = args.indexOf(flag);
    if (idx === -1 || idx + 1 >= args.length)
        return undefined;
    const result = args[idx + 1];
    if (result.startsWith("--"))
        return undefined;
    return result;
}
/**
 * 解析项目路径。优先级: SOLOFORGE_PROJECT 环境变量 > --project-path 参数 > cwd。
 * [DC-7] 从各 CLI 命令文件中去重提升为唯一实现。
 */
export function resolveProjectPath() {
    const envPath = process.env[ENV.PROJECT];
    if (envPath) {
        try {
            const stat = fss.statSync(envPath);
            if (!stat.isDirectory()) {
                userWarn(`⚠️  SOLOFORGE_PROJECT (${envPath}) 不是目录，回退到 cwd`);
                return process.cwd();
            }
            return envPath;
        }
        catch {
            userWarn(`⚠️  SOLOFORGE_PROJECT (${envPath}) 路径不存在，回退到 cwd`);
            return process.cwd();
        }
    }
    const projectPathArg = getArgValue("--project-path");
    if (projectPathArg) {
        return path.resolve(projectPathArg);
    }
    return process.cwd();
}
//# sourceMappingURL=args.js.map