# ComputerUse

## ComputerUseService

**Properties**:

- `service` _AddonProcessesService_
- `mouse` _MouseService_
- `keyboard` _KeyboardService_
- `screen` _ScreenService_
- `display` _DisplayService_
- `a11y` _A11yService_
- `recording` _RecordingService_

### Constructors

#### Constructor

```ts
new ComputerUseService(transport: ComputerUseTransport): ComputerUseService;
```

**Parameters**:

- `transport` _ComputerUseTransport_

**Returns**:

- `ComputerUseService`

### Methods

#### restart()

```ts
restart(): Promise<ComputerUseRestartResponse>;
```

**Returns**:

- `Promise<ComputerUseRestartResponse>`

#### start()

```ts
start(): Promise<ComputerUseLifecycleResponse>;
```

**Returns**:

- `Promise<ComputerUseLifecycleResponse>`

#### status()

```ts
status(): Promise<ComputerUseStatusResponse>;
```

**Returns**:

- `Promise<ComputerUseStatusResponse>`

#### stop()

```ts
stop(): Promise<ComputerUseLifecycleResponse>;
```

**Returns**:

- `Promise<ComputerUseLifecycleResponse>`

***

## AddonProcessesService

### Constructors

#### Constructor

```ts
new AddonProcessesService(transport: ComputerUseTransport): AddonProcessesService;
```

**Parameters**:

- `transport` _ComputerUseTransport_

**Returns**:

- `AddonProcessesService`

### Methods

#### errors()

```ts
errors(name: string): Promise<ComputerUseProcessErrorsResponse>;
```

**Parameters**:

- `name` _string_

**Returns**:

- `Promise<ComputerUseProcessErrorsResponse>`

#### logs()

```ts
logs(name: string): Promise<ComputerUseProcessLogsResponse>;
```

**Parameters**:

- `name` _string_

**Returns**:

- `Promise<ComputerUseProcessLogsResponse>`

#### restart()

```ts
restart(name: string): Promise<ComputerUseProcessRestartResponse>;
```

**Parameters**:

- `name` _string_

**Returns**:

- `Promise<ComputerUseProcessRestartResponse>`

#### status()

```ts
status(): Promise<Record<string, ComputerUseProcessStatus>>;
```

**Returns**:

- `Promise<Record<string, ComputerUseProcessStatus>>`

#### status()

```ts
status(name: string): Promise<ComputerUseProcessRunningStatus>;
```

**Parameters**:

- `name` _string_

**Returns**:

- `Promise<ComputerUseProcessRunningStatus>`

#### status()

```ts
status(
   name?: string): Promise<Record<string, ComputerUseProcessStatus> | ComputerUseProcessRunningStatus>;
```

**Parameters**:

- `name?` _string_

**Returns**:

- `Promise<Record<string, ComputerUseProcessStatus> | ComputerUseProcessRunningStatus>`

***

## A11yService

### Constructors

#### Constructor

```ts
new A11yService(transport: ComputerUseTransport): A11yService;
```

**Parameters**:

- `transport` _ComputerUseTransport_

**Returns**:

- `A11yService`

### Methods

#### find()

```ts
find(request: ComputerUseA11yFindRequest): Promise<ComputerUseA11yFindResponse>;
```

**Parameters**:

- `request` _ComputerUseA11yFindRequest_

**Returns**:

- `Promise<ComputerUseA11yFindResponse>`

#### focus()

```ts
focus(request: ComputerUseA11yFocusRequest): Promise<void>;
```

**Parameters**:

- `request` _ComputerUseA11yFocusRequest_

**Returns**:

- `Promise<void>`

#### invoke()

```ts
invoke(request: ComputerUseA11yInvokeRequest): Promise<void>;
```

**Parameters**:

- `request` _ComputerUseA11yInvokeRequest_

**Returns**:

- `Promise<void>`

#### setValue()

```ts
setValue(request: ComputerUseA11ySetValueRequest): Promise<void>;
```

**Parameters**:

- `request` _ComputerUseA11ySetValueRequest_

**Returns**:

- `Promise<void>`

#### tree()

```ts
tree(options: ComputerUseA11yTreeOptions): Promise<ComputerUseA11yTreeResponse>;
```

**Parameters**:

- `options` _ComputerUseA11yTreeOptions_

**Returns**:

- `Promise<ComputerUseA11yTreeResponse>`

***

## DisplayService

### Constructors

#### Constructor

```ts
new DisplayService(transport: ComputerUseTransport): DisplayService;
```

**Parameters**:

- `transport` _ComputerUseTransport_

**Returns**:

- `DisplayService`

### Methods

#### info()

```ts
info(): Promise<ComputerUseDisplayInfoResponse>;
```

**Returns**:

- `Promise<ComputerUseDisplayInfoResponse>`

#### windows()

```ts
windows(): Promise<ComputerUseDisplayWindowsResponse>;
```

**Returns**:

- `Promise<ComputerUseDisplayWindowsResponse>`

***

## KeyboardService

### Constructors

#### Constructor

```ts
new KeyboardService(transport: ComputerUseTransport): KeyboardService;
```

**Parameters**:

- `transport` _ComputerUseTransport_

**Returns**:

- `KeyboardService`

### Methods

#### hotkey()

```ts
hotkey(request: ComputerUseKeyboardHotkeyRequest): Promise<void>;
```

**Parameters**:

- `request` _ComputerUseKeyboardHotkeyRequest_

**Returns**:

- `Promise<void>`

#### key()

```ts
key(request: ComputerUseKeyboardKeyRequest): Promise<void>;
```

**Parameters**:

- `request` _ComputerUseKeyboardKeyRequest_

**Returns**:

- `Promise<void>`

#### type()

```ts
type(request: ComputerUseKeyboardTypeRequest): Promise<void>;
```

**Parameters**:

- `request` _ComputerUseKeyboardTypeRequest_

**Returns**:

- `Promise<void>`

***

## MouseService

### Constructors

#### Constructor

```ts
new MouseService(transport: ComputerUseTransport): MouseService;
```

**Parameters**:

- `transport` _ComputerUseTransport_

**Returns**:

- `MouseService`

### Methods

#### click()

```ts
click(request: ComputerUseMouseClickRequest): Promise<ComputerUsePoint>;
```

**Parameters**:

- `request` _ComputerUseMouseClickRequest_

**Returns**:

- `Promise<ComputerUsePoint>`

#### drag()

```ts
drag(request: ComputerUseMouseDragRequest): Promise<ComputerUsePoint>;
```

**Parameters**:

- `request` _ComputerUseMouseDragRequest_

**Returns**:

- `Promise<ComputerUsePoint>`

#### move()

```ts
move(request: ComputerUseMouseMoveRequest): Promise<ComputerUsePoint>;
```

**Parameters**:

- `request` _ComputerUseMouseMoveRequest_

**Returns**:

- `Promise<ComputerUsePoint>`

#### position()

```ts
position(): Promise<ComputerUsePoint>;
```

**Returns**:

- `Promise<ComputerUsePoint>`

#### scroll()

```ts
scroll(request: ComputerUseMouseScrollRequest): Promise<ComputerUseScrollResponse>;
```

**Parameters**:

- `request` _ComputerUseMouseScrollRequest_

**Returns**:

- `Promise<ComputerUseScrollResponse>`

***

## RecordingService

### Constructors

#### Constructor

```ts
new RecordingService(transport: ComputerUseTransport): RecordingService;
```

**Parameters**:

- `transport` _ComputerUseTransport_

**Returns**:

- `RecordingService`

### Methods

#### delete()

```ts
delete(id: string): Promise<void>;
```

**Parameters**:

- `id` _string_

**Returns**:

- `Promise<void>`

#### download()

```ts
download(id: string): Promise<Uint8Array>;
```

**Parameters**:

- `id` _string_

**Returns**:

- `Promise<Uint8Array>`

#### get()

```ts
get(id: string): Promise<ComputerUseRecording>;
```

**Parameters**:

- `id` _string_

**Returns**:

- `Promise<ComputerUseRecording>`

#### list()

```ts
list(): Promise<ComputerUseRecordingsResponse>;
```

**Returns**:

- `Promise<ComputerUseRecordingsResponse>`

#### start()

```ts
start(request: ComputerUseRecordingStartRequest = {}): Promise<ComputerUseRecording>;
```

**Parameters**:

- `request` _ComputerUseRecordingStartRequest = \{\}_

**Returns**:

- `Promise<ComputerUseRecording>`

#### stop()

```ts
stop(request: ComputerUseRecordingStopRequest): Promise<ComputerUseRecording>;
```

**Parameters**:

- `request` _ComputerUseRecordingStopRequest_

**Returns**:

- `Promise<ComputerUseRecording>`

***

## ScreenService

### Constructors

#### Constructor

```ts
new ScreenService(transport: ComputerUseTransport): ScreenService;
```

**Parameters**:

- `transport` _ComputerUseTransport_

**Returns**:

- `ScreenService`

### Methods

#### capture()

```ts
capture(
   options: { readonly showCursor?: boolean } = {}): Promise<ComputerUseScreenshotResponse>;
```

**Parameters**:

- `options` _\{ readonly showCursor?: boolean \} = \{\}_

**Returns**:

- `Promise<ComputerUseScreenshotResponse>`

#### captureCompressed()

```ts
captureCompressed(
   options: ComputerUseScreenshotCompressedOptions = {}): Promise<ComputerUseScreenshotResponse>;
```

**Parameters**:

- `options` _ComputerUseScreenshotCompressedOptions = \{\}_

**Returns**:

- `Promise<ComputerUseScreenshotResponse>`

#### region()

```ts
region(
   options: ComputerUseScreenshotRegionOptions): Promise<ComputerUseScreenshotResponse>;
```

**Parameters**:

- `options` _ComputerUseScreenshotRegionOptions_

**Returns**:

- `Promise<ComputerUseScreenshotResponse>`

#### regionCompressed()

```ts
regionCompressed(
   options: ComputerUseScreenshotRegionCompressedOptions): Promise<ComputerUseScreenshotResponse>;
```

**Parameters**:

- `options` _ComputerUseScreenshotRegionCompressedOptions_

**Returns**:

- `Promise<ComputerUseScreenshotResponse>`

#### screenshot()

```ts
screenshot(
   options: { readonly showCursor?: boolean } = {}): Promise<ComputerUseScreenshotResponse>;
```

**Parameters**:

- `options` _\{ readonly showCursor?: boolean \} = \{\}_

**Returns**:

- `Promise<ComputerUseScreenshotResponse>`

#### screenshotCompressed()

```ts
screenshotCompressed(
   options: ComputerUseScreenshotCompressedOptions = {}): Promise<ComputerUseScreenshotResponse>;
```

**Parameters**:

- `options` _ComputerUseScreenshotCompressedOptions = \{\}_

**Returns**:

- `Promise<ComputerUseScreenshotResponse>`

#### screenshotRegion()

```ts
screenshotRegion(
   options: ComputerUseScreenshotRegionOptions): Promise<ComputerUseScreenshotResponse>;
```

**Parameters**:

- `options` _ComputerUseScreenshotRegionOptions_

**Returns**:

- `Promise<ComputerUseScreenshotResponse>`

#### screenshotRegionCompressed()

```ts
screenshotRegionCompressed(
   options: ComputerUseScreenshotRegionCompressedOptions): Promise<ComputerUseScreenshotResponse>;
```

**Parameters**:

- `options` _ComputerUseScreenshotRegionCompressedOptions_

**Returns**:

- `Promise<ComputerUseScreenshotResponse>`

***

## ComputerUseTransport

### Methods

#### delete()

```ts
delete<T>(path: string): Promise<T>;
```

**Parameters**:

- `path` _string_

**Returns**:

- `Promise<T>`

#### get()

```ts
get<T>(path: string, config?: { params?: Record<string, unknown> }): Promise<T>;
```

**Parameters**:

- `path` _string_
- `config?` _\{ params?: Record\<string, unknown\> \}_

**Returns**:

- `Promise<T>`

#### getBytes()

```ts
getBytes(path: string): Promise<ArrayBuffer>;
```

**Parameters**:

- `path` _string_

**Returns**:

- `Promise<ArrayBuffer>`

#### post()

```ts
post<T>(path: string, body?: unknown): Promise<T>;
```

**Parameters**:

- `path` _string_
- `body?` _unknown_

**Returns**:

- `Promise<T>`

***

## ComputerUseActivityStatus

```ts
type ComputerUseActivityStatus = 'active' | 'inactive' | 'unknown'
```

***

## ComputerUseDesktopState

```ts
type ComputerUseDesktopState = 'not_started' | 'starting' | 'ready' | 'failed' | 'unknown'
```

***

## ComputerUseDesktopFailureCode

```ts
type ComputerUseDesktopFailureCode =
  | 'desktop_exited'
  | 'addon_crashed'
  | 'start_failed'
  | 'start_interrupted'
  | 'session_ended'
  | 'session_replaced'
  | 'state_corrupt'
  | 'state_persistence_failed'
  | 'unknown'
```

***

## ComputerUseDesktopFailure

**Properties**:

- `code` _ComputerUseDesktopFailureCode_
- `rawCode` _string_
- `message` _string_
- `extraFields?` _Record\<string, unknown\>_

***

## ComputerUseFailedStatus

**Properties**:

- `status` _'inactive'_
- `desktop` _'failed'_
- `cause` _ComputerUseDesktopFailure_
- `extraFields?` _Record\<string, unknown\>_

***

## ComputerUseNotStartedStatus

**Properties**:

- `status` _'inactive'_
- `desktop` _'not_started'_
- `cause?` _never_
- `extraFields?` _Record\<string, unknown\>_

***

## ComputerUseReadyStatus

**Properties**:

- `status` _'active'_
- `desktop` _'ready'_
- `cause?` _never_
- `extraFields?` _Record\<string, unknown\>_

***

## ComputerUseRestartResponse

**Properties**:

- `message` _string_
- `status` _'active'_
- `desktop` _'ready'_
- `extraFields?` _Record\<string, unknown\>_

***

## ComputerUseStartingStatus

**Properties**:

- `status` _'inactive'_
- `desktop` _'starting'_
- `cause?` _never_
- `extraFields?` _Record\<string, unknown\>_

***

## ComputerUseUnknownStatus

A `(status, desktop)` pair this SDK release does not recognize, because a
newer daemon added a value or a combination. `rawStatus` / `rawDesktop` carry
what the daemon sent; the recognized variants need no raw sibling, since
their typed values are the wire values.

**Properties**:

- `status` _'unknown'_
- `desktop` _'unknown'_
- `rawStatus` _string_
- `rawDesktop` _string_
- `cause?` _ComputerUseDesktopFailure_ - The failure the daemon attached to the unrecognized state, when it sent one.
- `extraFields?` _Record\<string, unknown\>_

***

## ComputerUseA11yFindRequest

**Properties**:

- `scope` _ComputerUseA11yScope_
- `pid?` _number_
- `role?` _string_
- `name?` _string_
- `nameMatch?` _ComputerUseA11yNameMatch_
- `states?` _string\[\]_
- `limit?` _number_

***

## ComputerUseA11yFindResponse

**Properties**:

- `matches` _ComputerUseAccessibilityNode\[\]_
- `truncated` _boolean_

***

## ComputerUseA11yFocusRequest

**Properties**:

- `id` _string_

***

## ComputerUseA11yInvokeRequest

**Properties**:

- `id` _string_
- `action?` _string_

***

## ComputerUseA11yNameMatch

```ts
type ComputerUseA11yNameMatch = 'exact' | 'substring' | 'regex'
```

***

## ComputerUseA11yScope

```ts
type ComputerUseA11yScope = 'focused' | 'pid' | 'all'
```

***

## ComputerUseA11ySetValueRequest

**Properties**:

- `id` _string_
- `value` _string_

***

## ComputerUseA11yTreeOptions

**Properties**:

- `scope` _ComputerUseA11yScope_
- `pid?` _number_
- `maxDepth?` _number_

***

## ComputerUseA11yTreeResponse

**Properties**:

- `root` _ComputerUseAccessibilityNode_
- `truncated` _boolean_

***

## ComputerUseAccessibilityBounds

**Properties**:

- `x` _number_
- `y` _number_
- `width` _number_
- `height` _number_

***

## ComputerUseAccessibilityNode

**Properties**:

- `id` _string_
- `role` _string_
- `name` _string_
- `description?` _string_
- `value?` _string_ - A control's current value (macOS). Never set for password fields.
- `valueTruncated` _boolean_ - `value` was cut at the platform's cap. `false` when uncut or not reported; the SDK always fills it.
- `bounds` _ComputerUseAccessibilityBounds_
- `states` _string\[\]_
- `actions?` _string\[\]_
- `children?` _ComputerUseAccessibilityNode\[\]_

***

## ComputerUseDisplay

**Properties**:

- `id` _number_
- `x` _number_
- `y` _number_
- `width` _number_
- `height` _number_
- `isActive` _boolean_

***

## ComputerUseDisplayInfoResponse

**Properties**:

- `displays` _ComputerUseDisplay\[\]_

***

## ComputerUseDisplayWindowsResponse

**Properties**:

- `windows` _ComputerUseWindow\[\]_

***

## ComputerUseKeyboardHotkeyRequest

**Properties**:

- `keys` _string_

***

## ComputerUseKeyboardKeyRequest

**Properties**:

- `key` _string_
- `modifiers?` _ComputerUseKeyboardModifier\[\]_

***

## ComputerUseKeyboardModifier

```ts
type ComputerUseKeyboardModifier = 'ctrl' | 'alt' | 'shift' | 'cmd'
```

***

## ComputerUseKeyboardTypeRequest

**Properties**:

- `text` _string_
- `delay?` _number_

***

## ComputerUseLifecycleResponse

**Properties**:

- `message` _string_
- `status` _Record\<string, ComputerUseProcessStatus\>_

***

## ComputerUseMouseButton

```ts
type ComputerUseMouseButton = 'left' | 'right' | 'middle'
```

***

## ComputerUseMouseClickRequest

**Properties**:

- `x` _number_
- `y` _number_
- `button?` _ComputerUseMouseButton_
- `double?` _boolean_

***

## ComputerUseMouseDragRequest

**Properties**:

- `startX` _number_
- `startY` _number_
- `endX` _number_
- `endY` _number_
- `button` _ComputerUseMouseButton_

***

## ComputerUseMouseMoveRequest

**Properties**:

- `x` _number_
- `y` _number_

***

## ComputerUseMouseScrollRequest

**Properties**:

- `x` _number_
- `y` _number_
- `direction` _ComputerUseScrollDirection_
- `amount?` _number_

***

## ComputerUsePoint

**Properties**:

- `x` _number_
- `y` _number_

***

## ComputerUseProcessErrorsResponse

**Properties**:

- `processName` _string_
- `errors` _string_

***

## ComputerUseProcessLogsResponse

**Properties**:

- `processName` _string_
- `logs` _string_

***

## ComputerUseProcessRestartResponse

**Properties**:

- `message` _string_
- `processName` _string_

***

## ComputerUseProcessRunningStatus

**Properties**:

- `processName` _string_
- `running` _boolean_

***

## ComputerUseProcessStatus

**Properties**:

- `running?` _boolean_
- `priority?` _number_
- `autoRestart?` _boolean_
- `pid?` _number_
- `failed?` _boolean_
- `restartAttempts?` _number_
- `restartBackoffMs?` _number_
- `status?` _string_
- `extraFields?` _Record\<string, unknown\>_

***

## ComputerUseRecording

**Properties**:

- `id` _string_
- `fileName` _string_
- `filePath` _string_
- `startTime` _string_
- `endTime?` _string_
- `status` _string_
- `durationSeconds?` _number_
- `sizeBytes?` _number_

***

## ComputerUseRecordingsResponse

**Properties**:

- `recordings` _ComputerUseRecording\[\]_

***

## ComputerUseRecordingStartRequest

**Properties**:

- `label?` _string_

***

## ComputerUseRecordingStopRequest

**Properties**:

- `id` _string_

***

## ComputerUseScreenshotCompressedOptions

**Properties**:

- `format?` _ComputerUseScreenshotFormat_
- `quality?` _number_
- `scale?` _number_
- `showCursor?` _boolean_

***

## ComputerUseScreenshotFormat

```ts
type ComputerUseScreenshotFormat = 'png' | 'jpeg'
```

***

## ComputerUseScreenshotRegionCompressedOptions

**Properties**:

- `x` _number_
- `y` _number_
- `width` _number_
- `height` _number_
- `showCursor?` _boolean_
- `format?` _ComputerUseScreenshotFormat_
- `quality?` _number_
- `scale?` _number_

***

## ComputerUseScreenshotRegionOptions

**Properties**:

- `x` _number_
- `y` _number_
- `width` _number_
- `height` _number_
- `showCursor?` _boolean_

***

## ComputerUseScreenshotResponse

**Properties**:

- `screenshot` _string_
- `cursorPosition?` _ComputerUsePoint_
- `sizeBytes?` _number_

***

## ComputerUseScrollDirection

```ts
type ComputerUseScrollDirection = 'up' | 'down'
```

***

## ComputerUseScrollResponse

**Properties**:

- `success` _boolean_

***

## ComputerUseStatusResponse

```ts
type ComputerUseStatusResponse =
  | ComputerUseNotStartedStatus
  | ComputerUseStartingStatus
  | ComputerUseReadyStatus
  | ComputerUseFailedStatus
  | ComputerUseUnknownStatus
```

***

## ComputerUseWindow

**Properties**:

- `id` _number_
- `title` _string_
- `x` _number_
- `y` _number_
- `width` _number_
- `height` _number_
- `isActive` _boolean_