feat: add computer control and managed browser
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
import type {
|
||||
ComputerControlError,
|
||||
ComputerControlErrorCode
|
||||
} from '../../shared/computer-control-contracts'
|
||||
|
||||
export class ComputerControlFailure extends Error {
|
||||
readonly code: ComputerControlErrorCode
|
||||
readonly retryable: boolean
|
||||
|
||||
constructor(
|
||||
code: ComputerControlErrorCode,
|
||||
message: string,
|
||||
retryable = false
|
||||
) {
|
||||
super(message)
|
||||
this.name = 'ComputerControlFailure'
|
||||
this.code = code
|
||||
this.retryable = retryable
|
||||
}
|
||||
|
||||
toContract(): ComputerControlError {
|
||||
return {
|
||||
code: this.code,
|
||||
message: this.message.slice(0, 256) || 'Computer control failed',
|
||||
retryable: this.retryable
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const cancellationFailure = (): ComputerControlFailure =>
|
||||
new ComputerControlFailure('cancelled', 'Computer control was cancelled')
|
||||
Reference in New Issue
Block a user