UNPKG

magnitude-core

Version:
59 lines (58 loc) 1.98 kB
import { AgentConnector } from "."; import { ActionDefinition } from '@/actions'; import { Observation } from "@/memory/observation"; /** * Generic desktop automation interface. * Implementations can use any desktop automation technology * (Lume, PyAutoGUI, Windows UI Automation, etc.) */ export interface DesktopInterface { click(x: number, y: number): Promise<void>; rightClick(x: number, y: number): Promise<void>; doubleClick(x: number, y: number): Promise<void>; moveCursor(x: number, y: number): Promise<void>; drag(fromX: number, fromY: number, toX: number, toY: number): Promise<void>; scroll(x: number, y: number, deltaX: number, deltaY: number): Promise<void>; type(text: string): Promise<void>; key(key: string): Promise<void>; hotkey(keys: string[]): Promise<void>; screenshot(): Promise<Buffer>; getScreenSize(): Promise<{ width: number; height: number; }>; navigate?(url: string): Promise<void>; getActiveWindow?(): Promise<{ title: string; app: string; }>; getOpenWindows?(): Promise<Array<{ title: string; app: string; isActive: boolean; }>>; focusWindow?(title: string): Promise<void>; openApplication?(name: string): Promise<void>; closeApplication?(name: string): Promise<void>; } export interface DesktopConnectorOptions { desktopInterface: DesktopInterface; virtualScreenDimensions?: { width: number; height: number; }; minScreenshots?: number; } export declare class DesktopConnector implements AgentConnector { readonly id: string; private desktopInterface; private options; private logger; constructor(options: DesktopConnectorOptions); onStart(): Promise<void>; onStop(): Promise<void>; getActionSpace(): ActionDefinition<any>[]; collectObservations(): Promise<Observation[]>; private formatWindowInfo; getInterface(): DesktopInterface; }