diff --git a/api/kotlin-sdk.api b/api/kotlin-sdk.api index ce39975a..f91d3f20 100644 --- a/api/kotlin-sdk.api +++ b/api/kotlin-sdk.api @@ -133,17 +133,45 @@ public final class io/modelcontextprotocol/kotlin/sdk/CallToolResultBase$Default public static fun isError (Lio/modelcontextprotocol/kotlin/sdk/CallToolResultBase;)Ljava/lang/Boolean; } -public final class io/modelcontextprotocol/kotlin/sdk/CancelledNotification : io/modelcontextprotocol/kotlin/sdk/ClientNotification, io/modelcontextprotocol/kotlin/sdk/ServerNotification, io/modelcontextprotocol/kotlin/sdk/WithMeta { +public final class io/modelcontextprotocol/kotlin/sdk/CancelledNotification : io/modelcontextprotocol/kotlin/sdk/ClientNotification, io/modelcontextprotocol/kotlin/sdk/ServerNotification { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification$Companion; + public fun (Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification$Params;)V + public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification$Params; + public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification$Params;)Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification;Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification$Params;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification; + public fun equals (Ljava/lang/Object;)Z + public fun getMethod ()Lio/modelcontextprotocol/kotlin/sdk/Method; + public fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification$Params; + public synthetic fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/NotificationParams; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class io/modelcontextprotocol/kotlin/sdk/CancelledNotification$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class io/modelcontextprotocol/kotlin/sdk/CancelledNotification$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class io/modelcontextprotocol/kotlin/sdk/CancelledNotification$Params : io/modelcontextprotocol/kotlin/sdk/NotificationParams { + public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification$Params$Companion; public fun (Lio/modelcontextprotocol/kotlin/sdk/RequestId;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;)V public synthetic fun (Lio/modelcontextprotocol/kotlin/sdk/RequestId;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/RequestId; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Lkotlinx/serialization/json/JsonObject; - public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/RequestId;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;)Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification; - public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification;Lio/modelcontextprotocol/kotlin/sdk/RequestId;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification; + public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/RequestId;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;)Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification$Params; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification$Params;Lio/modelcontextprotocol/kotlin/sdk/RequestId;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification$Params; public fun equals (Ljava/lang/Object;)Z - public fun getMethod ()Lio/modelcontextprotocol/kotlin/sdk/Method; public final fun getReason ()Ljava/lang/String; public final fun getRequestId ()Lio/modelcontextprotocol/kotlin/sdk/RequestId; public fun get_meta ()Lkotlinx/serialization/json/JsonObject; @@ -151,18 +179,18 @@ public final class io/modelcontextprotocol/kotlin/sdk/CancelledNotification : io public fun toString ()Ljava/lang/String; } -public final synthetic class io/modelcontextprotocol/kotlin/sdk/CancelledNotification$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification$$serializer; +public final synthetic class io/modelcontextprotocol/kotlin/sdk/CancelledNotification$Params$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification$Params$$serializer; public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification$Params; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification;)V + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/modelcontextprotocol/kotlin/sdk/CancelledNotification$Params;)V public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; } -public final class io/modelcontextprotocol/kotlin/sdk/CancelledNotification$Companion { +public final class io/modelcontextprotocol/kotlin/sdk/CancelledNotification$Params$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } @@ -942,7 +970,17 @@ public final class io/modelcontextprotocol/kotlin/sdk/InitializeResult$Companion public final class io/modelcontextprotocol/kotlin/sdk/InitializedNotification : io/modelcontextprotocol/kotlin/sdk/ClientNotification { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification$Companion; public fun ()V + public fun (Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params;)V + public synthetic fun (Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params; + public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params;)Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification;Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification; + public fun equals (Ljava/lang/Object;)Z public fun getMethod ()Lio/modelcontextprotocol/kotlin/sdk/Method; + public fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params; + public synthetic fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/NotificationParams; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; } public final synthetic class io/modelcontextprotocol/kotlin/sdk/InitializedNotification$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -960,6 +998,35 @@ public final class io/modelcontextprotocol/kotlin/sdk/InitializedNotification$Co public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class io/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params : io/modelcontextprotocol/kotlin/sdk/NotificationParams { + public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params$Companion; + public fun ()V + public fun (Lkotlinx/serialization/json/JsonObject;)V + public synthetic fun (Lkotlinx/serialization/json/JsonObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lkotlinx/serialization/json/JsonObject; + public final fun copy (Lkotlinx/serialization/json/JsonObject;)Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params; + public fun equals (Ljava/lang/Object;)Z + public fun get_meta ()Lkotlinx/serialization/json/JsonObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class io/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class io/modelcontextprotocol/kotlin/sdk/InitializedNotification$Params$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class io/modelcontextprotocol/kotlin/sdk/JSONRPCError : io/modelcontextprotocol/kotlin/sdk/JSONRPCMessage { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/JSONRPCError$Companion; public fun (Lio/modelcontextprotocol/kotlin/sdk/ErrorCode;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;)V @@ -1386,22 +1453,16 @@ public final class io/modelcontextprotocol/kotlin/sdk/LoggingLevel$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } -public final class io/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification : io/modelcontextprotocol/kotlin/sdk/ServerNotification, io/modelcontextprotocol/kotlin/sdk/WithMeta { +public final class io/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification : io/modelcontextprotocol/kotlin/sdk/ServerNotification { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Companion; - public fun (Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;)V - public synthetic fun (Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Lkotlinx/serialization/json/JsonObject; - public final fun component4 ()Lkotlinx/serialization/json/JsonObject; - public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;)Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification; - public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification;Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification; + public fun (Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Params;)V + public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Params; + public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Params;)Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification;Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Params;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification; public fun equals (Ljava/lang/Object;)Z - public final fun getData ()Lkotlinx/serialization/json/JsonObject; - public final fun getLevel ()Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel; - public final fun getLogger ()Ljava/lang/String; public fun getMethod ()Lio/modelcontextprotocol/kotlin/sdk/Method; - public fun get_meta ()Lkotlinx/serialization/json/JsonObject; + public fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Params; + public synthetic fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/NotificationParams; public fun hashCode ()I public fun toString ()Ljava/lang/String; } @@ -1421,6 +1482,40 @@ public final class io/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class io/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Params : io/modelcontextprotocol/kotlin/sdk/NotificationParams { + public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Params$Companion; + public fun (Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;Lkotlinx/serialization/json/JsonObject;)V + public synthetic fun (Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;Lkotlinx/serialization/json/JsonObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lkotlinx/serialization/json/JsonElement; + public final fun component4 ()Lkotlinx/serialization/json/JsonObject; + public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;Lkotlinx/serialization/json/JsonObject;)Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Params; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Params;Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel;Ljava/lang/String;Lkotlinx/serialization/json/JsonElement;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Params; + public fun equals (Ljava/lang/Object;)Z + public final fun getData ()Lkotlinx/serialization/json/JsonElement; + public final fun getLevel ()Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel; + public final fun getLogger ()Ljava/lang/String; + public fun get_meta ()Lkotlinx/serialization/json/JsonObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class io/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Params$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Params$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Params; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Params;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class io/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$Params$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class io/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$SetLevelRequest : io/modelcontextprotocol/kotlin/sdk/ClientRequest, io/modelcontextprotocol/kotlin/sdk/WithMeta { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/LoggingMessageNotification$SetLevelRequest$Companion; public fun (Lio/modelcontextprotocol/kotlin/sdk/LoggingLevel;Lkotlinx/serialization/json/JsonObject;)V @@ -1587,12 +1682,21 @@ public final class io/modelcontextprotocol/kotlin/sdk/ModelPreferences$Companion public abstract interface class io/modelcontextprotocol/kotlin/sdk/Notification { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/Notification$Companion; public abstract fun getMethod ()Lio/modelcontextprotocol/kotlin/sdk/Method; + public abstract fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/NotificationParams; } public final class io/modelcontextprotocol/kotlin/sdk/Notification$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public abstract interface class io/modelcontextprotocol/kotlin/sdk/NotificationParams : io/modelcontextprotocol/kotlin/sdk/WithMeta { + public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/NotificationParams$Companion; +} + +public final class io/modelcontextprotocol/kotlin/sdk/NotificationParams$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public abstract interface class io/modelcontextprotocol/kotlin/sdk/PaginatedRequest : io/modelcontextprotocol/kotlin/sdk/Request, io/modelcontextprotocol/kotlin/sdk/WithMeta { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/PaginatedRequest$Companion; public abstract fun getCursor ()Ljava/lang/String; @@ -1635,10 +1739,10 @@ public final class io/modelcontextprotocol/kotlin/sdk/PingRequest$Companion { public class io/modelcontextprotocol/kotlin/sdk/Progress : io/modelcontextprotocol/kotlin/sdk/ProgressBase { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/Progress$Companion; - public synthetic fun (IILjava/lang/Double;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V - public fun (ILjava/lang/Double;Ljava/lang/String;)V + public fun (DLjava/lang/Double;Ljava/lang/String;)V + public synthetic fun (IDLjava/lang/Double;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V public fun getMessage ()Ljava/lang/String; - public fun getProgress ()I + public fun getProgress ()D public fun getTotal ()Ljava/lang/Double; public static final synthetic fun write$Self (Lio/modelcontextprotocol/kotlin/sdk/Progress;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } @@ -1661,7 +1765,7 @@ public final class io/modelcontextprotocol/kotlin/sdk/Progress$Companion { public abstract interface class io/modelcontextprotocol/kotlin/sdk/ProgressBase { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/ProgressBase$Companion; public abstract fun getMessage ()Ljava/lang/String; - public abstract fun getProgress ()I + public abstract fun getProgress ()D public abstract fun getTotal ()Ljava/lang/Double; } @@ -1669,24 +1773,16 @@ public final class io/modelcontextprotocol/kotlin/sdk/ProgressBase$Companion { public final fun serializer ()Lkotlinx/serialization/KSerializer; } -public final class io/modelcontextprotocol/kotlin/sdk/ProgressNotification : io/modelcontextprotocol/kotlin/sdk/ClientNotification, io/modelcontextprotocol/kotlin/sdk/ProgressBase, io/modelcontextprotocol/kotlin/sdk/ServerNotification { +public final class io/modelcontextprotocol/kotlin/sdk/ProgressNotification : io/modelcontextprotocol/kotlin/sdk/ClientNotification, io/modelcontextprotocol/kotlin/sdk/ServerNotification { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification$Companion; - public fun (ILio/modelcontextprotocol/kotlin/sdk/RequestId;Lkotlinx/serialization/json/JsonObject;Ljava/lang/Double;Ljava/lang/String;)V - public synthetic fun (ILio/modelcontextprotocol/kotlin/sdk/RequestId;Lkotlinx/serialization/json/JsonObject;Ljava/lang/Double;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()I - public final fun component2 ()Lio/modelcontextprotocol/kotlin/sdk/RequestId; - public final fun component3 ()Lkotlinx/serialization/json/JsonObject; - public final fun component4 ()Ljava/lang/Double; - public final fun component5 ()Ljava/lang/String; - public final fun copy (ILio/modelcontextprotocol/kotlin/sdk/RequestId;Lkotlinx/serialization/json/JsonObject;Ljava/lang/Double;Ljava/lang/String;)Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification; - public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification;ILio/modelcontextprotocol/kotlin/sdk/RequestId;Lkotlinx/serialization/json/JsonObject;Ljava/lang/Double;Ljava/lang/String;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification; + public fun (Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification$Params;)V + public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification$Params; + public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification$Params;)Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification;Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification$Params;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification; public fun equals (Ljava/lang/Object;)Z - public fun getMessage ()Ljava/lang/String; public fun getMethod ()Lio/modelcontextprotocol/kotlin/sdk/Method; - public fun getProgress ()I - public final fun getProgressToken ()Lio/modelcontextprotocol/kotlin/sdk/RequestId; - public fun getTotal ()Ljava/lang/Double; - public final fun get_meta ()Lkotlinx/serialization/json/JsonObject; + public synthetic fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/NotificationParams; + public fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification$Params; public fun hashCode ()I public fun toString ()Ljava/lang/String; } @@ -1706,6 +1802,42 @@ public final class io/modelcontextprotocol/kotlin/sdk/ProgressNotification$Compa public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class io/modelcontextprotocol/kotlin/sdk/ProgressNotification$Params : io/modelcontextprotocol/kotlin/sdk/NotificationParams, io/modelcontextprotocol/kotlin/sdk/ProgressBase { + public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification$Params$Companion; + public fun (DLio/modelcontextprotocol/kotlin/sdk/RequestId;Ljava/lang/Double;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;)V + public synthetic fun (DLio/modelcontextprotocol/kotlin/sdk/RequestId;Ljava/lang/Double;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()D + public final fun component2 ()Lio/modelcontextprotocol/kotlin/sdk/RequestId; + public final fun component3 ()Ljava/lang/Double; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lkotlinx/serialization/json/JsonObject; + public final fun copy (DLio/modelcontextprotocol/kotlin/sdk/RequestId;Ljava/lang/Double;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;)Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification$Params; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification$Params;DLio/modelcontextprotocol/kotlin/sdk/RequestId;Ljava/lang/Double;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification$Params; + public fun equals (Ljava/lang/Object;)Z + public fun getMessage ()Ljava/lang/String; + public fun getProgress ()D + public final fun getProgressToken ()Lio/modelcontextprotocol/kotlin/sdk/RequestId; + public fun getTotal ()Ljava/lang/Double; + public fun get_meta ()Lkotlinx/serialization/json/JsonObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class io/modelcontextprotocol/kotlin/sdk/ProgressNotification$Params$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification$Params$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification$Params; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/modelcontextprotocol/kotlin/sdk/ProgressNotification$Params;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class io/modelcontextprotocol/kotlin/sdk/ProgressNotification$Params$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class io/modelcontextprotocol/kotlin/sdk/Prompt { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/Prompt$Companion; public fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V @@ -1763,7 +1895,17 @@ public final class io/modelcontextprotocol/kotlin/sdk/PromptArgument$Companion { public final class io/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification : io/modelcontextprotocol/kotlin/sdk/ServerNotification { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Companion; public fun ()V + public fun (Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params;)V + public synthetic fun (Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params; + public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params;)Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification;Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification; + public fun equals (Ljava/lang/Object;)Z public fun getMethod ()Lio/modelcontextprotocol/kotlin/sdk/Method; + public synthetic fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/NotificationParams; + public fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; } public final synthetic class io/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1781,6 +1923,35 @@ public final class io/modelcontextprotocol/kotlin/sdk/PromptListChangedNotificat public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class io/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params : io/modelcontextprotocol/kotlin/sdk/NotificationParams { + public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params$Companion; + public fun ()V + public fun (Lkotlinx/serialization/json/JsonObject;)V + public synthetic fun (Lkotlinx/serialization/json/JsonObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lkotlinx/serialization/json/JsonObject; + public final fun copy (Lkotlinx/serialization/json/JsonObject;)Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params; + public fun equals (Ljava/lang/Object;)Z + public fun get_meta ()Lkotlinx/serialization/json/JsonObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class io/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class io/modelcontextprotocol/kotlin/sdk/PromptListChangedNotification$Params$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class io/modelcontextprotocol/kotlin/sdk/PromptMessage { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/PromptMessage$Companion; public fun (Lio/modelcontextprotocol/kotlin/sdk/Role;Lio/modelcontextprotocol/kotlin/sdk/PromptMessageContent;)V @@ -2053,7 +2224,17 @@ public final class io/modelcontextprotocol/kotlin/sdk/ResourceContents$Companion public final class io/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification : io/modelcontextprotocol/kotlin/sdk/ServerNotification { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Companion; public fun ()V + public fun (Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params;)V + public synthetic fun (Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params; + public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params;)Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification;Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification; + public fun equals (Ljava/lang/Object;)Z public fun getMethod ()Lio/modelcontextprotocol/kotlin/sdk/Method; + public synthetic fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/NotificationParams; + public fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; } public final synthetic class io/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -2071,6 +2252,35 @@ public final class io/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotific public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class io/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params : io/modelcontextprotocol/kotlin/sdk/NotificationParams { + public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params$Companion; + public fun ()V + public fun (Lkotlinx/serialization/json/JsonObject;)V + public synthetic fun (Lkotlinx/serialization/json/JsonObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lkotlinx/serialization/json/JsonObject; + public final fun copy (Lkotlinx/serialization/json/JsonObject;)Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params; + public fun equals (Ljava/lang/Object;)Z + public fun get_meta ()Lkotlinx/serialization/json/JsonObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class io/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class io/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotification$Params$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class io/modelcontextprotocol/kotlin/sdk/ResourceReference : io/modelcontextprotocol/kotlin/sdk/Reference { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/ResourceReference$Companion; public static final field TYPE Ljava/lang/String; @@ -2133,18 +2343,16 @@ public final class io/modelcontextprotocol/kotlin/sdk/ResourceTemplate$Companion public final fun serializer ()Lkotlinx/serialization/KSerializer; } -public final class io/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification : io/modelcontextprotocol/kotlin/sdk/ServerNotification, io/modelcontextprotocol/kotlin/sdk/WithMeta { +public final class io/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification : io/modelcontextprotocol/kotlin/sdk/ServerNotification { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Companion; - public fun (Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;)V - public synthetic fun (Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Lkotlinx/serialization/json/JsonObject; - public final fun copy (Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;)Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification; - public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification; + public fun (Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params;)V + public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params; + public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params;)Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification;Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification; public fun equals (Ljava/lang/Object;)Z public fun getMethod ()Lio/modelcontextprotocol/kotlin/sdk/Method; - public final fun getUri ()Ljava/lang/String; - public fun get_meta ()Lkotlinx/serialization/json/JsonObject; + public synthetic fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/NotificationParams; + public fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params; public fun hashCode ()I public fun toString ()Ljava/lang/String; } @@ -2164,6 +2372,36 @@ public final class io/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotificatio public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class io/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params : io/modelcontextprotocol/kotlin/sdk/NotificationParams { + public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params$Companion; + public fun (Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;)V + public synthetic fun (Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lkotlinx/serialization/json/JsonObject; + public final fun copy (Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;)Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params;Ljava/lang/String;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params; + public fun equals (Ljava/lang/Object;)Z + public final fun getUri ()Ljava/lang/String; + public fun get_meta ()Lkotlinx/serialization/json/JsonObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class io/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class io/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class io/modelcontextprotocol/kotlin/sdk/Role : java/lang/Enum { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/Role$Companion; public static final field assistant Lio/modelcontextprotocol/kotlin/sdk/Role; @@ -2209,7 +2447,17 @@ public final class io/modelcontextprotocol/kotlin/sdk/Root$Companion { public final class io/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification : io/modelcontextprotocol/kotlin/sdk/ClientNotification { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Companion; public fun ()V + public fun (Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params;)V + public synthetic fun (Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params; + public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params;)Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification;Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification; + public fun equals (Ljava/lang/Object;)Z public fun getMethod ()Lio/modelcontextprotocol/kotlin/sdk/Method; + public synthetic fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/NotificationParams; + public fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; } public final synthetic class io/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -2227,6 +2475,35 @@ public final class io/modelcontextprotocol/kotlin/sdk/RootsListChangedNotificati public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class io/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params : io/modelcontextprotocol/kotlin/sdk/NotificationParams { + public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params$Companion; + public fun ()V + public fun (Lkotlinx/serialization/json/JsonObject;)V + public synthetic fun (Lkotlinx/serialization/json/JsonObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lkotlinx/serialization/json/JsonObject; + public final fun copy (Lkotlinx/serialization/json/JsonObject;)Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params; + public fun equals (Ljava/lang/Object;)Z + public fun get_meta ()Lkotlinx/serialization/json/JsonObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class io/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class io/modelcontextprotocol/kotlin/sdk/RootsListChangedNotification$Params$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class io/modelcontextprotocol/kotlin/sdk/SamplingMessage { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/SamplingMessage$Companion; public fun (Lio/modelcontextprotocol/kotlin/sdk/Role;Lio/modelcontextprotocol/kotlin/sdk/PromptMessageContentMultimodal;)V @@ -2696,7 +2973,17 @@ public final class io/modelcontextprotocol/kotlin/sdk/ToolAnnotations$Companion public final class io/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification : io/modelcontextprotocol/kotlin/sdk/ServerNotification { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Companion; public fun ()V + public fun (Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params;)V + public synthetic fun (Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params; + public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params;)Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification;Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification; + public fun equals (Ljava/lang/Object;)Z public fun getMethod ()Lio/modelcontextprotocol/kotlin/sdk/Method; + public synthetic fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/NotificationParams; + public fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; } public final synthetic class io/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -2714,6 +3001,35 @@ public final class io/modelcontextprotocol/kotlin/sdk/ToolListChangedNotificatio public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class io/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params : io/modelcontextprotocol/kotlin/sdk/NotificationParams { + public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params$Companion; + public fun ()V + public fun (Lkotlinx/serialization/json/JsonObject;)V + public synthetic fun (Lkotlinx/serialization/json/JsonObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lkotlinx/serialization/json/JsonObject; + public final fun copy (Lkotlinx/serialization/json/JsonObject;)Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params;Lkotlinx/serialization/json/JsonObject;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params; + public fun equals (Ljava/lang/Object;)Z + public fun get_meta ()Lkotlinx/serialization/json/JsonObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class io/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params;)V + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class io/modelcontextprotocol/kotlin/sdk/ToolListChangedNotification$Params$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + public final class io/modelcontextprotocol/kotlin/sdk/TypesKt { public static final field JSONRPC_VERSION Ljava/lang/String; public static final field LATEST_PROTOCOL_VERSION Ljava/lang/String; @@ -2756,12 +3072,15 @@ public final class io/modelcontextprotocol/kotlin/sdk/UnknownContent$Companion { public final class io/modelcontextprotocol/kotlin/sdk/UnknownMethodRequestOrNotification : io/modelcontextprotocol/kotlin/sdk/ClientNotification, io/modelcontextprotocol/kotlin/sdk/ClientRequest, io/modelcontextprotocol/kotlin/sdk/ServerNotification, io/modelcontextprotocol/kotlin/sdk/ServerRequest { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/UnknownMethodRequestOrNotification$Companion; - public fun (Lio/modelcontextprotocol/kotlin/sdk/Method;)V + public fun (Lio/modelcontextprotocol/kotlin/sdk/Method;Lio/modelcontextprotocol/kotlin/sdk/NotificationParams;)V + public synthetic fun (Lio/modelcontextprotocol/kotlin/sdk/Method;Lio/modelcontextprotocol/kotlin/sdk/NotificationParams;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lio/modelcontextprotocol/kotlin/sdk/Method; - public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/Method;)Lio/modelcontextprotocol/kotlin/sdk/UnknownMethodRequestOrNotification; - public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/UnknownMethodRequestOrNotification;Lio/modelcontextprotocol/kotlin/sdk/Method;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/UnknownMethodRequestOrNotification; + public final fun component2 ()Lio/modelcontextprotocol/kotlin/sdk/NotificationParams; + public final fun copy (Lio/modelcontextprotocol/kotlin/sdk/Method;Lio/modelcontextprotocol/kotlin/sdk/NotificationParams;)Lio/modelcontextprotocol/kotlin/sdk/UnknownMethodRequestOrNotification; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/UnknownMethodRequestOrNotification;Lio/modelcontextprotocol/kotlin/sdk/Method;Lio/modelcontextprotocol/kotlin/sdk/NotificationParams;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/UnknownMethodRequestOrNotification; public fun equals (Ljava/lang/Object;)Z public fun getMethod ()Lio/modelcontextprotocol/kotlin/sdk/Method; + public fun getParams ()Lio/modelcontextprotocol/kotlin/sdk/NotificationParams; public fun hashCode ()I public fun toString ()Ljava/lang/String; } diff --git a/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/server/Server.kt b/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/server/Server.kt index 1230b895..f0655fd9 100644 --- a/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/server/Server.kt +++ b/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/server/Server.kt @@ -558,7 +558,7 @@ public open class Server( * @param params The logging message notification parameters. */ public suspend fun sendLoggingMessage(params: LoggingMessageNotification) { - logger.trace { "Sending logging message: ${params.data}" } + logger.trace { "Sending logging message: ${params.params.data}" } notification(params) } @@ -568,7 +568,7 @@ public open class Server( * @param params Details of the updated resource. */ public suspend fun sendResourceUpdated(params: ResourceUpdatedNotification) { - logger.debug { "Sending resource updated notification for: ${params.uri}" } + logger.debug { "Sending resource updated notification for: ${params.params.uri}" } notification(params) } diff --git a/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/shared/Protocol.kt b/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/shared/Protocol.kt index 06ce6baa..45c07b64 100644 --- a/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/shared/Protocol.kt +++ b/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/shared/Protocol.kt @@ -292,11 +292,11 @@ public abstract class Protocol( } private fun onProgress(notification: ProgressNotification) { - LOGGER.trace { "Received progress notification: token=${notification.progressToken}, progress=${notification.progress}/${notification.total}" } - val progress = notification.progress - val total = notification.total - val message = notification.message - val progressToken = notification.progressToken + LOGGER.trace { "Received progress notification: token=${notification.params.progressToken}, progress=${notification.params.progress}/${notification.params.total}" } + val progress = notification.params.progress + val total = notification.params.total + val message = notification.params.message + val progressToken = notification.params.progressToken val handler = _progressHandlers.value[progressToken] if (handler == null) { @@ -424,7 +424,12 @@ public abstract class Protocol( _responseHandlers.update { current -> current.remove(messageId) } _progressHandlers.update { current -> current.remove(messageId) } - val notification = CancelledNotification(requestId = messageId, reason = reason.message ?: "Unknown") + val notification = CancelledNotification( + params = CancelledNotification.Params( + requestId = messageId, + reason = reason.message ?: "Unknown" + ) + ) val serialized = JSONRPCNotification( notification.method.value, diff --git a/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types.kt b/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types.kt index d5b45f6f..077b3f63 100644 --- a/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types.kt +++ b/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types.kt @@ -9,6 +9,7 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.json.JsonElement import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonPrimitive +import kotlinx.serialization.json.buildJsonObject import kotlinx.serialization.json.decodeFromJsonElement import kotlinx.serialization.json.encodeToJsonElement import kotlinx.serialization.json.jsonObject @@ -125,10 +126,11 @@ public sealed interface Request { * @return The JSON-RPC request representation. */ internal fun Request.toJSON(): JSONRPCRequest { - val encoded = JsonObject(McpJson.encodeToJsonElement(this).jsonObject.minus("method")) + val fullJson = McpJson.encodeToJsonElement(this).jsonObject + val params = JsonObject(fullJson.filterKeys { it != "method" }) return JSONRPCRequest( method = method.value, - params = encoded, + params = params, jsonrpc = JSONRPC_VERSION, ) } @@ -139,8 +141,7 @@ internal fun Request.toJSON(): JSONRPCRequest { * @return The decoded [Request] or null */ internal fun JSONRPCRequest.fromJSON(): Request { - val requestData = JsonObject(params.jsonObject.plus("method" to JsonPrimitive(method))) - + val requestData = JsonObject(params.jsonObject + ("method" to JsonPrimitive(method))) val deserializer = selectRequestDeserializer(method) return McpJson.decodeFromJsonElement(deserializer, requestData) } @@ -159,6 +160,7 @@ public open class CustomRequest(override val method: Method) : Request @Serializable(with = NotificationPolymorphicSerializer::class) public sealed interface Notification { public val method: Method + public val params: NotificationParams? } /** @@ -167,10 +169,9 @@ public sealed interface Notification { * @return The JSON-RPC notification representation. */ internal fun Notification.toJSON(): JSONRPCNotification { - val encoded = JsonObject(McpJson.encodeToJsonElement(this).jsonObject.minus("method")) return JSONRPCNotification( - method.value, - params = encoded + method = method.value, + params = McpJson.encodeToJsonElement(params), ) } @@ -180,7 +181,10 @@ internal fun Notification.toJSON(): JSONRPCNotification { * @return The decoded [Notification]. */ internal fun JSONRPCNotification.fromJSON(): Notification { - val data = JsonObject(params.jsonObject.plus("method" to JsonPrimitive(method))) + val data = buildJsonObject { + put("method", JsonPrimitive(method)) + put("params", params) + } return McpJson.decodeFromJsonElement(data) } @@ -295,6 +299,12 @@ public data class JSONRPCError( val data: JsonObject = EmptyJsonObject, ) : JSONRPCMessage +/** + * Base interface for notification parameters with optional metadata. + */ +@Serializable +public sealed interface NotificationParams : WithMeta + /* Cancellation */ /** * This notification can be sent by either side to indicate that it is cancelling a previously issued request. @@ -307,19 +317,24 @@ public data class JSONRPCError( */ @Serializable public data class CancelledNotification( - /** - * The ID of the request to cancel. - * - * It MUST correspond to the ID of a request previously issued in the same direction. - */ - val requestId: RequestId, - /** - * An optional string describing the reason for the cancellation. This MAY be logged or presented to the user. - */ - val reason: String?, - override val _meta: JsonObject = EmptyJsonObject, -) : ClientNotification, ServerNotification, WithMeta { + override val params: Params, +) : ClientNotification, ServerNotification { override val method: Method = Method.Defined.NotificationsCancelled + + @Serializable + public data class Params( + /** + * The ID of the request to cancel. + * + * It MUST correspond to the ID of a request previously issued in the same direction. + */ + val requestId: RequestId, + /** + * An optional string describing the reason for the cancellation. This MAY be logged or presented to the user. + */ + val reason: String? = null, + override val _meta: JsonObject = EmptyJsonObject, + ) : NotificationParams } /* Initialization */ @@ -408,7 +423,7 @@ public sealed interface ServerResult : RequestResult */ @Serializable public data class UnknownMethodRequestOrNotification( - override val method: Method, + override val method: Method, override val params: NotificationParams? = null, ) : ClientNotification, ClientRequest, ServerNotification, ServerRequest /** @@ -506,8 +521,15 @@ public data class InitializeResult( * This notification is sent from the client to the server after initialization has finished. */ @Serializable -public class InitializedNotification : ClientNotification { +public data class InitializedNotification( + override val params: Params = Params(), +) : ClientNotification { override val method: Method = Method.Defined.NotificationsInitialized + + @Serializable + public data class Params( + override val _meta: JsonObject = EmptyJsonObject, + ) : NotificationParams } /* Ping */ @@ -528,7 +550,7 @@ public sealed interface ProgressBase { /** * The progress thus far. This should increase every time progress is made, even if the total is unknown. */ - public val progress: Int + public val progress: Double /** * Total number of items to a process (or total progress required), if known. @@ -553,7 +575,7 @@ public open class Progress( /** * The progress thus far. This should increase every time progress is made, even if the total is unknown. */ - override val progress: Int, + override val progress: Double, /** * Total number of items to a process (or total progress required), if known. @@ -571,18 +593,32 @@ public open class Progress( */ @Serializable public data class ProgressNotification( - override val progress: Int, - /** - * The progress token, - * which was given in the initial request, - * used to associate this notification with the request that is proceeding. - */ - public val progressToken: ProgressToken, - @Suppress("PropertyName") val _meta: JsonObject = EmptyJsonObject, - override val total: Double?, - override val message: String?, -) : ClientNotification, ServerNotification, ProgressBase { + override val params: Params, +) : ClientNotification, ServerNotification { override val method: Method = Method.Defined.NotificationsProgress + + @Serializable + public data class Params( + /** + * The progress thus far. This should increase every time progress is made, even if the total is unknown. + */ + override val progress: Double, + /** + * The progress token, + * which was given in the initial request, + * used to associate this notification with the request that is proceeding. + */ + val progressToken: ProgressToken, + /** + * Total number of items to process (or total progress required), if known. + */ + override val total: Double? = null, + /** + * An optional message describing the current progress. + */ + override val message: String? = null, + override val _meta: JsonObject = EmptyJsonObject, + ) : NotificationParams, ProgressBase } /* Pagination */ @@ -784,8 +820,15 @@ public class ReadResourceResult( * Servers may issue this without any previous subscription from the client. */ @Serializable -public class ResourceListChangedNotification : ServerNotification { +public data class ResourceListChangedNotification( + override val params: Params = Params(), +) : ServerNotification { override val method: Method = Method.Defined.NotificationsResourcesListChanged + + @Serializable + public data class Params( + override val _meta: JsonObject = EmptyJsonObject, + ) : NotificationParams } /** @@ -821,13 +864,18 @@ public data class UnsubscribeRequest( */ @Serializable public data class ResourceUpdatedNotification( - /** - * The URI of the resource that has been updated. This might be a sub-resource of the one that the client actually subscribed to. - */ - val uri: String, - override val _meta: JsonObject = EmptyJsonObject, -) : ServerNotification, WithMeta { + override val params: Params, +) : ServerNotification { override val method: Method = Method.Defined.NotificationsResourcesUpdated + + @Serializable + public data class Params( + /** + * The URI of the resource that has been updated. This might be a sub-resource of the one that the client actually subscribed to. + */ + val uri: String, + override val _meta: JsonObject = EmptyJsonObject, + ) : NotificationParams } /* Prompts */ @@ -1044,8 +1092,15 @@ public class GetPromptResult( * Servers may issue this without any previous subscription from the client. */ @Serializable -public class PromptListChangedNotification : ServerNotification { +public data class PromptListChangedNotification( + override val params: Params = Params(), +) : ServerNotification { override val method: Method = Method.Defined.NotificationsPromptsListChanged + + @Serializable + public data class Params( + override val _meta: JsonObject = EmptyJsonObject, + ) : NotificationParams } /* Tools */ @@ -1223,8 +1278,15 @@ public data class CallToolRequest( * Servers may issue this without any previous subscription from the client. */ @Serializable -public class ToolListChangedNotification : ServerNotification { +public data class ToolListChangedNotification( + override val params: Params = Params(), +) : ServerNotification { override val method: Method = Method.Defined.NotificationsToolsListChanged + + @Serializable + public data class Params( + override val _meta: JsonObject = EmptyJsonObject, + ) : NotificationParams } /* Logging */ @@ -1252,22 +1314,27 @@ public enum class LoggingLevel { */ @Serializable public data class LoggingMessageNotification( - /** - * The severity of this log message. - */ - val level: LoggingLevel, + override val params: Params, +) : ServerNotification { + override val method: Method = Method.Defined.NotificationsMessage - /** - * An optional name of the logger issuing this message. - */ - val logger: String? = null, + @Serializable + public data class Params( + /** + * The severity of this log message. + */ + val level: LoggingLevel, + /** + * An optional name of the logger issuing this message. + */ + val logger: String? = null, + /** + * The data to be logged, such as a string message or an object. Any JSON serializable type is allowed here. + */ + val data: JsonElement, + override val _meta: JsonObject = EmptyJsonObject, + ) : NotificationParams - /** - * The data to be logged, such as a string message or an object. Any JSON serializable type is allowed here. - */ - val data: JsonObject = EmptyJsonObject, - override val _meta: JsonObject = EmptyJsonObject, -) : ServerNotification, WithMeta { /** * A request from the client to the server to enable or adjust logging. */ @@ -1281,8 +1348,6 @@ public data class LoggingMessageNotification( ) : ClientRequest, WithMeta { override val method: Method = Method.Defined.LoggingSetLevel } - - override val method: Method = Method.Defined.NotificationsMessage } /* Sampling */ @@ -1578,8 +1643,15 @@ public class ListRootsResult( * A notification from the client to the server, informing it that the list of roots has changed. */ @Serializable -public class RootsListChangedNotification : ClientNotification { +public data class RootsListChangedNotification( + override val params: Params = Params(), +) : ClientNotification { override val method: Method = Method.Defined.NotificationsRootsListChanged + + @Serializable + public data class Params( + override val _meta: JsonObject = EmptyJsonObject, + ) : NotificationParams } /** diff --git a/src/commonTest/kotlin/AudioContentSerializationTest.kt b/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/AudioContentSerializationTest.kt similarity index 95% rename from src/commonTest/kotlin/AudioContentSerializationTest.kt rename to src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/AudioContentSerializationTest.kt index 6745972c..5b2d8e2b 100644 --- a/src/commonTest/kotlin/AudioContentSerializationTest.kt +++ b/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/AudioContentSerializationTest.kt @@ -2,7 +2,6 @@ package io.modelcontextprotocol.kotlin.sdk import io.kotest.assertions.json.shouldEqualJson import io.modelcontextprotocol.kotlin.sdk.shared.McpJson -import kotlinx.serialization.encodeToString import kotlin.test.Test import kotlin.test.assertEquals diff --git a/src/commonTest/kotlin/CallToolResultUtilsTest.kt b/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/CallToolResultUtilsTest.kt similarity index 100% rename from src/commonTest/kotlin/CallToolResultUtilsTest.kt rename to src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/CallToolResultUtilsTest.kt diff --git a/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/TypesTest.kt b/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/TypesTest.kt new file mode 100644 index 00000000..c87d2bde --- /dev/null +++ b/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/TypesTest.kt @@ -0,0 +1,378 @@ +package io.modelcontextprotocol.kotlin.sdk + +import io.modelcontextprotocol.kotlin.sdk.shared.McpJson +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertIs +import kotlin.test.assertNotEquals +import kotlin.test.assertTrue + +class TypesTest { + + @Test + fun `should have correct latest protocol version`() { + assertNotEquals("", LATEST_PROTOCOL_VERSION) + assertEquals("2024-11-05", LATEST_PROTOCOL_VERSION) + } + + @Test + fun `should have correct supported protocol versions`() { + assertIs>(SUPPORTED_PROTOCOL_VERSIONS) + assertTrue(SUPPORTED_PROTOCOL_VERSIONS.contains(LATEST_PROTOCOL_VERSION)) + assertTrue(SUPPORTED_PROTOCOL_VERSIONS.contains("2024-10-07")) + assertEquals(2, SUPPORTED_PROTOCOL_VERSIONS.size) + } + + @Test + fun `should validate JSONRPC version constant`() { + assertEquals("2.0", JSONRPC_VERSION) + } + + // Reference Tests + @Test + fun `should validate ResourceReference`() { + val resourceRef = ResourceReference(uri = "file:///path/to/file.txt") + + assertEquals("ref/resource", resourceRef.type) + assertEquals("file:///path/to/file.txt", resourceRef.uri) + } + + @Test + fun `should serialize and deserialize ResourceReference correctly`() { + val resourceRef = ResourceReference(uri = "https://example.com/resource") + + val json = McpJson.encodeToString(resourceRef) + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("ref/resource", decoded.type) + assertEquals("https://example.com/resource", decoded.uri) + } + + @Test + fun `should validate PromptReference`() { + val promptRef = PromptReference(name = "greeting") + + assertEquals("ref/prompt", promptRef.type) + assertEquals("greeting", promptRef.name) + } + + @Test + fun `should serialize and deserialize PromptReference correctly`() { + val promptRef = PromptReference(name = "test-prompt") + + val json = McpJson.encodeToString(promptRef) + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("ref/prompt", decoded.type) + assertEquals("test-prompt", decoded.name) + } + + @Test + fun `should handle UnknownReference for invalid type`() { + val invalidJson = """{"type": "invalid_type"}""" + + val decoded = McpJson.decodeFromString(invalidJson) + + assertIs(decoded) + assertEquals("invalid_type", decoded.type) + } + + // PromptMessageContent Tests + @Test + fun `should validate text content`() { + val textContent = TextContent(text = "Hello, world!") + + assertEquals("text", textContent.type) + assertEquals("Hello, world!", textContent.text) + } + + @Test + fun `should serialize and deserialize text content correctly`() { + val textContent = TextContent(text = "Test message") + + val json = McpJson.encodeToString(textContent) + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("text", decoded.type) + assertEquals("Test message", decoded.text) + } + + @Test + fun `should validate image content`() { + val imageContent = ImageContent( + data = "aGVsbG8=", // base64 encoded "hello" + mimeType = "image/png" + ) + + assertEquals("image", imageContent.type) + assertEquals("aGVsbG8=", imageContent.data) + assertEquals("image/png", imageContent.mimeType) + } + + @Test + fun `should serialize and deserialize image content correctly`() { + val imageContent = ImageContent( + data = "dGVzdA==", // base64 encoded "test" + mimeType = "image/jpeg" + ) + + val json = McpJson.encodeToString(imageContent) + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("image", decoded.type) + assertEquals("dGVzdA==", decoded.data) + assertEquals("image/jpeg", decoded.mimeType) + } + + @Test + fun `should validate audio content`() { + val audioContent = AudioContent( + data = "aGVsbG8=", // base64 encoded "hello" + mimeType = "audio/mp3" + ) + + assertEquals("audio", audioContent.type) + assertEquals("aGVsbG8=", audioContent.data) + assertEquals("audio/mp3", audioContent.mimeType) + } + + @Test + fun `should serialize and deserialize audio content correctly`() { + val audioContent = AudioContent( + data = "YXVkaW8=", // base64 encoded "audio" + mimeType = "audio/wav" + ) + + val json = McpJson.encodeToString(audioContent) + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("audio", decoded.type) + assertEquals("YXVkaW8=", decoded.data) + assertEquals("audio/wav", decoded.mimeType) + } + + @Test + fun `should validate embedded resource content`() { + val resource = TextResourceContents( + text = "File contents", + uri = "file:///path/to/file.txt", + mimeType = "text/plain" + ) + val embeddedResource = EmbeddedResource(resource = resource) + + assertEquals("resource", embeddedResource.type) + assertEquals(resource, embeddedResource.resource) + } + + @Test + fun `should serialize and deserialize embedded resource content correctly`() { + val resource = BlobResourceContents( + blob = "YmluYXJ5ZGF0YQ==", + uri = "file:///path/to/binary.dat", + mimeType = "application/octet-stream" + ) + val embeddedResource = EmbeddedResource(resource = resource) + + val json = McpJson.encodeToString(embeddedResource) + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("resource", decoded.type) + assertIs(decoded.resource) + val decodedBlob = decoded.resource + assertEquals("YmluYXJ5ZGF0YQ==", decodedBlob.blob) + assertEquals("file:///path/to/binary.dat", decodedBlob.uri) + assertEquals("application/octet-stream", decodedBlob.mimeType) + } + + @Test + fun `should handle unknown content type`() { + val unknownJson = """{"type": "unknown_type"}""" + + val decoded = McpJson.decodeFromString(unknownJson) + + assertIs(decoded) + assertEquals("unknown_type", decoded.type) + } + + // PromptMessage Tests + @Test + fun `should validate prompt message with text content`() { + val textContent = TextContent(text = "Hello, assistant!") + val promptMessage = PromptMessage( + role = Role.user, + content = textContent + ) + + assertEquals(Role.user, promptMessage.role) + assertEquals(textContent, promptMessage.content) + assertEquals("text", promptMessage.content.type) + } + + @Test + fun `should validate prompt message with embedded resource`() { + val resource = TextResourceContents( + text = "Primary application entry point", + uri = "file:///project/src/main.rs", + mimeType = "text/x-rust" + ) + val embeddedResource = EmbeddedResource(resource = resource) + val promptMessage = PromptMessage( + role = Role.assistant, + content = embeddedResource + ) + + assertEquals(Role.assistant, promptMessage.role) + assertEquals("resource", promptMessage.content.type) + val content = promptMessage.content as EmbeddedResource + val textResource = content.resource as TextResourceContents + assertEquals("Primary application entry point", textResource.text) + assertEquals("file:///project/src/main.rs", textResource.uri) + assertEquals("text/x-rust", textResource.mimeType) + } + + @Test + fun `should serialize and deserialize prompt message correctly`() { + val imageContent = ImageContent( + data = "aW1hZ2VkYXRh", // base64 encoded "imagedata" + mimeType = "image/png" + ) + val promptMessage = PromptMessage( + role = Role.assistant, + content = imageContent + ) + + val json = McpJson.encodeToString(promptMessage) + val decoded = McpJson.decodeFromString(json) + + assertEquals(Role.assistant, decoded.role) + assertIs(decoded.content) + val decodedContent = decoded.content + assertEquals("aW1hZ2VkYXRh", decodedContent.data) + assertEquals("image/png", decodedContent.mimeType) + } + + // CallToolResult Tests + @Test + fun `should validate tool result with multiple content types`() { + val toolResult = CallToolResult( + content = listOf( + TextContent(text = "Found the following files:"), + EmbeddedResource( + resource = TextResourceContents( + text = "fn main() {}", + uri = "file:///project/src/main.rs", + mimeType = "text/x-rust" + ) + ), + EmbeddedResource( + resource = TextResourceContents( + text = "pub mod lib;", + uri = "file:///project/src/lib.rs", + mimeType = "text/x-rust" + ) + ) + ) + ) + + assertEquals(3, toolResult.content.size) + assertEquals("text", toolResult.content[0].type) + assertEquals("resource", toolResult.content[1].type) + assertEquals("resource", toolResult.content[2].type) + assertEquals(false, toolResult.isError) + } + + @Test + fun `should validate empty content array with default`() { + val toolResult = CallToolResult(content = emptyList()) + + assertEquals(0, toolResult.content.size) + assertEquals(false, toolResult.isError) + } + + @Test + fun `should serialize and deserialize CallToolResult correctly`() { + val toolResult = CallToolResult( + content = listOf( + TextContent(text = "Operation completed"), + ImageContent(data = "aW1hZ2U=", mimeType = "image/png") + ), + isError = false + ) + + val json = McpJson.encodeToString(toolResult) + val decoded = McpJson.decodeFromString(json) + + assertEquals(2, decoded.content.size) + assertIs(decoded.content[0]) + assertIs(decoded.content[1]) + assertEquals(false, decoded.isError) + } + + // CompleteRequest Tests + @Test + fun `should validate CompleteRequest with prompt reference`() { + val request = CompleteRequest( + ref = PromptReference(name = "greeting"), + argument = CompleteRequest.Argument(name = "name", value = "A") + ) + + assertEquals("completion/complete", request.method.value) + assertIs(request.ref) + val promptRef = request.ref + assertEquals("greeting", promptRef.name) + assertEquals("name", request.argument.name) + assertEquals("A", request.argument.value) + } + + @Test + fun `should validate CompleteRequest with resource reference`() { + val request = CompleteRequest( + ref = ResourceReference(uri = "github://repos/{owner}/{repo}"), + argument = CompleteRequest.Argument(name = "repo", value = "t") + ) + + assertEquals("completion/complete", request.method.value) + assertIs(request.ref) + val resourceRef = request.ref + assertEquals("github://repos/{owner}/{repo}", resourceRef.uri) + assertEquals("repo", request.argument.name) + assertEquals("t", request.argument.value) + } + + @Test + fun `should serialize and deserialize CompleteRequest correctly`() { + val request = CompleteRequest( + ref = PromptReference(name = "test"), + argument = CompleteRequest.Argument(name = "arg", value = "") + ) + + val json = McpJson.encodeToString(request) + val decoded = McpJson.decodeFromString(json) + + assertEquals("completion/complete", decoded.method.value) + assertIs(decoded.ref) + val promptRef = decoded.ref + assertEquals("test", promptRef.name) + assertEquals("arg", decoded.argument.name) + assertEquals("", decoded.argument.value) + } + + @Test + fun `should validate CompleteRequest with complex URIs`() { + val request = CompleteRequest( + ref = ResourceReference(uri = "api://v1/{tenant}/{resource}/{id}"), + argument = CompleteRequest.Argument(name = "id", value = "123") + ) + + val resourceRef = request.ref as ResourceReference + assertEquals("api://v1/{tenant}/{resource}/{id}", resourceRef.uri) + assertEquals("id", request.argument.name) + assertEquals("123", request.argument.value) + } +} \ No newline at end of file diff --git a/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/TypesUtilTest.kt b/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/TypesUtilTest.kt new file mode 100644 index 00000000..444e4180 --- /dev/null +++ b/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/TypesUtilTest.kt @@ -0,0 +1,252 @@ +package io.modelcontextprotocol.kotlin.sdk + +import io.modelcontextprotocol.kotlin.sdk.shared.McpJson +import kotlinx.serialization.json.buildJsonObject +import kotlinx.serialization.json.put +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertIs + +class TypesUtilTest { + + // ErrorCode Serializer Tests + @Test + fun `should serialize and deserialize ErrorCode Defined correctly`() { + val errorCode: ErrorCode = ErrorCode.Defined.InvalidRequest + + val json = McpJson.encodeToString(errorCode) + val decoded = McpJson.decodeFromString(json) + + assertEquals(ErrorCode.Defined.InvalidRequest, decoded) + assertEquals(-32600, decoded.code) + } + + @Test + fun `should serialize and deserialize ErrorCode Unknown correctly`() { + val errorCode: ErrorCode = ErrorCode.Unknown(1001) + + val json = McpJson.encodeToString(errorCode) + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals(1001, decoded.code) + } + + // Method Serializer Tests + @Test + fun `should serialize and deserialize Method Defined correctly`() { + val method: Method = Method.Defined.Initialize + + val json = McpJson.encodeToString(method) + val decoded = McpJson.decodeFromString(json) + + assertEquals(Method.Defined.Initialize, decoded) + assertEquals("initialize", decoded.value) + } + + @Test + fun `should serialize and deserialize Method Custom correctly`() { + val method: Method = Method.Custom("custom/method") + + val json = McpJson.encodeToString(method) + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("custom/method", decoded.value) + } + + // StopReason Serializer Tests + @Test + fun `should serialize and deserialize StopReason EndTurn correctly`() { + val stopReason: StopReason = StopReason.EndTurn + + val json = McpJson.encodeToString(stopReason) + val decoded = McpJson.decodeFromString(json) + + assertEquals(StopReason.EndTurn, decoded) + assertEquals("endTurn", decoded.value) + } + + @Test + fun `should serialize and deserialize StopReason Other correctly`() { + val stopReason: StopReason = StopReason.Other("custom_reason") + + val json = McpJson.encodeToString(stopReason) + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("custom_reason", decoded.value) + } + + // Reference Polymorphic Serializer Tests + @Test + fun `should deserialize ResourceReference polymorphically`() { + val json = """{"type": "ref/resource", "uri": "file:///test.txt"}""" + + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("ref/resource", decoded.type) + assertEquals("file:///test.txt", decoded.uri) + } + + @Test + fun `should deserialize PromptReference polymorphically`() { + val json = """{"type": "ref/prompt", "name": "test-prompt"}""" + + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("ref/prompt", decoded.type) + assertEquals("test-prompt", decoded.name) + } + + @Test + fun `should deserialize UnknownReference for invalid type`() { + val json = """{"type": "unknown_ref", "data": "test"}""" + + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("unknown_ref", decoded.type) + } + + // PromptMessageContent Polymorphic Serializer Tests + @Test + fun `should deserialize TextContent polymorphically`() { + val json = """{"type": "text", "text": "Hello world"}""" + + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("text", decoded.type) + assertEquals("Hello world", decoded.text) + } + + @Test + fun `should deserialize ImageContent polymorphically`() { + val json = """{"type": "image", "data": "aW1hZ2U=", "mimeType": "image/png"}""" + + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("image", decoded.type) + assertEquals("aW1hZ2U=", decoded.data) + assertEquals("image/png", decoded.mimeType) + } + + @Test + fun `should deserialize AudioContent polymorphically`() { + val json = """{"type": "audio", "data": "YXVkaW8=", "mimeType": "audio/mp3"}""" + + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("audio", decoded.type) + assertEquals("YXVkaW8=", decoded.data) + assertEquals("audio/mp3", decoded.mimeType) + } + + @Test + fun `should deserialize EmbeddedResource polymorphically`() { + val json = + """{"type": "resource", "resource": {"uri": "file:///test.txt", "mimeType": "text/plain", "text": "content"}}""" + + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("resource", decoded.type) + assertIs(decoded.resource) + val textResource = decoded.resource + assertEquals("file:///test.txt", textResource.uri) + assertEquals("content", textResource.text) + } + + // ResourceContents Polymorphic Serializer Tests + @Test + fun `should deserialize TextResourceContents polymorphically`() { + val json = """{"uri": "file:///test.txt", "mimeType": "text/plain", "text": "file content"}""" + + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("file:///test.txt", decoded.uri) + assertEquals("file content", decoded.text) + assertEquals("text/plain", decoded.mimeType) + } + + @Test + fun `should deserialize BlobResourceContents polymorphically`() { + val json = """{"uri": "file:///binary.dat", "mimeType": "application/octet-stream", "blob": "YmluYXJ5"}""" + + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("file:///binary.dat", decoded.uri) + assertEquals("YmluYXJ5", decoded.blob) + assertEquals("application/octet-stream", decoded.mimeType) + } + + @Test + fun `should deserialize UnknownResourceContents for missing fields`() { + val json = """{"uri": "file:///unknown.dat", "mimeType": "unknown/type"}""" + + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("file:///unknown.dat", decoded.uri) + assertEquals("unknown/type", decoded.mimeType) + } + + // RequestId Serializer Tests + @Test + fun `should serialize and deserialize RequestId StringId correctly`() { + val requestId: RequestId = RequestId.StringId("test-id") + + val json = McpJson.encodeToString(requestId) + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals("test-id", decoded.value) + } + + @Test + fun `should serialize and deserialize RequestId NumberId correctly`() { + val requestId: RequestId = RequestId.NumberId(42L) + + val json = McpJson.encodeToString(requestId) + val decoded = McpJson.decodeFromString(json) + + assertIs(decoded) + assertEquals(42L, decoded.value) + } + + // Utility Functions Tests + @Test + fun `should create CallToolResult ok correctly`() { + val result = CallToolResult.ok("Success message") + + assertEquals(listOf(TextContent("Success message")), result.content) + assertEquals(false, result.isError) + assertEquals(EmptyJsonObject, result._meta) + } + + @Test + fun `should create CallToolResult error correctly`() { + val result = CallToolResult.error("Error message") + + assertEquals(listOf(TextContent("Error message")), result.content) + assertEquals(true, result.isError) + assertEquals(EmptyJsonObject, result._meta) + } + + @Test + fun `should create CallToolResult with custom meta`() { + val meta = buildJsonObject { put("custom", "value") } + val result = CallToolResult.ok("Success", meta) + + assertEquals(listOf(TextContent("Success")), result.content) + assertEquals(false, result.isError) + assertEquals(meta, result._meta) + } +} \ No newline at end of file diff --git a/src/jvmTest/kotlin/client/ClientIntegrationTest.kt b/src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/ClientIntegrationTest.kt similarity index 88% rename from src/jvmTest/kotlin/client/ClientIntegrationTest.kt rename to src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/ClientIntegrationTest.kt index 5eee8179..3702ce52 100644 --- a/src/jvmTest/kotlin/client/ClientIntegrationTest.kt +++ b/src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/ClientIntegrationTest.kt @@ -1,9 +1,7 @@ -package client +package io.modelcontextprotocol.kotlin.sdk.client import io.modelcontextprotocol.kotlin.sdk.Implementation import io.modelcontextprotocol.kotlin.sdk.ListToolsResult -import io.modelcontextprotocol.kotlin.sdk.client.Client -import io.modelcontextprotocol.kotlin.sdk.client.StdioClientTransport import kotlinx.coroutines.test.runTest import kotlinx.io.asSink import kotlinx.io.asSource diff --git a/src/jvmTest/kotlin/client/ClientTest.kt b/src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/ClientTest.kt similarity index 98% rename from src/jvmTest/kotlin/client/ClientTest.kt rename to src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/ClientTest.kt index 91bd12de..1aadbc74 100644 --- a/src/jvmTest/kotlin/client/ClientTest.kt +++ b/src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/ClientTest.kt @@ -1,4 +1,4 @@ -package client +package io.modelcontextprotocol.kotlin.sdk.client import io.mockk.coEvery import io.mockk.spyk @@ -31,17 +31,17 @@ import io.modelcontextprotocol.kotlin.sdk.SUPPORTED_PROTOCOL_VERSIONS import io.modelcontextprotocol.kotlin.sdk.ServerCapabilities import io.modelcontextprotocol.kotlin.sdk.TextContent import io.modelcontextprotocol.kotlin.sdk.Tool -import io.modelcontextprotocol.kotlin.sdk.client.Client -import io.modelcontextprotocol.kotlin.sdk.client.ClientOptions import io.modelcontextprotocol.kotlin.sdk.server.Server import io.modelcontextprotocol.kotlin.sdk.server.ServerOptions import io.modelcontextprotocol.kotlin.sdk.shared.AbstractTransport import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.TimeoutCancellationException import kotlinx.coroutines.cancel +import kotlinx.coroutines.delay import kotlinx.coroutines.joinAll import kotlinx.coroutines.launch import kotlinx.coroutines.test.runTest +import kotlinx.coroutines.withTimeout import kotlinx.serialization.json.buildJsonObject import kotlinx.serialization.json.put import kotlinx.serialization.json.putJsonObject @@ -411,8 +411,10 @@ class ClientTest { } server.sendLoggingMessage( LoggingMessageNotification( - level = LoggingLevel.info, - data = jsonObject + params = LoggingMessageNotification.Params( + level = LoggingLevel.info, + data = jsonObject + ) ) ) server.sendResourceListChanged() @@ -439,7 +441,7 @@ class ClientTest { // Simulate delay def.complete(Unit) try { - kotlinx.coroutines.delay(1000) + delay(1000) } catch (e: CancellationException) { defTimeOut.complete(Unit) throw e @@ -494,9 +496,9 @@ class ClientTest { // Simulate a delayed response // Wait ~100ms unless canceled try { - kotlinx.coroutines.withTimeout(100L) { + withTimeout(100L) { // Just delay here, if timeout is 0 on the client side, this won't return in time - kotlinx.coroutines.delay(100) + delay(100) } } catch (_: Exception) { // If aborted, just rethrow or return early @@ -523,7 +525,7 @@ class ClientTest { // Request with 1 msec timeout should fail immediately val ex = assertFailsWith { - kotlinx.coroutines.withTimeout(1) { + withTimeout(1) { client.listResources() } } diff --git a/src/jvmTest/kotlin/client/StdioClientTransportTest.kt b/src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/StdioClientTransportTest.kt similarity index 88% rename from src/jvmTest/kotlin/client/StdioClientTransportTest.kt rename to src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/StdioClientTransportTest.kt index 15defaed..d9f226a9 100644 --- a/src/jvmTest/kotlin/client/StdioClientTransportTest.kt +++ b/src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/StdioClientTransportTest.kt @@ -1,8 +1,6 @@ -package client +package io.modelcontextprotocol.kotlin.sdk.client -import io.modelcontextprotocol.kotlin.sdk.client.BaseTransportTest import kotlinx.coroutines.test.runTest -import io.modelcontextprotocol.kotlin.sdk.client.StdioClientTransport import kotlinx.io.asSink import kotlinx.io.asSource import kotlinx.io.buffered diff --git a/src/jvmTest/kotlin/client/StreamableHttpClientTransportTest.kt b/src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/StreamableHttpClientTransportTest.kt similarity index 99% rename from src/jvmTest/kotlin/client/StreamableHttpClientTransportTest.kt rename to src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/StreamableHttpClientTransportTest.kt index ca255f4a..83d818be 100644 --- a/src/jvmTest/kotlin/client/StreamableHttpClientTransportTest.kt +++ b/src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/client/StreamableHttpClientTransportTest.kt @@ -1,4 +1,4 @@ -package client +package io.modelcontextprotocol.kotlin.sdk.client import io.ktor.client.HttpClient import io.ktor.client.engine.mock.MockEngine @@ -16,7 +16,6 @@ import io.modelcontextprotocol.kotlin.sdk.JSONRPCMessage import io.modelcontextprotocol.kotlin.sdk.JSONRPCNotification import io.modelcontextprotocol.kotlin.sdk.JSONRPCRequest import io.modelcontextprotocol.kotlin.sdk.RequestId -import io.modelcontextprotocol.kotlin.sdk.client.StreamableHttpClientTransport import io.modelcontextprotocol.kotlin.sdk.shared.McpJson import kotlinx.coroutines.delay import kotlinx.coroutines.test.runTest diff --git a/src/jvmTest/kotlin/server/ServerTest.kt b/src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/server/ServerTest.kt similarity index 99% rename from src/jvmTest/kotlin/server/ServerTest.kt rename to src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/server/ServerTest.kt index 35e07741..8ba455de 100644 --- a/src/jvmTest/kotlin/server/ServerTest.kt +++ b/src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/server/ServerTest.kt @@ -1,4 +1,4 @@ -package server +package io.modelcontextprotocol.kotlin.sdk.server import io.modelcontextprotocol.kotlin.sdk.CallToolResult import io.modelcontextprotocol.kotlin.sdk.GetPromptResult @@ -15,8 +15,6 @@ import io.modelcontextprotocol.kotlin.sdk.TextResourceContents import io.modelcontextprotocol.kotlin.sdk.Tool import io.modelcontextprotocol.kotlin.sdk.ToolListChangedNotification import io.modelcontextprotocol.kotlin.sdk.client.Client -import io.modelcontextprotocol.kotlin.sdk.server.Server -import io.modelcontextprotocol.kotlin.sdk.server.ServerOptions import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.launch import kotlinx.coroutines.test.runTest diff --git a/src/jvmTest/kotlin/server/StdioServerTransportTest.kt b/src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/server/StdioServerTransportTest.kt similarity index 93% rename from src/jvmTest/kotlin/server/StdioServerTransportTest.kt rename to src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/server/StdioServerTransportTest.kt index 8c865aa2..2bbff14a 100644 --- a/src/jvmTest/kotlin/server/StdioServerTransportTest.kt +++ b/src/jvmTest/kotlin/io/modelcontextprotocol/kotlin/sdk/server/StdioServerTransportTest.kt @@ -1,23 +1,26 @@ -package server +package io.modelcontextprotocol.kotlin.sdk.server import io.modelcontextprotocol.kotlin.sdk.InitializedNotification import io.modelcontextprotocol.kotlin.sdk.JSONRPCMessage import io.modelcontextprotocol.kotlin.sdk.PingRequest -import kotlinx.coroutines.CompletableDeferred -import kotlinx.coroutines.runBlocking -import io.modelcontextprotocol.kotlin.sdk.server.StdioServerTransport -import org.junit.jupiter.api.Assertions.* -import org.junit.jupiter.api.BeforeEach -import org.junit.jupiter.api.Test import io.modelcontextprotocol.kotlin.sdk.shared.ReadBuffer import io.modelcontextprotocol.kotlin.sdk.shared.serializeMessage import io.modelcontextprotocol.kotlin.sdk.toJSON +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.runBlocking import kotlinx.io.Sink import kotlinx.io.Source import kotlinx.io.asSink import kotlinx.io.asSource import kotlinx.io.buffered -import java.io.* +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Assertions.assertFalse +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Test +import java.io.ByteArrayOutputStream +import java.io.PipedInputStream +import java.io.PipedOutputStream class StdioServerTransportTest { private lateinit var input: PipedInputStream