@enforgate/policy
v0.1.0
Published
Enforgate policy engine — glob tool matching, param conditions, priority + default-deny. Evaluate tool calls to allow / deny / require_approval.
Readme
@enforgate/policy
The Enforgate policy engine — the pure, dependency-free core that decides whether an AI agent's tool call is allowed, denied, or needs human approval.
Install
npm i @enforgate/policyUsage
import { evaluate, type Policy } from "@enforgate/policy";
const policies: Policy[] = [
{
id: "p1",
name: "guard email",
priority: 10,
enabled: true,
rules: [
{ tool: "send_email", action: "require_approval" },
{ tool: "db_*", action: "allow" },
],
defaultDecision: "deny",
},
];
const verdict = evaluate(
{ serverName: "demo", toolName: "send_email", args: { to: "[email protected]" } },
policies,
);
// → { decision: "require_approval", reason: "...", policyId: "p1", ruleIndex: 0 }How it works
- Enabled policies are sorted by
priority(desc); rules run in array order; first match wins. toolis a glob (*,?) over the tool name;whereadds AND-ed conditions on args (regexmatches/notMatchesor deepequals).- If no rule matches, the policy's
defaultDecisionapplies; if no policy decides, the engine default-denies. - Invalid regexes never match (fails closed).
License
MIT
