Files
training-software/runtime/dispatch/pre_dispatch_guard.ts
2026-05-06 11:46:24 +02:00

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 };
}