diff --git a/crates/goose/src/acp/server.rs b/crates/goose/src/acp/server.rs index 15da2943c..c506d1788 100644 --- a/crates/goose/src/acp/server.rs +++ b/crates/goose/src/acp/server.rs @@ -43,10 +43,10 @@ use agent_client_protocol::schema::{ AuthenticateResponse, BlobResourceContents, CancelNotification, CloseSessionRequest, CloseSessionResponse, ConfigOptionUpdate, Content, ContentBlock, ContentChunk, CurrentModeUpdate, EmbeddedResource, EmbeddedResourceResource, FileSystemCapabilities, - ForkSessionRequest, ForkSessionResponse, ImageContent, InitializeRequest, InitializeResponse, - ListSessionsRequest, ListSessionsResponse, LoadSessionRequest, LoadSessionResponse, - McpCapabilities, McpServer, Meta, NewSessionRequest, NewSessionResponse, PermissionOption, - PermissionOptionKind, PromptCapabilities, PromptRequest, PromptResponse, + ForkSessionRequest, ForkSessionResponse, ImageContent, Implementation, InitializeRequest, + InitializeResponse, ListSessionsRequest, ListSessionsResponse, LoadSessionRequest, + LoadSessionResponse, McpCapabilities, McpServer, Meta, NewSessionRequest, NewSessionResponse, + PermissionOption, PermissionOptionKind, PromptCapabilities, PromptRequest, PromptResponse, RequestPermissionOutcome, RequestPermissionRequest, ResourceLink, SessionCapabilities, SessionCloseCapabilities, SessionConfigOption, SessionId, SessionInfoUpdate, SessionListCapabilities, SessionNotification, SessionUpdate, SetSessionConfigOptionRequest, @@ -2113,6 +2113,7 @@ impl GooseAcpAgent { ) .mcp_capabilities(McpCapabilities::new().http(true)); Ok(InitializeResponse::new(args.protocol_version) + .agent_info(Implementation::new("goose", env!("CARGO_PKG_VERSION"))) .agent_capabilities(capabilities) .auth_methods(vec![AuthMethod::Agent( AuthMethodAgent::new("goose-provider", "Configure Provider") diff --git a/crates/goose/tests/acp_fixtures/server.rs b/crates/goose/tests/acp_fixtures/server.rs index f7a5eec96..1cfe46cfc 100644 --- a/crates/goose/tests/acp_fixtures/server.rs +++ b/crates/goose/tests/acp_fixtures/server.rs @@ -273,7 +273,7 @@ impl Connection for AcpServerConnection { .connect_with(transport, { let cx_holder = cx_holder_clone; async move |cx: ConnectionTo| { - let _resp = cx + let resp = cx .send_request( InitializeRequest::new(ProtocolVersion::LATEST) .client_capabilities( @@ -285,6 +285,11 @@ impl Connection for AcpServerConnection { .block_task() .await .unwrap(); + assert_eq!( + resp.agent_info.as_ref().map(|info| info.name.as_str()), + Some("goose"), + "initialize response must identify the agent" + ); *cx_holder.lock().unwrap() = Some(cx.clone()); let _ = ready_tx.send(());