[package] name = "github-copilot-sdk" version = "0.0.0-dev" edition = "2024" rust-version = "1.94.0" description = "Rust SDK for programmatic control of the GitHub Copilot CLI via JSON-RPC. Technical preview, pre-1.0." keywords = ["copilot", "github", "ai", "json-rpc", "sdk"] categories = ["api-bindings", "development-tools"] repository = "https://github.com/github/copilot-sdk" homepage = "https://github.com/github/copilot-sdk" documentation = "https://docs.rs/github-copilot-sdk" readme = "README.md" license = "MIT" include = [ "src/**/*", "examples/**/*", "tests/**/*", "build.rs", "Cargo.toml", "README.md", "LICENSE", "bundled_cli_version.txt", ] [lib] name = "github_copilot_sdk" [features] default = ["bundled-cli"] bundled-cli = ["dep:dirs", "dep:tar", "dep:flate2", "dep:zip"] derive = ["dep:schemars"] test-support = [] # Build docs.rs documentation with all features so feature-gated APIs # (e.g. `define_tool`, `schema_for`) appear and intra-doc links resolve. # Mirror this locally with: `cargo doc --no-deps --all-features`. [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [dependencies] async-trait = "0.1" schemars = { version = "1", optional = true } serde = { version = "1", features = ["derive"] } serde_json = "1" thiserror = "2" tokio = { version = "1", features = ["io-util", "sync", "rt", "process", "net", "time", "macros"] } tokio-stream = { version = "0.1", features = ["sync"] } tokio-util = { version = "0.7", default-features = false } tracing = "0.1" dirs = { version = "5", optional = true } parking_lot = "0.12" regex = "1" getrandom = "0.2" uuid = { version = "1", default-features = false, features = ["v4"] } [target.'cfg(windows)'.dependencies] zip = { version = "2", default-features = false, features = ["deflate"], optional = true } [target.'cfg(not(windows))'.dependencies] flate2 = { version = "1", optional = true } tar = { version = "0.4", optional = true } [dev-dependencies] rusqlite = { version = "0.35", features = ["bundled"] } schemars = "1" serial_test = "3" tempfile = "3" tokio = { version = "1", features = ["rt-multi-thread"] } [build-dependencies] flate2 = "1" sha2 = "0.10" tar = "0.4" ureq = { version = "2", default-features = false, features = ["tls"] } zip = { version = "2", default-features = false, features = ["deflate"] }