diff --git a/Cargo.lock b/Cargo.lock index 6706ce2..b001fbc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -137,8 +137,7 @@ dependencies = [ [[package]] name = "agent-client-protocol-schema" version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4e7eb6f1e554741f621ae4abb046d4fbb3cb88541bc599693ae7f9aa30b72eb" +source = "git+https://github.com/daniel-agentee/agent-client-protocol?rev=b3bc550d96eae265412e19f3f1a653d700102c3b#b3bc550d96eae265412e19f3f1a653d700102c3b" dependencies = [ "anyhow", "derive_more", diff --git a/Cargo.toml b/Cargo.toml index cd75b69..6fffd65 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -111,3 +111,7 @@ struct_field_names = "allow" too_many_lines = "allow" type_complexity = "allow" wildcard_imports = "allow" + +[patch.crates-io] +# Temporary: consume session/setTitle schema types before they are released. +agent-client-protocol-schema = { git = "https://github.com/daniel-agentee/agent-client-protocol", rev = "b3bc550d96eae265412e19f3f1a653d700102c3b" } diff --git a/src/agent-client-protocol/src/schema/client_to_agent/requests.rs b/src/agent-client-protocol/src/schema/client_to_agent/requests.rs index 7a4f233..d7bb5eb 100644 --- a/src/agent-client-protocol/src/schema/client_to_agent/requests.rs +++ b/src/agent-client-protocol/src/schema/client_to_agent/requests.rs @@ -5,6 +5,7 @@ use crate::schema::v1::{ LogoutRequest, LogoutResponse, NewSessionRequest, NewSessionResponse, PromptRequest, PromptResponse, ResumeSessionRequest, ResumeSessionResponse, SetSessionConfigOptionRequest, SetSessionConfigOptionResponse, SetSessionModeRequest, SetSessionModeResponse, + SetSessionTitleRequest, SetSessionTitleResponse, }; #[cfg(feature = "unstable_session_fork")] use crate::schema::v1::{ForkSessionRequest, ForkSessionResponse}; @@ -31,6 +32,11 @@ impl_jsonrpc_request!( SetSessionConfigOptionResponse, "session/set_config_option" ); +impl_jsonrpc_request!( + SetSessionTitleRequest, + SetSessionTitleResponse, + "session/setTitle" +); #[cfg(feature = "unstable_session_fork")] impl_jsonrpc_request!(ForkSessionRequest, ForkSessionResponse, "session/fork"); diff --git a/src/agent-client-protocol/src/schema/enum_impls.rs b/src/agent-client-protocol/src/schema/enum_impls.rs index 680158b..b730ddc 100644 --- a/src/agent-client-protocol/src/schema/enum_impls.rs +++ b/src/agent-client-protocol/src/schema/enum_impls.rs @@ -24,6 +24,7 @@ impl_jsonrpc_request_enum!(ClientRequest { CloseSessionRequest => "session/close", SetSessionModeRequest => "session/set_mode", SetSessionConfigOptionRequest => "session/set_config_option", + SetSessionTitleRequest => "session/setTitle", PromptRequest => "session/prompt", #[cfg(feature = "unstable_mcp_over_acp")] MessageMcpRequest => "mcp/message", diff --git a/src/agent-client-protocol/tests/protocol_v2.rs b/src/agent-client-protocol/tests/protocol_v2.rs index f05f032..eb8c4c1 100644 --- a/src/agent-client-protocol/tests/protocol_v2.rs +++ b/src/agent-client-protocol/tests/protocol_v2.rs @@ -524,7 +524,9 @@ async fn v2_client_and_agent_negotiate_v2() -> Result<(), Error> { .on_receive_request( async |initialize: v2::InitializeRequest, responder, _cx| { assert_eq!(initialize.protocol_version, ProtocolVersion::V2); - responder.respond(v2::InitializeResponse::new(initialize.protocol_version)) + responder.respond(v2_initialize_response_with_session( + initialize.protocol_version, + )) }, agent_client_protocol::on_receive_request!(), )