@elizaos/plugin-intiface
Version:
ElizaOS plugin for controlling intimate hardware devices via Intiface/Buttplug protocol
60 lines (57 loc) • 1.95 kB
TypeScript
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 };