class

Smith::Tools::PlanApprover

Inherits Smith::Tools::Approver < Reference < Object

Plan mode. Refuses every mutating tool without asking — the point of plan mode is that nothing changes until the user has seen a plan, so there is nothing to prompt about.

bash is blocked wholesale rather than only for writing commands: telling a reading shell command from a writing one is not reliably decidable (see the caveats on AllowList below).

Instance methods

approve?(tool : Tool, call : CallRequest) : Bool
Source
denial_message(tool : Tool, call : CallRequest) : String

Shown to the LLM as the tool result when a call is refused, so the model can see the blockage in the transcript and choose another route.

Source