Skip to content

Commit 1184769

Browse files
author
Mark Pollack
committed
Add Implementation type with clientInfo/agentInfo fields
Add Implementation record (name, version, title) per stable ACP spec. Add optional clientInfo to InitializeRequest and agentInfo to InitializeResponse for client/agent identification.
1 parent 8d0bcbc commit 1184769

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

acp-core/src/main/java/com/agentclientprotocol/sdk/spec/AcpSchema.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,9 +194,10 @@ public sealed interface JSONRPCMessage permits JSONRPCRequest, JSONRPCNotificati
194194
@JsonInclude(JsonInclude.Include.NON_NULL)
195195
public record InitializeRequest(@JsonProperty("protocolVersion") Integer protocolVersion,
196196
@JsonProperty("clientCapabilities") ClientCapabilities clientCapabilities,
197+
@JsonProperty("clientInfo") Implementation clientInfo,
197198
@JsonProperty("_meta") Map<String, Object> meta) {
198199
public InitializeRequest(Integer protocolVersion, ClientCapabilities clientCapabilities) {
199-
this(protocolVersion, clientCapabilities, null);
200+
this(protocolVersion, clientCapabilities, null, null);
200201
}
201202
}
202203

@@ -208,10 +209,11 @@ public InitializeRequest(Integer protocolVersion, ClientCapabilities clientCapab
208209
public record InitializeResponse(@JsonProperty("protocolVersion") Integer protocolVersion,
209210
@JsonProperty("agentCapabilities") AgentCapabilities agentCapabilities,
210211
@JsonProperty("authMethods") List<AuthMethod> authMethods,
212+
@JsonProperty("agentInfo") Implementation agentInfo,
211213
@JsonProperty("_meta") Map<String, Object> meta) {
212214
public InitializeResponse(Integer protocolVersion, AgentCapabilities agentCapabilities,
213215
List<AuthMethod> authMethods) {
214-
this(protocolVersion, agentCapabilities, authMethods, null);
216+
this(protocolVersion, agentCapabilities, authMethods, null, null);
215217
}
216218

217219
/**
@@ -1088,6 +1090,18 @@ public enum PlanEntryPriority {
10881090
// Supporting Types
10891091
// ---------------------------
10901092

1093+
/**
1094+
* Metadata about an implementation (client or agent).
1095+
*/
1096+
@JsonIgnoreProperties(ignoreUnknown = true)
1097+
@JsonInclude(JsonInclude.Include.NON_NULL)
1098+
public record Implementation(@JsonProperty("name") String name, @JsonProperty("version") String version,
1099+
@JsonProperty("title") String title) {
1100+
public Implementation(String name, String version) {
1101+
this(name, version, null);
1102+
}
1103+
}
1104+
10911105
/**
10921106
* MCP server configuration.
10931107
* <p>

acp-core/src/test/java/com/agentclientprotocol/sdk/spec/AcpSchemaSerializationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ void sessionModelStateSerialization() throws IOException {
292292
void initializeRequestWithMetaSerialization() throws IOException {
293293
Map<String, Object> meta = Map.of("zed.dev/debugMode", true, "custom/version", "1.0.0");
294294
AcpSchema.InitializeRequest request = new AcpSchema.InitializeRequest(1,
295-
new AcpSchema.ClientCapabilities(new AcpSchema.FileSystemCapability(true, true), true), meta);
295+
new AcpSchema.ClientCapabilities(new AcpSchema.FileSystemCapability(true, true), true), null, meta);
296296

297297
String json = jsonMapper.writeValueAsString(request);
298298
assertThat(json).contains("\"_meta\"");

0 commit comments

Comments
 (0)