/**
 * Nerf Error Types — Typed error hierarchy for diagnostics and crash recovery.
 *
 * All Nerf-specific errors extend NerfError, which carries a stable `code`
 * string suitable for programmatic matching. Error codes are defined as
 * constants so callers can switch on them without string-matching.
 */
// ─── Error Codes ──────────────────────────────────────────────────────────────
export const NERF_STALE_STATE = "NERF_STALE_STATE";
export const NERF_LOCK_HELD = "NERF_LOCK_HELD";
export const NERF_ARTIFACT_MISSING = "NERF_ARTIFACT_MISSING";
export const NERF_GIT_ERROR = "NERF_GIT_ERROR";
export const NERF_MERGE_CONFLICT = "NERF_MERGE_CONFLICT";
export const NERF_PARSE_ERROR = "NERF_PARSE_ERROR";
export const NERF_IO_ERROR = "NERF_IO_ERROR";
// ─── Base Error ───────────────────────────────────────────────────────────────
export class NerfError extends Error {
    code;
    constructor(code, message, options) {
        super(message, options);
        this.name = "NerfError";
        this.code = code;
    }
}
