You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: cli.rb
    path of file: ./repos/truffleruby/bench/rubykon/rubykon/lib/rubykon
    
    the code of the file until where you have to start completion: module Rubykon
  class CLI

    EXIT                      = /exit/i
    CHAR_LABELS               = GTPCoordinateConverter::X_CHARS
    X_LABEL_PADDING           = ' '.freeze * 4
    Y_LABEL_WIDTH             = 3
    GTP_COORDINATE            = /^[A-Z]\d\d?$/
    MOVE_CONSIDERATIONS_COUNT = 10

    def initialize(output = $stdout, input = $stdin)
      @output         = output
    
    def print_move_considerations
      best_children = @root.children.sort_by(&:win_percentage).reverse
      top_children  = best_children.take(MOVE_CONSIDERATIONS_COUNT)
      moves_to_win_percentage = top_children.map do |child|
        "#{@gtp_converter.to(child.move.first)} => #{child.win_percentage * 100}%"
      end.join "\n"
      @output.puts moves_to_win_percentage
    end

    def move_from_input(input)
      identifier = @gtp_converter.from(input)
      [identifier, :white]
    end

    def make_move(move)
      @game_state.set_move move
      print_board
      @output.puts "#{move.last} played at #{@gtp_converter.to(move.first)}"
      @output.puts "#{@game.next_turn_color}'s turn to move!'"
    end

    def invalid_input
      puts "Sorry, didn't catch that!"
    end

  end