class Terminalwire::Server::Context

def close

def close
  @adapter.close
end

def exit(status = 0)

def exit(status = 0)
  @adapter.write(event: "exit", status: status)
end

def initialize(adapter:, entitlement:)

def initialize(adapter:, entitlement:)
  @adapter = adapter
  @entitlement = entitlement
  @storage_path = Pathname.new(entitlement.fetch(:storage_path))
  @stdout = Resource::STDOUT.new("stdout", @adapter)
  @stdin = Resource::STDIN.new("stdin", @adapter)
  @stderr = Resource::STDERR.new("stderr", @adapter)
  @browser = Resource::Browser.new("browser", @adapter)
  @file = Resource::File.new("file", @adapter)
  @directory = Resource::Directory.new("directory", @adapter)
  if block_given?
    begin
      yield self
    ensure
      exit
    end
  end
end