/**
 * ============================================================
 *  src/bootstrap/workingDir.ts —— 工作目录管理
 * ------------------------------------------------------------
 *  启动时一次性捕获 process.cwd()，后续所有"操作目录"统一通过
 *  getWorkingDir() 读取，杜绝多处 process.cwd() 不一致的隐患。
 *
 *  设计选择：
 *    - 模块级 state：单进程单 cwd，不需要 AsyncLocalStorage
 *    - 锁定时机：main() 最开头，在加载 config / provider / history 之前
 *    - 环境变量覆盖 MINIMAL_AGENT_CWD：测试 / docker / 显式 cd 场景
 * ============================================================
 */
import { resolve } from 'node:path';
let _workingDir = null;
/** 首次调用锁定 cwd（解析 MINIMAL_AGENT_CWD），重复调用幂等。 */
export function initWorkingDir() {
    if (_workingDir !== null)
        return _workingDir;
    const override = process.env.MINIMAL_AGENT_CWD;
    _workingDir = resolve(override ?? process.cwd());
    return _workingDir;
}
/** 读取已锁定的工作目录；尚未 init 时退到 lazy init（主要给测试）。 */
export function getWorkingDir() {
    return _workingDir ?? initWorkingDir();
}
/** 仅供测试：重置 module-level state */
export function _resetWorkingDir() {
    _workingDir = null;
}
