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:
xintaofei
2026-04-03 22:10:15 +08:00
parent 56d6db7866
commit ac0d849a7b
7 changed files with 52 additions and 40 deletions

View File

@@ -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)),
);

View File

@@ -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(