pi-codes 1.4.0

Typed Rust SDK for the pi coding agent (earendil-works/pi): serde models of the `pi --mode json` event stream and the `pi --mode rpc` stdin/stdout command protocol, plus an async (Tokio) RPC client.
Documentation
[package]
name = "pi-codes"
version = "1.4.0"
edition = "2021"
rust-version = "1.85"
authors = ["Matthew Goodman <d3a6d0cec0c16f3e@inboxnegative.com>"]
description = "Typed Rust SDK for the pi coding agent (earendil-works/pi): serde models of the `pi --mode json` event stream and the `pi --mode rpc` stdin/stdout command protocol, plus an async (Tokio) RPC client."
documentation = "https://docs.rs/pi-codes"
homepage = "https://github.com/meawoppl/rust-code-agent-sdks"
repository = "https://github.com/meawoppl/rust-code-agent-sdks"
license = "Apache-2.0"
readme = "README.md"
keywords = ["pi", "earendil", "agent", "llm", "cli"]
categories = ["api-bindings", "asynchronous", "encoding", "parsing"]
exclude = [
    ".claude/",
    "*.sh",
]

[lints]
workspace = true

[dependencies]
log = { workspace = true, optional = true }
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true, optional = true }
which = { workspace = true, optional = true }

[dev-dependencies]
env_logger = { workspace = true }
tokio = { workspace = true }

[features]
default = ["types", "async-client"]
types = []
async-client = ["types", "dep:tokio", "dep:log", "dep:which"]
integration-tests = ["async-client"]