Bounded host-command boundary for local Tool execution (ADR 0027).
This process is deliberately smaller than a product CommandBroker: it only
accounts for external process capacity, bounded queueing, and read-only runtime
snapshots. Tool lifecycle, permissions, and canonical tool_call/tool_result
Events remain owned by Pixir.Tools.Executor.
Summary
Functions
Application child spec.
Normalize user/app config into command-boundary limits.
Return a read-only snapshot of host-command pressure.
Start a command boundary. Omitting :name starts the application singleton.
Acquire a host-command slot, run fun, and release the slot in all normal
return/raise/throw/exit paths.
Types
@type limits() :: %{ max_concurrent: pos_integer(), queue_limit: non_neg_integer(), queue_timeout_ms: non_neg_integer() }
Functions
Application child spec.
Normalize user/app config into command-boundary limits.
Return a read-only snapshot of host-command pressure.
Start a command boundary. Omitting :name starts the application singleton.
@spec with_slot(String.t(), keyword(), (lease() -> term()) | (-> term())) :: term() | {:error, map()}
Acquire a host-command slot, run fun, and release the slot in all normal
return/raise/throw/exit paths.