Expand description
Deterministic tools capability.
Ports the Swift CoreToolExecutor surface: search (ripgrep via
grep-searcher + ignore), file I/O, listing, file outline, git via
gix (currently shelled-out — see [git] for the rationale), and
process lifecycle (run_command, run_test, run_build_command,
inspect_test_results, manage_packages).
Implementation status:
| Method | Status |
|---|---|
search | implemented |
read_file | implemented |
write_file | implemented |
delete_file | implemented |
list_directory | implemented |
get_file_outline | implemented (regex extractor) |
git | implemented (system git CLI) |
run_command | unimplemented (issue C2) |
run_test | unimplemented (issue C2) |
run_build_command | unimplemented (issue C2) |
inspect_test_results | unimplemented (issue C2) |
manage_packages | unimplemented (issue C2) |
§Per-session opt-in
All seven deterministic tools are gated by a per-thread feature flag.
Pipelines must call hostlib_enable("tools:deterministic") (registered
by ToolsCapability::register_builtins) before any of the tool
methods will execute. Until then, calls return
HostlibError::Backend with an explanatory message. This matches the
“per-session opt-in” model called out in issue #567 and keeps the
deterministic-tool surface sandbox-friendly.
Re-exports§
pub use permissions::FEATURE_TOOLS_DETERMINISTIC;
Modules§
- permissions
- Per-thread “enabled features” registry for the deterministic tools.
Structs§
- Tools
Capability - Tools capability handle.