[workspace] members = ["xtask"] # Without `default-members`, Cargo defaults to the root package alone, so # `cargo test` / `cargo build --all-targets` / `cargo clippy --all-targets` # at the root would skip xtask (release-verify job depends on them covering it). default-members = [".", "xtask"] resolver = "2" [package] name = "deepseek-harness-sdk" version = "0.2.2" edition = "2021" description = "Low-level Rust client and Python-parity high-level API for the DeepSeek Harness runtime stdio JSON-RPC 2.0 protocol" license = "Apache-2.0" repository = "https://github.com/42ch-dev/dsh-rust-sdk" readme = "README.md" keywords = ["deepseek", "agent", "sdk", "jsonrpc", "dsh"] categories = ["api-bindings", "asynchronous"] include = [ "src/**", "tests/**", "/README.md", "/README.zh.md", "/README.i18n.yaml", "/LICENSE", ] [dependencies] tokio = { version = "1", features = ["process", "io-util", "time", "sync", "rt-multi-thread", "macros"] } serde = { version = "1", features = ["derive"] } serde_json = "1" thiserror = "2" tracing = "0.1" uuid = { version = "1", features = ["v4"] } # Safe POSIX signal wrapper: the close ladder's SIGTERM tier needs kill(2), # which std/tokio do not expose (tokio's start_kill is SIGKILL-only). nix = { version = "0.29", features = ["signal"] } [lints.rust] unsafe_code = "forbid" # Test fixtures compiled as bin targets so integration tests can reach them # via CARGO_BIN_EXE_ (a plain .rs file under tests/ is not executable). # `test = false`: they are run as subprocesses, not as test harnesses. [[bin]] name = "fake-runtime" path = "tests/fixtures/fake_runtime.rs" test = false [[bin]] name = "sleep-forever" path = "tests/fixtures/sleep_forever.rs" test = false [[bin]] name = "env-dump" path = "tests/fixtures/env_dump.rs" test = false