Allow params field to be omitted in requests for methods that don't require them (#17)

* Allow `params` field to be omitted in requests for methods with empty parameters

* Add ping request to roundtrip test

* Generalize decoding of non-required parameters
This commit is contained in:
Mattt 2025-03-17 05:26:47 -07:00 • committed by GitHub
commit 6f1f65a392
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 206 additions and 25 deletions

View file

@ -153,10 +153,14 @@ public struct Prompt: Hashable, Codable, Sendable {
public enum ListPrompts: Method {
public static let name: String = "prompts/list"
public struct Parameters: Hashable, Codable, Sendable {
public struct Parameters: NotRequired, Hashable, Codable, Sendable {
public let cursor: String?
public init() {
self.cursor = nil
}
public init(cursor: String? = nil) {
public init(cursor: String) {
self.cursor = cursor
}
}

View file

@ -99,10 +99,14 @@ public struct Resource: Hashable, Codable, Sendable {
public enum ListResources: Method {
public static let name: String = "resources/list"
public struct Parameters: Hashable, Codable, Sendable {
public struct Parameters: NotRequired, Hashable, Codable, Sendable {
public let cursor: String?
public init(cursor: String? = nil) {
public init() {
self.cursor = nil
}
public init(cursor: String) {
self.cursor = cursor
}
}

View file

@ -118,10 +118,14 @@ public struct Tool: Hashable, Codable, Sendable {
public enum ListTools: Method {
public static let name = "tools/list"
public struct Parameters: Hashable, Codable, Sendable {
public struct Parameters: NotRequired, Hashable, Codable, Sendable {
public let cursor: String?
public init() {
self.cursor = nil
}
public init(cursor: String? = nil) {
public init(cursor: String) {
self.cursor = cursor
}
}