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