import com.agentclientprotocol.sdk.agent.*;
import com.agentclientprotocol.sdk.agent.transport.*;
import com.agentclientprotocol.sdk.spec.AcpSchema.*;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
var sessions = new ConcurrentHashMap<String, String>();
var transport = new StdioAcpAgentTransport();
AcpSyncAgent agent = AcpAgent.sync(transport)
.initializeHandler(req -> {
System.err.println("Protocol version: " + req.protocolVersion());
return InitializeResponse.ok();
})
.newSessionHandler(req -> {
String sessionId = UUID.randomUUID().toString();
sessions.put(sessionId, req.cwd());
System.err.println("New session: " + sessionId);
return new NewSessionResponse(sessionId, null, null);
})
.loadSessionHandler(req -> {
System.err.println("Loading session: " + req.sessionId());
return new LoadSessionResponse(List.of(), List.of());
})
.promptHandler((req, context) -> {
context.sendMessage("Received: " + req.text());
return PromptResponse.endTurn();
})
.cancelHandler(notification -> {
System.err.println("Cancel requested for: " +
notification.sessionId());
})
.build();
agent.run();