@@ -32,41 +32,41 @@ def initialize(method, capability)
3232 end
3333 end
3434
35- extend self
35+ class << self
36+ def ensure_capability! ( method , capabilities )
37+ case method
38+ when PROMPTS_GET , PROMPTS_LIST
39+ unless capabilities [ :prompts ]
40+ raise MissingRequiredCapabilityError . new ( method , :prompts )
41+ end
42+ when RESOURCES_LIST , RESOURCES_TEMPLATES_LIST , RESOURCES_READ , RESOURCES_SUBSCRIBE , RESOURCES_UNSUBSCRIBE
43+ unless capabilities [ :resources ]
44+ raise MissingRequiredCapabilityError . new ( method , :resources )
45+ end
3646
37- def ensure_capability! ( method , capabilities )
38- case method
39- when PROMPTS_GET , PROMPTS_LIST
40- unless capabilities [ :prompts ]
41- raise MissingRequiredCapabilityError . new ( method , :prompts )
47+ if method == RESOURCES_SUBSCRIBE && !capabilities [ :resources ] [ :subscribe ]
48+ raise MissingRequiredCapabilityError . new ( method , :resources_subscribe )
49+ end
50+ when TOOLS_CALL , TOOLS_LIST
51+ unless capabilities [ :tools ]
52+ raise MissingRequiredCapabilityError . new ( method , :tools )
53+ end
54+ when SAMPLING_CREATE_MESSAGE
55+ unless capabilities [ :sampling ]
56+ raise MissingRequiredCapabilityError . new ( method , :sampling )
57+ end
58+ when COMPLETION_COMPLETE
59+ unless capabilities [ :completions ]
60+ raise MissingRequiredCapabilityError . new ( method , :completions )
61+ end
62+ when LOGGING_SET_LEVEL
63+ # Logging is unsupported by the Server
64+ unless capabilities [ :logging ]
65+ raise MissingRequiredCapabilityError . new ( method , :logging )
66+ end
67+ when INITIALIZE , PING
68+ # No specific capability required for initialize or ping
4269 end
43- when RESOURCES_LIST , RESOURCES_TEMPLATES_LIST , RESOURCES_READ , RESOURCES_SUBSCRIBE , RESOURCES_UNSUBSCRIBE
44- unless capabilities [ :resources ]
45- raise MissingRequiredCapabilityError . new ( method , :resources )
46- end
47-
48- if method == RESOURCES_SUBSCRIBE && !capabilities [ :resources ] [ :subscribe ]
49- raise MissingRequiredCapabilityError . new ( method , :resources_subscribe )
50- end
51- when TOOLS_CALL , TOOLS_LIST
52- unless capabilities [ :tools ]
53- raise MissingRequiredCapabilityError . new ( method , :tools )
54- end
55- when SAMPLING_CREATE_MESSAGE
56- unless capabilities [ :sampling ]
57- raise MissingRequiredCapabilityError . new ( method , :sampling )
58- end
59- when COMPLETION_COMPLETE
60- unless capabilities [ :completions ]
61- raise MissingRequiredCapabilityError . new ( method , :completions )
62- end
63- when LOGGING_SET_LEVEL
64- # Logging is unsupported by the Server
65- unless capabilities [ :logging ]
66- raise MissingRequiredCapabilityError . new ( method , :logging )
67- end
68- when INITIALIZE , PING
69- # No specific capability required for initialize or ping
7070 end
7171 end
7272 end
0 commit comments