1/** Stable categories for access configuration and collaboration failures. */2export type AccessErrorCode =3 | "configuration"4 | "invalid-identity"5 | "sync-required"6 | "mutation-rejected"7 | "not-found"8 | "invalid-role";910/** Actionable failure raised by access templates and collaboration operations. */11export class AccessError extends Error {12 /** Stable error class name for diagnostics and error boundaries. */13 override readonly name = "AccessError";14 /** Creates an access error without including row contents or secret values. */15 constructor(readonly code: AccessErrorCode, message: string, options?: ErrorOptions) {16 super(message, options);17 }18}1920/** True when an error came from the lofi access surface. */21export function isAccessError(error: unknown): error is AccessError {22 return error instanceof AccessError;23}