Class: Daytona::ComputerUse

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

Defined Under Namespace

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sandbox_id:, toolbox_api:) ⇒ ComputerUse

Initialize a new ComputerUse instance.

Parameters:

  • sandbox_id (String)

    The ID of the sandbox

  • toolbox_api (DaytonaApiClient::ToolboxApi)

    API client for sandbox operations



438
439
440
441
442
443
444
445
# File 'lib/daytona/computer_use.rb', line 438

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

Instance Attribute Details

#displayDisplay (readonly)

Returns Display operations interface.

Returns:

  • (Display)

    Display operations interface



432
433
434
# File 'lib/daytona/computer_use.rb', line 432

def display
  @display
end

#keyboardKeyboard (readonly)

Returns Keyboard operations interface.

Returns:

  • (Keyboard)

    Keyboard operations interface



426
427
428
# File 'lib/daytona/computer_use.rb', line 426

def keyboard
  @keyboard
end

#mouseMouse (readonly)

Returns Mouse operations interface.

Returns:

  • (Mouse)

    Mouse operations interface



423
424
425
# File 'lib/daytona/computer_use.rb', line 423

def mouse
  @mouse
end

#sandbox_idString (readonly)

Returns The ID of the sandbox.

Returns:

  • (String)

    The ID of the sandbox



417
418
419
# File 'lib/daytona/computer_use.rb', line 417

def sandbox_id
  @sandbox_id
end

#screenshotScreenshot (readonly)

Returns Screenshot operations interface.

Returns:

  • (Screenshot)

    Screenshot operations interface



429
430
431
# File 'lib/daytona/computer_use.rb', line 429

def screenshot
  @screenshot
end

#toolbox_apiDaytonaApiClient::ToolboxApi (readonly)

Returns API client for sandbox operations.

Returns:

  • (DaytonaApiClient::ToolboxApi)

    API client for sandbox operations



420
421
422
# File 'lib/daytona/computer_use.rb', line 420

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:



543
544
545
546
547
# File 'lib/daytona/computer_use.rb', line 543

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:



528
529
530
531
532
# File 'lib/daytona/computer_use.rb', line 528

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:



498
499
500
501
502
# File 'lib/daytona/computer_use.rb', line 498

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:



513
514
515
516
517
# File 'lib/daytona/computer_use.rb', line 513

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:



455
456
457
458
459
# File 'lib/daytona/computer_use.rb', line 455

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:



483
484
485
486
487
# File 'lib/daytona/computer_use.rb', line 483

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:



469
470
471
472
473
# File 'lib/daytona/computer_use.rb', line 469

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