supercode-harness 0.4.8

The optional native Supercode agent and tool harness
Documentation
[package]
name = "supercode-harness"
description = "The optional native Supercode agent and tool harness"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
authors.workspace = true
keywords.workspace = true
categories.workspace = true
readme = "../../README.md"

[package.metadata.docs.rs]
all-features = true

[lib]
name = "supercode_harness"
path = "src/lib.rs"

[features]
default = ["adapter-api", "adapter-mcp", "adapter-acp"]
adapter-api = ["dep:tokio-tungstenite"]
adapter-mcp = []
adapter-acp = []

[dependencies]
supercode-interchange = { path = "../interchange", version = "=0.4.8" }
supercode-reduce = { path = "../reduce", version = "=0.4.8" }
supercode-runtime = { path = "../runtime", version = "=0.4.8", features = ["reduction"] }
tokio = { workspace = true }
reqwest = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
async-trait = { workspace = true }
futures = { workspace = true }
tokio-tungstenite = { workspace = true, optional = true }
thiserror = { workspace = true }
regex = { workspace = true }
ignore = { workspace = true }
glob = { workspace = true }
notify = { workspace = true }
bytes = { workspace = true }
tracing = { workspace = true }
# P5-6 Fable-5 review fix (HIGH, "grandchildren orphaned on kill"): already
# resolved workspace-wide (crates/cli, crates/bench both depend on it —
# Cargo.lock is unaffected), promoted to a direct dep here for the
# `libc::kill(-pgid, SIGKILL)` process-GROUP kill in `agent.rs`
# (`kill_job_process_group`, `#[cfg(unix)]`-gated).
libc = { workspace = true }
blake3 = { workspace = true }
diffy = { workspace = true }
rusqlite = { workspace = true }
# TOML mirror of the composable-harness config schema (COMPOSABLE-HARNESS-DESIGN.md
# §3.1); version pinned to match crates/cli's existing `toml = "0.8"` dependency.
toml = "0.8"
tree-sitter = "0.25"
tree-sitter-bash = "0.25"
getrandom = { workspace = true }

# Landlock is a Linux-only kernel LSM (`os::linux-apis`); its 0.4.x source calls
# `libc::prctl`/`PR_GET_NO_NEW_PRIVS`, which don't exist on macOS/Windows, so an
# unconditional dep breaks `cargo build` on every non-Linux target (and the
# macOS release-matrix jobs). All `landlock::` uses in `sandbox.rs` are already
# `#[cfg(target_os = "linux")]`-gated, so scoping the dep to Linux is a no-op on
# Linux and unblocks source builds everywhere else.
[target.'cfg(target_os = "linux")'.dependencies]
landlock = "0.4.5"

[target.'cfg(windows)'.dependencies]
# BashTool owns each command tree with a kill-on-close Job Object so its
# timeout and cancellation guarantees are identical to Unix process groups.
windows-sys = { version = "0.59", features = [
    "Win32_Foundation",
    "Win32_Security",
    "Win32_System_Diagnostics_ToolHelp",
    "Win32_System_JobObjects",
    "Win32_System_Threading",
] }

[dev-dependencies]
tokio = { workspace = true }
async-trait = { workspace = true }