Skip to content

agent.utils

Interface

Utility functions, job management, and file operations. Accessed through agent.utils — random gesture helpers, event callbacks, job task management, server connectivity, and file operations.

AgentUtils Interface Overview
interface AgentUtils {
  // Gesture helpers
  randomClick(x1: number, y1: number, x2: number, y2: number): void;
  randomSwipe(x1: number, y1: number, x2: number, y2: number, direction: Direction): void;

  // Server connectivity
  isServerReachable(): Promise<{ reachable: true } | { reachable: false; error: string }>;

  // Event callbacks (for notifications, see agent.notifications)
  setNetworkCallback(callback: NetworkCallback | null): void;
  toastCallback: ToastCallback | null;

  // Step tracking & debugging
  outOfSteps: {
    storeScreen(screen: AndroidNode, stage: string, screenState: string, remainingSteps: number, screenshotRecord: ScreenshotRecord): Promise<void>;
    submit(type: "outOfSteps" | "timeout" | "debug"): Promise<SubmitResult>;
  };

  // Job task management
  job: {
    submitTask(status: AutomationStatus, data: Record<string, any>, finish: boolean, files: File[]): Promise<TaskResult>;
    useAnotherTask(): Promise<TaskInfo | null>;
    getCurrentTask(): Promise<CurrentTaskResult>;
  };

  // Bucket storage (device+job scoped)
  bucket: { get(): Promise<BucketResult>; set(data: Partial<Bucket>): Promise<BucketResult> };

  // Device bucket storage (device-only scoped)
  deviceBucket: { get(): Promise<DeviceBucketResult>; set(data: Record<string, any>): Promise<DeviceBucketResult> };

  // File operations
  files: AgentFiles;
}
For notification callbacks, see agent.notifications.