[package]
name = "agent-client-protocol"
version = "3.1.0"
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
license-file.workspace = true
repository.workspace = true
description = "Core protocol types and traits for the Agent Client Protocol"
keywords = ["acp", "agent", "protocol", "ai"]
categories = ["development-tools"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[[example]]
name = "simple_agent_v2"
required-features = ["stdio", "unstable_protocol_v2"]
test = true
[[example]]
name = "v2_one_shot_client"
required-features = ["process", "unstable_protocol_v2"]
test = true
[[example]]
name = "v2_session_coordination"
required-features = ["process", "unstable_protocol_v2"]
test = true
[[example]]
name = "simple_agent"
required-features = ["stdio"]
[[example]]
name = "yolo_one_shot_client"
required-features = ["process"]
[features]
default = []
schemars = ["dep:schemars", "agent-client-protocol-schema/schemars"]
process = ["dep:async-io", "dep:async-process", "dep:shell-words", "dep:rustix", "dep:windows-sys"]
stdio = ["dep:blocking"]
unstable = [
"unstable_end_turn_token_usage",
"unstable_llm_providers",
"unstable_mcp_over_acp",
"unstable_plan_operations",
"unstable_session_compaction",
"unstable_session_fork",
"unstable_session_notices",
"unstable_subagents",
]
unstable_end_turn_token_usage = ["agent-client-protocol-schema/unstable_end_turn_token_usage"]
unstable_llm_providers = ["agent-client-protocol-schema/unstable_llm_providers"]
unstable_mcp_over_acp = ["agent-client-protocol-schema/unstable_mcp_over_acp"]
unstable_plan_operations = ["agent-client-protocol-schema/unstable_plan_operations"]
unstable_session_compaction = ["agent-client-protocol-schema/unstable_session_compaction"]
unstable_session_fork = ["agent-client-protocol-schema/unstable_session_fork"]
unstable_session_notices = ["agent-client-protocol-schema/unstable_session_notices"]
unstable_subagents = ["agent-client-protocol-schema/unstable_subagents"]
unstable_protocol_v2 = ["agent-client-protocol-schema/unstable_protocol_v2"]
wasm_js = ["uuid/js"]
[dependencies]
agent-client-protocol-schema.workspace = true
agent-client-protocol-derive.workspace = true
futures.workspace = true
futures-concurrency.workspace = true
rustc-hash.workspace = true
schemars = { workspace = true, optional = true }
serde.workspace = true
serde_json.workspace = true
tracing.workspace = true
uuid.workspace = true
[target.'cfg(not(target_family = "wasm"))'.dependencies]
async-io = { workspace = true, optional = true }
async-process = { workspace = true, optional = true }
blocking = { workspace = true, optional = true }
shell-words = { workspace = true, optional = true }
[target.'cfg(all(unix, not(target_family = "wasm")))'.dependencies]
rustix = { workspace = true, optional = true }
[target.'cfg(windows)'.dependencies]
windows-sys = { workspace = true, features = ["Win32_System_Threading"], optional = true }
[dev-dependencies]
agent-client-protocol-test.workspace = true
clap.workspace = true
expect-test.workspace = true
futures = { workspace = true, features = ["executor"] }
tokio = { workspace = true, features = ["io-std", "io-util", "macros", "rt", "rt-multi-thread", "sync", "time"] }
tokio-util.workspace = true
[lints]
workspace = true