Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 62 additions & 19 deletions acp-model/api/acp-model.api
Original file line number Diff line number Diff line change
Expand Up @@ -1660,6 +1660,36 @@ public final class com/agentclientprotocol/model/McpServer$Stdio$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}

public final class com/agentclientprotocol/model/MessageId {
public static final field Companion Lcom/agentclientprotocol/model/MessageId$Companion;
public static final synthetic fun box-impl (Ljava/lang/String;)Lcom/agentclientprotocol/model/MessageId;
public static fun constructor-impl (Ljava/lang/String;)Ljava/lang/String;
public fun equals (Ljava/lang/Object;)Z
public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z
public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z
public final fun getValue ()Ljava/lang/String;
public fun hashCode ()I
public static fun hashCode-impl (Ljava/lang/String;)I
public fun toString ()Ljava/lang/String;
public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String;
public final synthetic fun unbox-impl ()Ljava/lang/String;
}

public final synthetic class com/agentclientprotocol/model/MessageId$$serializer : kotlinx/serialization/internal/GeneratedSerializer {
public static final field INSTANCE Lcom/agentclientprotocol/model/MessageId$$serializer;
public final fun childSerializers ()[Lkotlinx/serialization/KSerializer;
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
public final fun deserialize-D4v84t0 (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String;
public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
public final fun serialize-XmIeEkI (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V
public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer;
}

public final class com/agentclientprotocol/model/MessageId$Companion {
public final fun serializer ()Lkotlinx/serialization/KSerializer;
}

public final class com/agentclientprotocol/model/ModelId {
public static final field Companion Lcom/agentclientprotocol/model/ModelId$Companion;
public static final synthetic fun box-impl (Ljava/lang/String;)Lcom/agentclientprotocol/model/ModelId;
Expand Down Expand Up @@ -2000,14 +2030,16 @@ public final class com/agentclientprotocol/model/PromptCapabilities$Companion {

public final class com/agentclientprotocol/model/PromptRequest : com/agentclientprotocol/model/AcpRequest, com/agentclientprotocol/model/AcpWithSessionId {
public static final field Companion Lcom/agentclientprotocol/model/PromptRequest$Companion;
public synthetic fun <init> (Ljava/lang/String;Ljava/util/List;Lkotlinx/serialization/json/JsonElement;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/util/List;Lkotlinx/serialization/json/JsonElement;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public synthetic fun <init> (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1-7EW-EgU ()Ljava/lang/String;
public final fun component2 ()Ljava/util/List;
public final fun component3 ()Lkotlinx/serialization/json/JsonElement;
public final fun copy-nk3TnMc (Ljava/lang/String;Ljava/util/List;Lkotlinx/serialization/json/JsonElement;)Lcom/agentclientprotocol/model/PromptRequest;
public static synthetic fun copy-nk3TnMc$default (Lcom/agentclientprotocol/model/PromptRequest;Ljava/lang/String;Ljava/util/List;Lkotlinx/serialization/json/JsonElement;ILjava/lang/Object;)Lcom/agentclientprotocol/model/PromptRequest;
public final fun component3-f2XpNSU ()Ljava/lang/String;
public final fun component4 ()Lkotlinx/serialization/json/JsonElement;
public final fun copy-q1vIVlU (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;)Lcom/agentclientprotocol/model/PromptRequest;
public static synthetic fun copy-q1vIVlU$default (Lcom/agentclientprotocol/model/PromptRequest;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;ILjava/lang/Object;)Lcom/agentclientprotocol/model/PromptRequest;
public fun equals (Ljava/lang/Object;)Z
public final fun getMessageId-f2XpNSU ()Ljava/lang/String;
public final fun getPrompt ()Ljava/util/List;
public fun getSessionId-7EW-EgU ()Ljava/lang/String;
public fun get_meta ()Lkotlinx/serialization/json/JsonElement;
Expand All @@ -2032,14 +2064,16 @@ public final class com/agentclientprotocol/model/PromptRequest$Companion {

public final class com/agentclientprotocol/model/PromptResponse : com/agentclientprotocol/model/AcpResponse {
public static final field Companion Lcom/agentclientprotocol/model/PromptResponse$Companion;
public fun <init> (Lcom/agentclientprotocol/model/StopReason;Lkotlinx/serialization/json/JsonElement;)V
public synthetic fun <init> (Lcom/agentclientprotocol/model/StopReason;Lkotlinx/serialization/json/JsonElement;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public synthetic fun <init> (Lcom/agentclientprotocol/model/StopReason;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public synthetic fun <init> (Lcom/agentclientprotocol/model/StopReason;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Lcom/agentclientprotocol/model/StopReason;
public final fun component2 ()Lkotlinx/serialization/json/JsonElement;
public final fun copy (Lcom/agentclientprotocol/model/StopReason;Lkotlinx/serialization/json/JsonElement;)Lcom/agentclientprotocol/model/PromptResponse;
public static synthetic fun copy$default (Lcom/agentclientprotocol/model/PromptResponse;Lcom/agentclientprotocol/model/StopReason;Lkotlinx/serialization/json/JsonElement;ILjava/lang/Object;)Lcom/agentclientprotocol/model/PromptResponse;
public final fun component2-f2XpNSU ()Ljava/lang/String;
public final fun component3 ()Lkotlinx/serialization/json/JsonElement;
public final fun copy-5MJPFCQ (Lcom/agentclientprotocol/model/StopReason;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;)Lcom/agentclientprotocol/model/PromptResponse;
public static synthetic fun copy-5MJPFCQ$default (Lcom/agentclientprotocol/model/PromptResponse;Lcom/agentclientprotocol/model/StopReason;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;ILjava/lang/Object;)Lcom/agentclientprotocol/model/PromptResponse;
public fun equals (Ljava/lang/Object;)Z
public final fun getStopReason ()Lcom/agentclientprotocol/model/StopReason;
public final fun getUserMessageId-f2XpNSU ()Ljava/lang/String;
public fun get_meta ()Lkotlinx/serialization/json/JsonElement;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
Expand Down Expand Up @@ -3125,12 +3159,15 @@ public abstract class com/agentclientprotocol/model/SessionUpdate {

public final class com/agentclientprotocol/model/SessionUpdate$AgentMessageChunk : com/agentclientprotocol/model/SessionUpdate {
public static final field Companion Lcom/agentclientprotocol/model/SessionUpdate$AgentMessageChunk$Companion;
public fun <init> (Lcom/agentclientprotocol/model/ContentBlock;)V
public synthetic fun <init> (Lcom/agentclientprotocol/model/ContentBlock;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public synthetic fun <init> (Lcom/agentclientprotocol/model/ContentBlock;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Lcom/agentclientprotocol/model/ContentBlock;
public final fun copy (Lcom/agentclientprotocol/model/ContentBlock;)Lcom/agentclientprotocol/model/SessionUpdate$AgentMessageChunk;
public static synthetic fun copy$default (Lcom/agentclientprotocol/model/SessionUpdate$AgentMessageChunk;Lcom/agentclientprotocol/model/ContentBlock;ILjava/lang/Object;)Lcom/agentclientprotocol/model/SessionUpdate$AgentMessageChunk;
public final fun component2-f2XpNSU ()Ljava/lang/String;
public final fun copy-eVVbJIE (Lcom/agentclientprotocol/model/ContentBlock;Ljava/lang/String;)Lcom/agentclientprotocol/model/SessionUpdate$AgentMessageChunk;
public static synthetic fun copy-eVVbJIE$default (Lcom/agentclientprotocol/model/SessionUpdate$AgentMessageChunk;Lcom/agentclientprotocol/model/ContentBlock;Ljava/lang/String;ILjava/lang/Object;)Lcom/agentclientprotocol/model/SessionUpdate$AgentMessageChunk;
public fun equals (Ljava/lang/Object;)Z
public final fun getContent ()Lcom/agentclientprotocol/model/ContentBlock;
public final fun getMessageId-f2XpNSU ()Ljava/lang/String;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}
Expand All @@ -3152,12 +3189,15 @@ public final class com/agentclientprotocol/model/SessionUpdate$AgentMessageChunk

public final class com/agentclientprotocol/model/SessionUpdate$AgentThoughtChunk : com/agentclientprotocol/model/SessionUpdate {
public static final field Companion Lcom/agentclientprotocol/model/SessionUpdate$AgentThoughtChunk$Companion;
public fun <init> (Lcom/agentclientprotocol/model/ContentBlock;)V
public synthetic fun <init> (Lcom/agentclientprotocol/model/ContentBlock;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public synthetic fun <init> (Lcom/agentclientprotocol/model/ContentBlock;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Lcom/agentclientprotocol/model/ContentBlock;
public final fun copy (Lcom/agentclientprotocol/model/ContentBlock;)Lcom/agentclientprotocol/model/SessionUpdate$AgentThoughtChunk;
public static synthetic fun copy$default (Lcom/agentclientprotocol/model/SessionUpdate$AgentThoughtChunk;Lcom/agentclientprotocol/model/ContentBlock;ILjava/lang/Object;)Lcom/agentclientprotocol/model/SessionUpdate$AgentThoughtChunk;
public final fun component2-f2XpNSU ()Ljava/lang/String;
public final fun copy-eVVbJIE (Lcom/agentclientprotocol/model/ContentBlock;Ljava/lang/String;)Lcom/agentclientprotocol/model/SessionUpdate$AgentThoughtChunk;
public static synthetic fun copy-eVVbJIE$default (Lcom/agentclientprotocol/model/SessionUpdate$AgentThoughtChunk;Lcom/agentclientprotocol/model/ContentBlock;Ljava/lang/String;ILjava/lang/Object;)Lcom/agentclientprotocol/model/SessionUpdate$AgentThoughtChunk;
public fun equals (Ljava/lang/Object;)Z
public final fun getContent ()Lcom/agentclientprotocol/model/ContentBlock;
public final fun getMessageId-f2XpNSU ()Ljava/lang/String;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}
Expand Down Expand Up @@ -3484,12 +3524,15 @@ public final class com/agentclientprotocol/model/SessionUpdate$UsageUpdate$Compa

public final class com/agentclientprotocol/model/SessionUpdate$UserMessageChunk : com/agentclientprotocol/model/SessionUpdate {
public static final field Companion Lcom/agentclientprotocol/model/SessionUpdate$UserMessageChunk$Companion;
public fun <init> (Lcom/agentclientprotocol/model/ContentBlock;)V
public synthetic fun <init> (Lcom/agentclientprotocol/model/ContentBlock;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public synthetic fun <init> (Lcom/agentclientprotocol/model/ContentBlock;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Lcom/agentclientprotocol/model/ContentBlock;
public final fun copy (Lcom/agentclientprotocol/model/ContentBlock;)Lcom/agentclientprotocol/model/SessionUpdate$UserMessageChunk;
public static synthetic fun copy$default (Lcom/agentclientprotocol/model/SessionUpdate$UserMessageChunk;Lcom/agentclientprotocol/model/ContentBlock;ILjava/lang/Object;)Lcom/agentclientprotocol/model/SessionUpdate$UserMessageChunk;
public final fun component2-f2XpNSU ()Ljava/lang/String;
public final fun copy-eVVbJIE (Lcom/agentclientprotocol/model/ContentBlock;Ljava/lang/String;)Lcom/agentclientprotocol/model/SessionUpdate$UserMessageChunk;
public static synthetic fun copy-eVVbJIE$default (Lcom/agentclientprotocol/model/SessionUpdate$UserMessageChunk;Lcom/agentclientprotocol/model/ContentBlock;Ljava/lang/String;ILjava/lang/Object;)Lcom/agentclientprotocol/model/SessionUpdate$UserMessageChunk;
public fun equals (Ljava/lang/Object;)Z
public final fun getContent ()Lcom/agentclientprotocol/model/ContentBlock;
public final fun getMessageId-f2XpNSU ()Ljava/lang/String;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -398,10 +398,13 @@ public data class LoadSessionRequest(
*
* See protocol docs: [User Message](https://agentclientprotocol.com/protocol/prompt-turn#1-user-message)
*/
@OptIn(UnstableApi::class)
@Serializable
public data class PromptRequest(
override val sessionId: SessionId,
val prompt: List<ContentBlock>,
@property:UnstableApi
val messageId: MessageId? = null,
override val _meta: JsonElement? = null
) : AcpRequest, AcpWithSessionId

Expand Down Expand Up @@ -566,9 +569,12 @@ public data class NewSessionResponse(
*
* See protocol docs: [Check for Completion](https://agentclientprotocol.com/protocol/prompt-turn#4-check-for-completion)
*/
@OptIn(UnstableApi::class)
@Serializable
public data class PromptResponse(
val stopReason: StopReason,
@property:UnstableApi
val userMessageId: MessageId? = null,
override val _meta: JsonElement? = null
) : AcpResponse

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,28 +87,37 @@ public sealed class SessionUpdate {
/**
* A chunk of the user's message being streamed.
*/
@OptIn(UnstableApi::class)
@Serializable
@SerialName("user_message_chunk")
public data class UserMessageChunk(
val content: ContentBlock
val content: ContentBlock,
@property:UnstableApi
val messageId: MessageId? = null
) : SessionUpdate()

/**
* A chunk of the agent's response being streamed.
*/
@OptIn(UnstableApi::class)
@Serializable
@SerialName("agent_message_chunk")
public data class AgentMessageChunk(
val content: ContentBlock
val content: ContentBlock,
@property:UnstableApi
val messageId: MessageId? = null
) : SessionUpdate()

/**
* A chunk of the agent's internal reasoning being streamed.
*/
@OptIn(UnstableApi::class)
@Serializable
@SerialName("agent_thought_chunk")
public data class AgentThoughtChunk(
val content: ContentBlock
val content: ContentBlock,
@property:UnstableApi
val messageId: MessageId? = null
) : SessionUpdate()

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,24 @@ public value class SessionConfigGroupId(public val value: String) {
override fun toString(): String = value
}

/**
* **UNSTABLE**
*
* This capability is not part of the spec yet, and may be removed or changed at any point.
*
* A unique message identifier for [PromptRequest], session update message chunks, and [PromptResponse].
*
* If provided by the client, the Agent SHOULD echo this value as `userMessageId` in the
* [PromptResponse] to confirm it was recorded.
* Both clients and agents MUST use UUID format for message IDs.
*/
@UnstableApi
@JvmInline
@Serializable
public value class MessageId(public val value: String) {
override fun toString(): String = value
}

/**
* The sender or recipient of messages and data in a conversation.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ internal class ClientSessionImpl(
}
try {
logger.trace { "Sending prompt request: $content" }
val promptResponse = AcpMethod.AgentMethods.SessionPrompt(protocol, PromptRequest(sessionId, content, _meta))
val promptResponse = AcpMethod.AgentMethods.SessionPrompt(protocol, PromptRequest(sessionId, content, _meta = _meta))
logger.trace { "Received prompt response: $promptResponse" }

// after receiving prompt response we immediately close the current prompt channel
Expand Down
Loading