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