From 85c2aa7325e39ea95eea9adefe3cb2c51591a8f0 Mon Sep 17 00:00:00 2001 From: Ben Brandt Date: Mon, 20 Oct 2025 15:52:05 +0200 Subject: [PATCH] Update to acp 0.5 (#40701) Release Notes: - N/A --- Cargo.lock | 75 ++++++++++++++++++++++--------- Cargo.toml | 2 +- crates/acp_tools/src/acp_tools.rs | 9 ++-- crates/agent_servers/src/acp.rs | 2 +- 4 files changed, 62 insertions(+), 26 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ea89f8f36231676bdb32c65d528d0c8f8cde5787..99ae6a0315c2320db18ebdc70c8c19ececbdbbe1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -151,7 +151,7 @@ dependencies = [ "context_server", "ctor", "db", - "derive_more", + "derive_more 0.99.20", "editor", "env_logger 0.11.8", "fs", @@ -210,16 +210,30 @@ dependencies = [ [[package]] name = "agent-client-protocol" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aaa2bd05a2401887945f8bfd70026e90bc3cf96c62ab9eba2779835bf21dc60" +checksum = "2f655394a107cd601bd2e5375c2d909ea83adc65678a0e0e8d77613d3c848a7d" dependencies = [ + "agent-client-protocol-schema", "anyhow", "async-broadcast", "async-trait", + "derive_more 2.0.1", "futures 0.3.31", "log", "parking_lot", + "serde", + "serde_json", +] + +[[package]] +name = "agent-client-protocol-schema" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61be4454304d7df1a5b44c4ae55e707ffe72eac4dfb1ef8762510ce8d8f6d924" +dependencies = [ + "anyhow", + "derive_more 2.0.1", "schemars 1.0.4", "serde", "serde_json", @@ -842,7 +856,7 @@ dependencies = [ "anyhow", "async-trait", "collections", - "derive_more", + "derive_more 0.99.20", "extension", "futures 0.3.31", "gpui", @@ -2064,7 +2078,7 @@ dependencies = [ "bitflags 2.9.4", "cexpr", "clang-sys", - "itertools 0.11.0", + "itertools 0.12.1", "log", "prettyplease", "proc-macro2", @@ -2084,7 +2098,7 @@ dependencies = [ "bitflags 2.9.4", "cexpr", "clang-sys", - "itertools 0.11.0", + "itertools 0.12.1", "log", "prettyplease", "proc-macro2", @@ -3079,7 +3093,7 @@ dependencies = [ "cloud_llm_client", "collections", "credentials_provider", - "derive_more", + "derive_more 0.99.20", "feature_flags", "fs", "futures 0.3.31", @@ -3539,7 +3553,7 @@ name = "command_palette_hooks" version = "0.1.0" dependencies = [ "collections", - "derive_more", + "derive_more 0.99.20", "gpui", "workspace", ] @@ -4856,6 +4870,27 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "derive_more" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "unicode-xid", +] + [[package]] name = "derive_refineable" version = "0.1.0" @@ -5002,7 +5037,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -5606,7 +5641,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -6883,7 +6918,7 @@ dependencies = [ "askpass", "async-trait", "collections", - "derive_more", + "derive_more 0.99.20", "futures 0.3.31", "git2", "gpui", @@ -7149,7 +7184,7 @@ dependencies = [ "core-video", "cosmic-text", "ctor", - "derive_more", + "derive_more 0.99.20", "embed-resource", "env_logger 0.11.8", "etagere", @@ -7648,7 +7683,7 @@ dependencies = [ "async-fs", "async-tar", "bytes 1.10.1", - "derive_more", + "derive_more 0.99.20", "futures 0.3.31", "http 1.3.1", "http-body 1.0.1", @@ -10302,7 +10337,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -13291,7 +13326,7 @@ dependencies = [ "once_cell", "socket2 0.6.1", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -14374,7 +14409,7 @@ dependencies = [ "errno 0.3.14", "libc", "linux-raw-sys 0.11.0", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -15159,7 +15194,7 @@ version = "0.1.0" dependencies = [ "anyhow", "collections", - "derive_more", + "derive_more 0.99.20", "ec4rs", "fs", "futures 0.3.31", @@ -16824,7 +16859,7 @@ dependencies = [ "getrandom 0.3.4", "once_cell", "rustix 1.1.2", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -16952,7 +16987,7 @@ version = "0.1.0" dependencies = [ "anyhow", "collections", - "derive_more", + "derive_more 0.99.20", "fs", "futures 0.3.31", "gpui", @@ -19506,7 +19541,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.61.2", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 5f4a72a5a6f62b407dd7a796bf5eb79b3f441559..a76cb403bc41d1ec068050789e8a0c5af6d61d58 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -438,7 +438,7 @@ zlog_settings = { path = "crates/zlog_settings" } # External crates # -agent-client-protocol = { version = "=0.4.3", features = ["unstable"] } +agent-client-protocol = { version = "0.5.0", features = ["unstable"] } aho-corasick = "1.1" alacritty_terminal = "0.25.1-rc1" any_vec = "0.14" diff --git a/crates/acp_tools/src/acp_tools.rs b/crates/acp_tools/src/acp_tools.rs index 7ba4f555a2a42303f82cfdc1f8e24860ed3e1d69..69722815306e412745a62832115d2f010b2b8607 100644 --- a/crates/acp_tools/src/acp_tools.rs +++ b/crates/acp_tools/src/acp_tools.rs @@ -93,8 +93,8 @@ struct WatchedConnection { messages: Vec, list_state: ListState, connection: Weak, - incoming_request_methods: HashMap>, - outgoing_request_methods: HashMap>, + incoming_request_methods: HashMap>, + outgoing_request_methods: HashMap>, _task: Task<()>, } @@ -175,7 +175,7 @@ impl AcpTools { } }; - method_map.insert(id, method.clone()); + method_map.insert(id.clone(), method.clone()); (Some(id), method.into(), MessageType::Request, Ok(params)) } acp::StreamMessageContent::Response { id, result } => { @@ -338,6 +338,7 @@ impl AcpTools { .children( message .request_id + .as_ref() .map(|req_id| div().child(ui::Chip::new(req_id.to_string()))), ), ) @@ -389,7 +390,7 @@ impl AcpTools { struct WatchedConnectionMessage { name: SharedString, - request_id: Option, + request_id: Option, direction: acp::StreamMessageDirection, message_type: MessageType, params: Result, acp::Error>, diff --git a/crates/agent_servers/src/acp.rs b/crates/agent_servers/src/acp.rs index dac6db1b12c38a967c3abd05cf34a96a44f77b08..ad205137a44f3fd7e33e4998c023d552e4007b5c 100644 --- a/crates/agent_servers/src/acp.rs +++ b/crates/agent_servers/src/acp.rs @@ -40,7 +40,7 @@ pub struct AcpConnection { // NB: Don't move this into the wait_task, since we need to ensure the process is // killed on drop (setting kill_on_drop on the command seems to not always work). child: smol::process::Child, - _io_task: Task>, + _io_task: Task>, _wait_task: Task>, _stderr_task: Task>, }