cli-stream 0.3.6

Generic streaming subprocess engine: spawn a CLI, stream its stdout/stderr lines, cancel it (SIGTERM→SIGKILL), with PATH augmentation so packaged apps find node/CLIs.
Documentation
[package]
name = "cli-stream"
# Versioned independently of agent-harness (not the workspace lockstep): this
# foundational engine is stable + upstream, so it bumps only when it changes.
version = "0.3.6"
edition.workspace = true
rust-version.workspace = true
description = "Generic streaming subprocess engine: spawn a CLI, stream its stdout/stderr lines, cancel it (SIGTERM→SIGKILL), with PATH augmentation so packaged apps find node/CLIs."
license.workspace = true
readme = "README.md"
repository.workspace = true
keywords = ["subprocess", "process", "stream", "spawn", "cli"]
categories = ["command-line-utilities", "os"]

# Pure, standalone leaf utility — generic process streaming with no agent or
# domain knowledge, usable on its own by anything that drives a child CLI.
[lib]

[dependencies]
serde.workspace = true
# Typed errors (StreamError) with a real `std::io::Error` source — derive
# Display + the Error source chain without hand-writing the impls. Build-time
# proc-macro only; no runtime weight added to the leaf.
thiserror.workspace = true

# `ProcessHandle::cancel()` sends SIGTERM on unix (SIGKILL fallback);
# Windows uses `Child::kill()` (TerminateProcess).
[target.'cfg(unix)'.dependencies]
libc = "0.2"

[dev-dependencies]
# The program/PATH resolver tests create throwaway executable files in a
# temp dir to exercise the executable-bit filter.
tempfile = "3"