Class: Daytona::ComputerUse

Inherits:
Object
  • Object
show all
Includes:
Instrumentation
Defined in:
lib/daytona/computer_use.rb

Defined Under Namespace

Classes: Display, Keyboard, Mouse, Recording, Screenshot, ScreenshotOptions, ScreenshotRegion

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Instrumentation

included

Constructor Details

#initialize(sandbox_id:, toolbox_api:, otel_state: nil) ⇒ ComputerUse

Initialize a new ComputerUse instance.

Parameters:

  • sandbox_id (String)

    The ID of the sandbox

  • toolbox_api (DaytonaApiClient::ToolboxApi)

    API client for sandbox operations

  • otel_state (Daytona::OtelState, nil) (defaults to: nil)


657
658
659
660
661
662
663
664
665
666
# File 'lib/daytona/computer_use.rb', line 657

def initialize(sandbox_id:, toolbox_api:, otel_state: nil)
  @sandbox_id = sandbox_id
  @toolbox_api = toolbox_api
  @otel_state = otel_state
  @mouse = Mouse.new(sandbox_id:, toolbox_api:, otel_state:)
  @keyboard = Keyboard.new(sandbox_id:, toolbox_api:, otel_state:)
  @screenshot = Screenshot.new(sandbox_id:, toolbox_api:, otel_state:)
  @display = Display.new(sandbox_id:, toolbox_api:, otel_state:)
  @recording = Recording.new(sandbox_id:, toolbox_api:, otel_state:)
end

Instance Attribute Details

#displayDisplay (readonly)

Returns Display operations interface.

Returns:

  • (Display)

    Display operations interface



647
648
649
# File 'lib/daytona/computer_use.rb', line 647

def display
  @display
end

#keyboardKeyboard (readonly)

Returns Keyboard operations interface.

Returns:

  • (Keyboard)

    Keyboard operations interface



641
642
643
# File 'lib/daytona/computer_use.rb', line 641

def keyboard
  @keyboard
end

#mouseMouse (readonly)

Returns Mouse operations interface.

Returns:

  • (Mouse)

    Mouse operations interface



638
639
640
# File 'lib/daytona/computer_use.rb', line 638

def mouse
  @mouse
end

#recordingRecording (readonly)

Returns Screen recording operations interface.

Returns:

  • (Recording)

    Screen recording operations interface



650
651
652
# File 'lib/daytona/computer_use.rb', line 650

def recording
  @recording
end

#sandbox_idString (readonly)

Returns The ID of the sandbox.

Returns:

  • (String)

    The ID of the sandbox



632
633
634
# File 'lib/daytona/computer_use.rb', line 632

def sandbox_id
  @sandbox_id
end

#screenshotScreenshot (readonly)

Returns Screenshot operations interface.

Returns:

  • (Screenshot)

    Screenshot operations interface



644
645
646
# File 'lib/daytona/computer_use.rb', line 644

def screenshot
  @screenshot
end

#toolbox_apiDaytonaApiClient::ToolboxApi (readonly)

Returns API client for sandbox operations.

Returns:

  • (DaytonaApiClient::ToolboxApi)

    API client for sandbox operations



635
636
637
# File 'lib/daytona/computer_use.rb', line 635

def toolbox_api
  @toolbox_api
end

Instance Method Details

#get_process_errors(process_name:) ⇒ DaytonaApiClient::ProcessErrorsResponse

Gets error logs for a specific VNC process.

Examples:

errors = sandbox.computer_use.get_process_errors("x11vnc")
puts "X11VNC errors: #{errors}"

Parameters:

  • process_name (String)

    Name of the process to get error logs for

Returns:

  • (DaytonaApiClient::ProcessErrorsResponse)

    Process error logs

Raises:



764
765
766
767
768
# File 'lib/daytona/computer_use.rb', line 764

def get_process_errors(process_name:)
  toolbox_api.get_process_errors(process_name, sandbox_id)
rescue StandardError => e
  raise Sdk::Error, "Failed to get process errors: #{e.message}"
end

#get_process_logs(process_name:) ⇒ DaytonaApiClient::ProcessLogsResponse

Gets logs for a specific VNC process.

Examples:

logs = sandbox.computer_use.get_process_logs("novnc")
puts "NoVNC logs: #{logs}"

Parameters:

  • process_name (String)

    Name of the process to get logs for

Returns:

  • (DaytonaApiClient::ProcessLogsResponse)

    Process logs

Raises:



749
750
751
752
753
# File 'lib/daytona/computer_use.rb', line 749

def get_process_logs(process_name:)
  toolbox_api.get_process_logs(process_name, sandbox_id)
rescue StandardError => e
  raise Sdk::Error, "Failed to get process logs: #{e.message}"
end

#get_process_status(process_name:) ⇒ DaytonaApiClient::ProcessStatusResponse

Gets the status of a specific VNC process.

Examples:

xvfb_status = sandbox.computer_use.get_process_status("xvfb")
no_vnc_status = sandbox.computer_use.get_process_status("novnc")

Parameters:

  • process_name (String)

    Name of the process to check

Returns:

  • (DaytonaApiClient::ProcessStatusResponse)

    Status information about the specific process

Raises:



719
720
721
722
723
# File 'lib/daytona/computer_use.rb', line 719

def get_process_status(process_name:)
  toolbox_api.get_process_status(process_name, sandbox_id)
rescue StandardError => e
  raise Sdk::Error, "Failed to get process status: #{e.message}"
end

#restart_process(process_name:) ⇒ DaytonaApiClient::ProcessRestartResponse

Restarts a specific VNC process.

Examples:

result = sandbox.computer_use.restart_process("xfce4")
puts "XFCE4 process restarted: #{result.message}"

Parameters:

  • process_name (String)

    Name of the process to restart

Returns:

  • (DaytonaApiClient::ProcessRestartResponse)

    Process restart response

Raises:



734
735
736
737
738
# File 'lib/daytona/computer_use.rb', line 734

def restart_process(process_name:)
  toolbox_api.restart_process(process_name, sandbox_id)
rescue StandardError => e
  raise Sdk::Error, "Failed to restart process: #{e.message}"
end

#startDaytonaApiClient::ComputerUseStartResponse

Starts all computer use processes (Xvfb, xfce4, x11vnc, novnc).

Examples:

result = sandbox.computer_use.start
puts "Computer use processes started: #{result.message}"

Returns:

  • (DaytonaApiClient::ComputerUseStartResponse)

    Computer use start response

Raises:



676
677
678
679
680
# File 'lib/daytona/computer_use.rb', line 676

def start
  toolbox_api.start_computer_use
rescue StandardError => e
  raise Sdk::Error, "Failed to start computer use: #{e.message}"
end

#statusDaytonaApiClient::ComputerUseStatusResponse

Gets the status of all computer use processes.

Examples:

response = sandbox.computer_use.get_status
puts "Computer use status: #{response.status}"

Returns:

  • (DaytonaApiClient::ComputerUseStatusResponse)

    Status information about all VNC desktop processes

Raises:



704
705
706
707
708
# File 'lib/daytona/computer_use.rb', line 704

def status
  toolbox_api.get_computer_use_status
rescue StandardError => e
  raise Sdk::Error, "Failed to get computer use status: #{e.message}"
end

#stopDaytonaApiClient::ComputerUseStopResponse

Stops all computer use processes.

Examples:

result = sandbox.computer_use.stop
puts "Computer use processes stopped: #{result.message}"

Returns:

  • (DaytonaApiClient::ComputerUseStopResponse)

    Computer use stop response

Raises:



690
691
692
693
694
# File 'lib/daytona/computer_use.rb', line 690

def stop
  toolbox_api.stop_computer_use
rescue StandardError => e
  raise Sdk::Error, "Failed to stop computer use: #{e.message}"
end