chore: upgrade sacp to 11.0.0 stable and agent-client-protocol-schema to 0.11
- Upgrade sacp/sacp-tokio from 11.0.0-alpha.1 to 11.0.0 stable - Upgrade agent-client-protocol-schema from 0.10 to 0.11 - Rebase vendor/sacp-tokio patches (kill_tree, CREATE_NO_WINDOW, stderr truncation) onto official 11.0.0 baseline - Adapt renamed types: FileSystemCapability → FileSystemCapabilities, KillTerminalCommandRequest/Response → KillTerminalRequest/Response Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
42
src-tauri/Cargo.lock
generated
42
src-tauri/Cargo.lock
generated
@@ -21,16 +21,16 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "agent-client-protocol-schema"
|
||||
version = "0.10.8"
|
||||
version = "0.11.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "44bc1fef9c32f03bce2ab44af35b6f483bfd169bf55cc59beeb2e3b1a00ae4d1"
|
||||
checksum = "ca68e7e55681ce56546c0cecc6bc8f20493d24b44c6d93ec46174f310730bba2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"derive_more 2.1.1",
|
||||
"schemars 1.2.1",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"strum 0.27.2",
|
||||
"strum 0.28.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -461,7 +461,7 @@ dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"regex",
|
||||
"rustc-hash",
|
||||
"rustc-hash 1.1.0",
|
||||
"shlex",
|
||||
"syn 2.0.114",
|
||||
"which 4.4.2",
|
||||
@@ -4792,9 +4792,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "rmcp"
|
||||
version = "0.12.0"
|
||||
version = "1.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "528d42f8176e6e5e71ea69182b17d1d0a19a6b3b894b564678b74cd7cab13cfa"
|
||||
checksum = "2231b2c085b371c01bc90c0e6c1cab8834711b6394533375bdbf870b0166d419"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"base64 0.22.1",
|
||||
@@ -4814,9 +4814,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "rmcp-macros"
|
||||
version = "0.12.0"
|
||||
version = "1.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e3f81daaa494eb8e985c9462f7d6ce1ab05e5299f48aafd76cdd3d8b060e6f59"
|
||||
checksum = "36ea0e100fadf81be85d7ff70f86cd805c7572601d4ab2946207f36540854b43"
|
||||
dependencies = [
|
||||
"darling 0.23.0",
|
||||
"proc-macro2",
|
||||
@@ -4867,6 +4867,12 @@ version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
||||
|
||||
[[package]]
|
||||
name = "rustc-hash"
|
||||
version = "2.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe"
|
||||
|
||||
[[package]]
|
||||
name = "rustc_version"
|
||||
version = "0.4.1"
|
||||
@@ -4989,18 +4995,18 @@ checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f"
|
||||
|
||||
[[package]]
|
||||
name = "sacp"
|
||||
version = "11.0.0-alpha.1"
|
||||
version = "11.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "337fd4bd779e666b889032766bd57e46ffbe0fc07657444d67730c32398e20a2"
|
||||
checksum = "b4c55e83008bb3aec4bc1348bf1a58dc5d42381ee704697dccb5c59553dce0fc"
|
||||
dependencies = [
|
||||
"agent-client-protocol-schema",
|
||||
"anyhow",
|
||||
"boxfnonce",
|
||||
"futures",
|
||||
"futures-concurrency",
|
||||
"fxhash",
|
||||
"jsonrpcmsg",
|
||||
"rmcp",
|
||||
"rustc-hash 2.1.2",
|
||||
"sacp-derive",
|
||||
"schemars 1.2.1",
|
||||
"serde",
|
||||
@@ -5014,9 +5020,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "sacp-derive"
|
||||
version = "11.0.0-alpha.1"
|
||||
version = "11.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ff639847b2093b2b6c441948f510f505cbcc17209e102ec321dc878901e42359"
|
||||
checksum = "ab42f7ccff8ab957cb7eaee9727cfca1ba38ea390178cb3d1cdfc1ddbce1ddd8"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -5025,7 +5031,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "sacp-tokio"
|
||||
version = "11.0.0-alpha.1"
|
||||
version = "11.0.0"
|
||||
dependencies = [
|
||||
"futures",
|
||||
"kill_tree",
|
||||
@@ -6052,18 +6058,18 @@ checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06"
|
||||
|
||||
[[package]]
|
||||
name = "strum"
|
||||
version = "0.27.2"
|
||||
version = "0.28.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf"
|
||||
checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd"
|
||||
dependencies = [
|
||||
"strum_macros",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "strum_macros"
|
||||
version = "0.27.2"
|
||||
version = "0.28.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7"
|
||||
checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664"
|
||||
dependencies = [
|
||||
"heck 0.5.0",
|
||||
"proc-macro2",
|
||||
|
||||
@@ -53,8 +53,8 @@ chrono = { version = "0.4", features = ["serde"] }
|
||||
thiserror = "2"
|
||||
dirs = "6"
|
||||
walkdir = "2"
|
||||
sacp = "11.0.0-alpha.1"
|
||||
sacp-tokio = "11.0.0-alpha.1"
|
||||
sacp = "11.0.0"
|
||||
sacp-tokio = "11.0.0"
|
||||
tokio = { version = "1", features = ["process", "io-util", "sync", "macros", "rt", "net", "rt-multi-thread"] }
|
||||
uuid = { version = "1", features = ["v4"] }
|
||||
futures = "0.3"
|
||||
@@ -72,7 +72,7 @@ sea-orm-migration = { version = "1.1", features = ["sqlx-sqlite", "runtime-tokio
|
||||
toml = "0.8"
|
||||
notify = "6"
|
||||
base64 = "0.22"
|
||||
agent-client-protocol-schema = { version = "0.10", features = ["unstable_session_usage", "unstable_session_fork"] }
|
||||
agent-client-protocol-schema = { version = "0.11", features = ["unstable_session_usage", "unstable_session_fork"] }
|
||||
kill_tree = { version = "0.2", features = ["tokio"] }
|
||||
which = "7"
|
||||
keyring = { version = "3", features = ["apple-native", "windows-native", "sync-secret-service"], optional = true }
|
||||
|
||||
@@ -6,8 +6,8 @@ use sacp::schema::McpServerStdio;
|
||||
use sacp::schema::{
|
||||
BlobResourceContents, CancelNotification, ClientCapabilities, ContentBlock, ContentChunk,
|
||||
CreateTerminalRequest, CreateTerminalResponse, EmbeddedResource, EmbeddedResourceResource,
|
||||
FileSystemCapability, ImageContent, InitializeRequest, KillTerminalCommandRequest,
|
||||
KillTerminalCommandResponse, LoadSessionRequest, NewSessionRequest, NewSessionResponse,
|
||||
FileSystemCapabilities, ImageContent, InitializeRequest, KillTerminalRequest,
|
||||
KillTerminalResponse, LoadSessionRequest, NewSessionRequest, NewSessionResponse,
|
||||
PermissionOptionKind, Plan, PlanEntryPriority, PlanEntryStatus, PromptRequest, ProtocolVersion,
|
||||
ReadTextFileRequest, ReadTextFileResponse, ReleaseTerminalRequest, ReleaseTerminalResponse,
|
||||
RequestPermissionOutcome, RequestPermissionRequest, RequestPermissionResponse, ResourceLink,
|
||||
@@ -656,8 +656,8 @@ async fn run_connection(
|
||||
.on_receive_request(
|
||||
{
|
||||
let runtime = terminal_runtime.clone();
|
||||
async move |req: KillTerminalCommandRequest,
|
||||
responder: Responder<KillTerminalCommandResponse>,
|
||||
async move |req: KillTerminalRequest,
|
||||
responder: Responder<KillTerminalResponse>,
|
||||
_cx: ConnectionTo<Agent>| {
|
||||
respond_terminal_request(responder, runtime.kill_terminal(req).await)?;
|
||||
Ok(())
|
||||
@@ -677,12 +677,12 @@ async fn run_connection(
|
||||
},
|
||||
on_receive_request!(),
|
||||
)
|
||||
.connect_with(agent, async move |cx| {
|
||||
.connect_with(agent, async move |cx| -> Result<(), sacp::Error> {
|
||||
// Advertise filesystem + terminal capabilities for ACP tool execution.
|
||||
let init_request = InitializeRequest::new(ProtocolVersion::LATEST).client_capabilities(
|
||||
ClientCapabilities::new()
|
||||
.terminal(true)
|
||||
.fs(FileSystemCapability::new()
|
||||
.fs(FileSystemCapabilities::new()
|
||||
.read_text_file(true)
|
||||
.write_text_file(true)),
|
||||
);
|
||||
|
||||
@@ -3,8 +3,8 @@ use std::process::Stdio;
|
||||
use std::sync::Arc;
|
||||
|
||||
use sacp::schema::{
|
||||
CreateTerminalRequest, CreateTerminalResponse, KillTerminalCommandRequest,
|
||||
KillTerminalCommandResponse, ReleaseTerminalRequest, ReleaseTerminalResponse,
|
||||
CreateTerminalRequest, CreateTerminalResponse, KillTerminalRequest,
|
||||
KillTerminalResponse, ReleaseTerminalRequest, ReleaseTerminalResponse,
|
||||
TerminalExitStatus, TerminalOutputRequest, TerminalOutputResponse, WaitForTerminalExitRequest,
|
||||
WaitForTerminalExitResponse,
|
||||
};
|
||||
@@ -335,8 +335,8 @@ impl TerminalRuntime {
|
||||
|
||||
pub async fn kill_terminal(
|
||||
&self,
|
||||
request: KillTerminalCommandRequest,
|
||||
) -> Result<KillTerminalCommandResponse, TerminalRuntimeError> {
|
||||
request: KillTerminalRequest,
|
||||
) -> Result<KillTerminalResponse, TerminalRuntimeError> {
|
||||
let terminal = self
|
||||
.find_terminal(
|
||||
&request.terminal_id.to_string(),
|
||||
@@ -344,7 +344,7 @@ impl TerminalRuntime {
|
||||
)
|
||||
.await?;
|
||||
terminal.kill_command().await?;
|
||||
Ok(KillTerminalCommandResponse::new())
|
||||
Ok(KillTerminalResponse::new())
|
||||
}
|
||||
|
||||
pub async fn release_terminal(
|
||||
|
||||
4
src-tauri/vendor/sacp-tokio/Cargo.toml
vendored
4
src-tauri/vendor/sacp-tokio/Cargo.toml
vendored
@@ -12,7 +12,7 @@
|
||||
[package]
|
||||
edition = "2024"
|
||||
name = "sacp-tokio"
|
||||
version = "11.0.0-alpha.1"
|
||||
version = "11.0.0"
|
||||
build = false
|
||||
autolib = false
|
||||
autobins = false
|
||||
@@ -45,7 +45,7 @@ path = "tests/debug_logging.rs"
|
||||
version = "0.3.31"
|
||||
|
||||
[dependencies.sacp]
|
||||
version = "11.0.0-alpha.1"
|
||||
version = "11.0.0"
|
||||
|
||||
[dependencies.serde]
|
||||
version = "1.0"
|
||||
|
||||
4
src-tauri/vendor/sacp-tokio/Cargo.toml.orig
generated
vendored
4
src-tauri/vendor/sacp-tokio/Cargo.toml.orig
generated
vendored
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "sacp-tokio"
|
||||
version = "11.0.0-alpha.1"
|
||||
version = "11.0.0"
|
||||
edition = "2024"
|
||||
description = "Tokio-based utilities for SACP (Symposium's extensions to ACP)"
|
||||
license = "MIT OR Apache-2.0"
|
||||
@@ -9,7 +9,7 @@ keywords = ["acp", "agent", "protocol", "ai", "tokio"]
|
||||
categories = ["development-tools"]
|
||||
|
||||
[dependencies]
|
||||
sacp = { version = "11.0.0-alpha.1", path = "../sacp" }
|
||||
sacp = { version = "11.0.0", path = "../sacp" }
|
||||
futures.workspace = true
|
||||
|
||||
serde.workspace = true
|
||||
|
||||
14
src-tauri/vendor/sacp-tokio/src/lib.rs
vendored
14
src-tauri/vendor/sacp-tokio/src/lib.rs
vendored
@@ -7,7 +7,7 @@
|
||||
mod acp_agent;
|
||||
|
||||
pub use acp_agent::{AcpAgent, LineDirection};
|
||||
use sacp::{ByteStreams, Role, ConnectTo};
|
||||
use sacp::{ByteStreams, ConnectTo, Role};
|
||||
use std::sync::Arc;
|
||||
use tokio_util::compat::{TokioAsyncReadCompatExt, TokioAsyncWriteCompatExt};
|
||||
|
||||
@@ -38,7 +38,10 @@ impl Default for Stdio {
|
||||
}
|
||||
|
||||
impl<Counterpart: Role> ConnectTo<Counterpart> for Stdio {
|
||||
async fn connect_to(self, client: impl ConnectTo<Counterpart::Counterpart>) -> Result<(), sacp::Error> {
|
||||
async fn connect_to(
|
||||
self,
|
||||
client: impl ConnectTo<Counterpart::Counterpart>,
|
||||
) -> Result<(), sacp::Error> {
|
||||
if let Some(callback) = self.debug_callback {
|
||||
use futures::AsyncBufReadExt;
|
||||
use futures::AsyncWriteExt;
|
||||
@@ -73,8 +76,11 @@ impl<Counterpart: Role> ConnectTo<Counterpart> for Stdio {
|
||||
))
|
||||
as std::pin::Pin<Box<dyn futures::Sink<String, Error = std::io::Error> + Send>>;
|
||||
|
||||
ConnectTo::<Counterpart>::connect_to(sacp::Lines::new(outgoing_sink, incoming_lines), client)
|
||||
.await
|
||||
ConnectTo::<Counterpart>::connect_to(
|
||||
sacp::Lines::new(outgoing_sink, incoming_lines),
|
||||
client,
|
||||
)
|
||||
.await
|
||||
} else {
|
||||
// Without debug: use simple ByteStreams
|
||||
ConnectTo::<Counterpart>::connect_to(
|
||||
|
||||
Reference in New Issue
Block a user