import Foundation public enum CodexHomeScope { public static func normalizedHomePath( _ rawPath: String?, fileManager: FileManager = .default) -> String? { guard var path = rawPath?.trimmingCharacters(in: .whitespacesAndNewlines), !path.isEmpty else { return nil } if path == "~" { path = fileManager.homeDirectoryForCurrentUser.path } else if path.hasPrefix("~/") { path = fileManager.homeDirectoryForCurrentUser .appendingPathComponent(String(path.dropFirst(2)), isDirectory: true) .path } else if path.hasPrefix("~") { return nil } guard (path as NSString).isAbsolutePath else { return nil } return URL(fileURLWithPath: path, isDirectory: true).standardizedFileURL.path } public static func ambientHomeURL( env: [String: String], fileManager: FileManager = .default) -> URL { if let raw = env["CODEX_HOME"]?.trimmingCharacters(in: .whitespacesAndNewlines), !raw.isEmpty { return URL(fileURLWithPath: raw, isDirectory: true) } return fileManager.homeDirectoryForCurrentUser.appendingPathComponent(".codex", isDirectory: true) } public static func scopedEnvironment(base: [String: String], codexHome: String?) -> [String: String] { guard let codexHome, !codexHome.isEmpty else { return base } var env = base env["CODEX_HOME"] = codexHome return env } }