20 lines
650 B
TypeScript
20 lines
650 B
TypeScript
import { resolveExecutionPolicy, type PolicyResolverInput } from "../bootstrap/policy_resolver";
|
|
|
|
export interface PreDispatchGuardResult {
|
|
allowed: boolean;
|
|
mode: "allow" | "deny" | "audit";
|
|
reason: string;
|
|
}
|
|
|
|
/**
|
|
* Guard path executed before command dispatch to enforce canonical policy mode.
|
|
*/
|
|
export function runPreDispatchGuard(input: PolicyResolverInput): PreDispatchGuardResult {
|
|
const resolution = resolveExecutionPolicy(input);
|
|
if (resolution.mode === "deny") {
|
|
return { allowed: false, mode: resolution.mode, reason: resolution.reason };
|
|
}
|
|
|
|
return { allowed: true, mode: resolution.mode, reason: resolution.reason };
|
|
}
|