import { satisfiesCapability } from "./capability-context"; import type { CapabilityRequirement, HousekeepingCapabilityContext, HousekeepingResult, } from "./contracts"; import { fail, ok } from "./contracts"; import { createCorrelationId } from "./correlation"; export function authorizeHousekeeping( context: HousekeepingCapabilityContext, requirement: CapabilityRequirement, ): HousekeepingResult { const correlationId = createCorrelationId(); return satisfiesCapability(context, requirement) ? ok(context, correlationId) : fail("FORBIDDEN", "errors.housekeeping.forbidden", correlationId); }