From 87c79ec4f23f9ba750f99ad18c10a3bdffb401c4 Mon Sep 17 00:00:00 2001 From: zyfy29 Date: Thu, 24 Jul 2025 18:14:54 +0900 Subject: [PATCH 1/2] chore: rename ResourceReference to ResourceTemplateReference --- .../kotlin/io/modelcontextprotocol/kotlin/sdk/types.kt | 2 +- .../kotlin/io/modelcontextprotocol/kotlin/sdk/types.util.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types.kt b/kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types.kt index 8918f5c3..587801d8 100644 --- a/kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types.kt +++ b/kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types.kt @@ -1502,7 +1502,7 @@ public sealed interface Reference { * A reference to a resource or resource template definition. */ @Serializable -public data class ResourceReference( +public data class ResourceTemplateReference( /** * The URI or URI template of the resource. */ diff --git a/kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types.util.kt b/kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types.util.kt index fad5f14a..c94b0b64 100644 --- a/kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types.util.kt +++ b/kotlin-sdk-core/src/commonMain/kotlin/io/modelcontextprotocol/kotlin/sdk/types.util.kt @@ -75,7 +75,7 @@ internal object StopReasonSerializer : KSerializer { internal object ReferencePolymorphicSerializer : JsonContentPolymorphicSerializer(Reference::class) { override fun selectDeserializer(element: JsonElement): DeserializationStrategy { return when (element.jsonObject.getValue("type").jsonPrimitive.content) { - ResourceReference.TYPE -> ResourceReference.serializer() + ResourceTemplateReference.TYPE -> ResourceTemplateReference.serializer() PromptReference.TYPE -> PromptReference.serializer() else -> UnknownReference.serializer() } From 8463e0e87ce6e2506f4b97c52b9c8064bcf067ec Mon Sep 17 00:00:00 2001 From: devcrocod Date: Mon, 4 Aug 2025 12:51:57 +0200 Subject: [PATCH 2/2] rename resource references in tests and update api --- kotlin-sdk-core/api/kotlin-sdk-core.api | 58 +++++++++---------- .../kotlin/sdk/TypesTest.kt | 18 +++--- .../kotlin/sdk/TypesUtilTest.kt | 4 +- 3 files changed, 40 insertions(+), 40 deletions(-) diff --git a/kotlin-sdk-core/api/kotlin-sdk-core.api b/kotlin-sdk-core/api/kotlin-sdk-core.api index 569dfb3e..c7399364 100644 --- a/kotlin-sdk-core/api/kotlin-sdk-core.api +++ b/kotlin-sdk-core/api/kotlin-sdk-core.api @@ -2281,35 +2281,6 @@ public final class io/modelcontextprotocol/kotlin/sdk/ResourceListChangedNotific 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; - public fun (Ljava/lang/String;)V - public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lio/modelcontextprotocol/kotlin/sdk/ResourceReference; - public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/ResourceReference;Ljava/lang/String;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/ResourceReference; - public fun equals (Ljava/lang/Object;)Z - public fun getType ()Ljava/lang/String; - public final fun getUri ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final synthetic class io/modelcontextprotocol/kotlin/sdk/ResourceReference$$serializer : kotlinx/serialization/internal/GeneratedSerializer { - public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/ResourceReference$$serializer; - public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/ResourceReference; - 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/ResourceReference;)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/ResourceReference$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - public final class io/modelcontextprotocol/kotlin/sdk/ResourceTemplate { public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/ResourceTemplate$Companion; public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V @@ -2343,6 +2314,35 @@ public final class io/modelcontextprotocol/kotlin/sdk/ResourceTemplate$Companion public final fun serializer ()Lkotlinx/serialization/KSerializer; } +public final class io/modelcontextprotocol/kotlin/sdk/ResourceTemplateReference : io/modelcontextprotocol/kotlin/sdk/Reference { + public static final field Companion Lio/modelcontextprotocol/kotlin/sdk/ResourceTemplateReference$Companion; + public static final field TYPE Ljava/lang/String; + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lio/modelcontextprotocol/kotlin/sdk/ResourceTemplateReference; + public static synthetic fun copy$default (Lio/modelcontextprotocol/kotlin/sdk/ResourceTemplateReference;Ljava/lang/String;ILjava/lang/Object;)Lio/modelcontextprotocol/kotlin/sdk/ResourceTemplateReference; + public fun equals (Ljava/lang/Object;)Z + public fun getType ()Ljava/lang/String; + public final fun getUri ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final synthetic class io/modelcontextprotocol/kotlin/sdk/ResourceTemplateReference$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lio/modelcontextprotocol/kotlin/sdk/ResourceTemplateReference$$serializer; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/modelcontextprotocol/kotlin/sdk/ResourceTemplateReference; + 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/ResourceTemplateReference;)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/ResourceTemplateReference$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + 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 (Lio/modelcontextprotocol/kotlin/sdk/ResourceUpdatedNotification$Params;)V diff --git a/kotlin-sdk-core/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/TypesTest.kt b/kotlin-sdk-core/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/TypesTest.kt index 819db328..4910f621 100644 --- a/kotlin-sdk-core/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/TypesTest.kt +++ b/kotlin-sdk-core/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/TypesTest.kt @@ -30,21 +30,21 @@ class TypesTest { // Reference Tests @Test - fun `should validate ResourceReference`() { - val resourceRef = ResourceReference(uri = "file:///path/to/file.txt") + fun `should validate ResourceTemplateReference`() { + val resourceRef = ResourceTemplateReference(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") + fun `should serialize and deserialize ResourceTemplateReference correctly`() { + val resourceRef = ResourceTemplateReference(uri = "https://example.com/resource") val json = McpJson.encodeToString(resourceRef) val decoded = McpJson.decodeFromString(json) - assertIs(decoded) + assertIs(decoded) assertEquals("ref/resource", decoded.type) assertEquals("https://example.com/resource", decoded.uri) } @@ -333,12 +333,12 @@ class TypesTest { @Test fun `should validate CompleteRequest with resource reference`() { val request = CompleteRequest( - ref = ResourceReference(uri = "github://repos/{owner}/{repo}"), + ref = ResourceTemplateReference(uri = "github://repos/{owner}/{repo}"), argument = CompleteRequest.Argument(name = "repo", value = "t") ) assertEquals("completion/complete", request.method.value) - assertIs(request.ref) + assertIs(request.ref) val resourceRef = request.ref assertEquals("github://repos/{owner}/{repo}", resourceRef.uri) assertEquals("repo", request.argument.name) @@ -366,11 +366,11 @@ class TypesTest { @Test fun `should validate CompleteRequest with complex URIs`() { val request = CompleteRequest( - ref = ResourceReference(uri = "api://v1/{tenant}/{resource}/{id}"), + ref = ResourceTemplateReference(uri = "api://v1/{tenant}/{resource}/{id}"), argument = CompleteRequest.Argument(name = "id", value = "123") ) - val resourceRef = request.ref as ResourceReference + val resourceRef = request.ref as ResourceTemplateReference assertEquals("api://v1/{tenant}/{resource}/{id}", resourceRef.uri) assertEquals("id", request.argument.name) assertEquals("123", request.argument.value) diff --git a/kotlin-sdk-core/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/TypesUtilTest.kt b/kotlin-sdk-core/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/TypesUtilTest.kt index 444e4180..da2d6289 100644 --- a/kotlin-sdk-core/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/TypesUtilTest.kt +++ b/kotlin-sdk-core/src/commonTest/kotlin/io/modelcontextprotocol/kotlin/sdk/TypesUtilTest.kt @@ -80,12 +80,12 @@ class TypesUtilTest { // Reference Polymorphic Serializer Tests @Test - fun `should deserialize ResourceReference polymorphically`() { + fun `should deserialize ResourceTemplateReference polymorphically`() { val json = """{"type": "ref/resource", "uri": "file:///test.txt"}""" val decoded = McpJson.decodeFromString(json) - assertIs(decoded) + assertIs(decoded) assertEquals("ref/resource", decoded.type) assertEquals("file:///test.txt", decoded.uri) }