class Terminalwire::Server::Handler

def initialize(adapter)

def initialize(adapter)
  @adapter = adapter
end

def run

def run
  logger.info "Server Handler: Running"
  loop do
    message = @adapter.read
    case message
    in { event: "initialization", protocol:, program: { arguments: }, entitlement: }
      Context.new(adapter: @adapter) do |context|
        MyCLI.start(arguments, context:)
      end
    end
  end
rescue EOFError, Errno::ECONNRESET
  logger.info "Server Handler: Client disconnected"
ensure
  @adapter.close
end