harness-tools: read, write, bash, glob, grep

Five of the six M1 built-ins (edit's replacer chain is a separate port).
bash uses process_group(0) + SIGKILL-the-group on timeout/cancel; glob/grep
are gitignore-aware via ignore::WalkBuilder and don't ask permission
(read-only); read/write/bash ask through ctx.ask with opencode's coarser
"always" pattern (first word + wildcard for bash, path for edit/read).
Wired tool output through the central 30k-char truncate() in the processor
so every tool gets spill-to-disk behavior for free. 70 tests passing,
clippy clean.
This commit is contained in:
Erik Simon
2026-07-08 17:12:48 +02:00
parent a68ca02894
commit 27ab6de4f5
12 changed files with 1224 additions and 1 deletions
+21
View File
@@ -6,6 +6,27 @@ license.workspace = true
[dependencies]
harness-core = { workspace = true }
tokio = { workspace = true }
tokio-util = { workspace = true }
async-trait = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
schemars = { workspace = true }
ignore = { workspace = true }
globset = { workspace = true }
grep-searcher = { workspace = true }
grep-regex = { workspace = true }
grep-matcher = { workspace = true }
similar = { workspace = true }
shell-words = { workspace = true }
thiserror = { workspace = true }
[target.'cfg(unix)'.dependencies]
libc = { workspace = true }
[dev-dependencies]
tempfile = { workspace = true }
tokio = { workspace = true, features = ["test-util", "macros"] }
[lints]
workspace = true