ASM.Execution.PolicyPlug (ASM v0.15.0)

Copy Markdown View Source

Enforces an allowed_tools allowlist against :tool_use events.

Enforcement depends on the lane, because a :tool_use event does not mean the same thing on every one of them.

A lane that declares :host_tools delegates tool execution to the host. Its :tool_use event is therefore a decision point before execution, and blocking there prevents the action.

A lane without it owns tool execution inside its provider process. Even when it advertises approvals, this pipeline has no host callback that can deny the call; raising on the observed event cannot provide the promised enforcement and can only kill a run. On those lanes a non-matching tool is recorded on the event and in telemetry, and the run continues.

With no :lane_capabilities option this records rather than manufacturing an enforcement guarantee. Blocking requires positive :host_tools evidence.

Summary

Functions

Whether a lane with these capabilities can prevent a tool call or only observe it.

Functions

enforcement_for(capabilities)

@spec enforcement_for([atom()]) :: :block | :record

Whether a lane with these capabilities can prevent a tool call or only observe it.