[package]
name = "op-acp"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
description = "OpenPencil ACP client — Agent Client Protocol (ndJSON JSON-RPC) transport, ported from the TS pen-acp package"

[features]
default = ["remote"]
# Remote ACP agents over a WebSocket endpoint. Local (stdio) agents
# work without this feature; `remote` adds the `tokio-tungstenite`
# dependency for the WebSocket transport.
remote = ["dep:tokio-tungstenite", "dep:futures-util"]

[dependencies]
# Desktop-only crate: spawns child processes + drives async IO, so it
# pulls tokio. Never depended on by a wasm crate.
tokio = { version = "1", features = [
  "process",
  "io-util",
  "rt",
  "rt-multi-thread",
  "macros",
  "sync",
  "time",
] }
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
# Chat-delta vocabulary the ACP event adapter maps onto.
op-ai = { path = "../op-ai" }

tokio-tungstenite = { version = "0.24", optional = true }
futures-util = { version = "0.3", optional = true }
