Access
access
Positive tool scopes for nested name-based discovery and invocation.
ToolAccessDenied
check_tool_execution(name, kwargs, execute)
Revalidate all live execution guards immediately before an effect.
Source code in packages/axm/src/axm/tools/access.py
guard_tool(name, tool)
Retain execution authority around a resolved tool without changing metadata.
Legacy resolution returns the original object. A scoped handle retains its guards even if cached and subsequently invoked outside the creating block.
Source code in packages/axm/src/axm/tools/access.py
has_tool_execution_guard()
require_tool_access(name)
Recheck resolutions, including cached nodes and injected overrides.
tool_access_scope(names)
Apply an immutable allowlist; nested scopes can only narrow it.
Source code in packages/axm/src/axm/tools/access.py
tool_execution_guard(guard)
Install a neutral execution guard; inner scopes cannot remove outer guards.
Guards validate the current lease and may normalize detached keyword args. They run immediately before execution, including cached and injected tools. A transport owns its callback: the SDK does not import the transport.
Source code in packages/axm/src/axm/tools/access.py
tool_is_allowed(name)
Whether a canonical name belongs to the current tool scope.