UNPKG

@elizaos/plugin-intiface

Version:

ElizaOS plugin for controlling intimate hardware devices via Intiface/Buttplug protocol

60 lines (57 loc) 1.95 kB
import { Plugin, Service, IAgentRuntime } from '@elizaos/core'; interface Device { name: string; index: number; vibrate?: (speed: number) => Promise<void>; rotate?: (speed: number, clockwise?: boolean) => Promise<void>; stop?: () => Promise<void>; battery?: () => Promise<number>; id?: number; vibrateCmd?: any; rotateCmd?: any; } interface IIntifaceService extends Service { vibrate(strength: number, duration: number): Promise<void>; rotate?(strength: number, duration: number): Promise<void>; getBatteryLevel?(): Promise<number>; isConnected(): boolean; getDevices(): Device[]; } declare class IntifaceService extends Service implements IIntifaceService { static serviceType: "INTIFACE"; private client; private connected; private devices; private vibrateQueue; private isProcessingQueue; private intifaceConfig; private maxVibrationIntensity; private rampUpAndDown; private rampSteps; private preferredDeviceName; get serviceType(): "INTIFACE"; get capabilityDescription(): string; start(): Promise<void>; stop(): Promise<void>; constructor(); private cleanup; getInstance(): IIntifaceService; initialize(runtime: IAgentRuntime): Promise<void>; connect(): Promise<void>; private scanAndGrabDevices; private ensureDeviceAvailable; disconnect(): Promise<void>; private handleDeviceAdded; private handleDeviceRemoved; getDevices(): Device[]; isConnected(): boolean; private addToVibrateQueue; private processVibrateQueue; private handleVibrate; vibrate(strength: number, duration: number): Promise<void>; getBatteryLevel(): Promise<number>; rotate(strength: number, duration: number): Promise<void>; private rampedRotate; } declare const intifacePlugin: Plugin; export { type IIntifaceService, IntifaceService, intifacePlugin as default, intifacePlugin };