class RubyLLM::MCP::Elicitation
def execute
def execute success = @coordinator.client.on[:elicitation].call(self) if success valid = validate_response if valid @coordinator.elicitation_response(id: @id, action: ACCEPT_ACTION, content: @structured_response) else @coordinator.elicitation_response(id: @id, action: CANCEL_ACTION, content: nil) end else @coordinator.elicitation_response(id: @id, action: REJECT_ACTION, content: nil) end end
def initialize(coordinator, result)
def initialize(coordinator, result) @coordinator = coordinator @result = result @id = result.id @message = @result.params["message"] @requested_schema = @result.params["requestedSchema"] end
def message
def message @result.params["message"] end
def validate_response
def validate_response JSON::Validator.validate(@requested_schema, @structured_response) end