@elizaos/plugin-vision 2.0.0-alpha.5 → 2.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +32 -31
- package/dist/index.js.map +3 -3
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"// Vision service for camera integration and scene analysis\n\nimport { exec } from \"node:child_process\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport { promisify } from \"node:util\";\nimport {\n type IAgentRuntime,\n logger,\n ModelType,\n Service,\n type ServiceTypeName,\n} from \"@elizaos/core\";\nimport sharp from \"sharp\";\nimport { AudioCaptureService, type AudioConfig } from \"./audio-capture\";\nimport { StreamingAudioCaptureService, type StreamingAudioConfig } from \"./audio-capture-stream\";\nimport { EntityTracker } from \"./entity-tracker\";\nimport { FaceRecognition } from \"./face-recognition\";\nimport { Florence2Model } from \"./florence2-model\";\nimport { OCRService } from \"./ocr-service\";\nimport { ScreenCaptureService } from \"./screen-capture\";\nimport {\n type BoundingBox,\n type CameraInfo,\n type DetectedObject,\n type EnhancedSceneDescription,\n type PersonInfo,\n type SceneDescription,\n type ScreenCapture,\n type ScreenTile,\n type TileAnalysis,\n type VisionConfig,\n type VisionFrame,\n VisionMode,\n VisionServiceType,\n} from \"./types\";\nimport { VisionModels } from \"./vision-models\";\nimport { VisionWorkerManager } from \"./vision-worker-manager\";\n\nconst execAsync = promisify(exec);\n\ninterface CameraDevice {\n id: string;\n name: string;\n capture: () => Promise<Buffer>;\n}\n\nexport class VisionService extends Service {\n static override serviceType: ServiceTypeName = VisionServiceType.VISION;\n override capabilityDescription =\n \"Provides visual perception through camera integration and scene analysis.\";\n\n private visionConfig: VisionConfig;\n private camera: CameraDevice | null = null;\n private lastFrame: VisionFrame | null = null;\n private lastSceneDescription: SceneDescription | null = null;\n private frameProcessingInterval: NodeJS.Timeout | null = null;\n private screenProcessingInterval: NodeJS.Timeout | null = null;\n private isProcessing = false;\n private isProcessingScreen = false;\n private visionModels: VisionModels;\n private faceRecognition: FaceRecognition;\n private entityTracker: EntityTracker;\n private audioCapture: AudioCaptureService | null = null;\n private streamingAudioCapture: StreamingAudioCaptureService | null = null;\n\n // Screen vision components\n private screenCapture: ScreenCaptureService;\n private florence2: Florence2Model;\n private ocrService: OCRService;\n private lastScreenCapture: ScreenCapture | null = null;\n private lastEnhancedScene: EnhancedSceneDescription | null = null;\n\n // Worker manager for high-FPS processing\n private workerManager: VisionWorkerManager | null = null;\n\n // Add tracking for last update times\n private lastTfUpdateTime = 0;\n private lastVlmUpdateTime = 0;\n private lastTfDescription = \"\";\n\n // Default configuration\n private readonly DEFAULT_CONFIG: VisionConfig = {\n pixelChangeThreshold: 50, // 50% change required for VLM update\n updateInterval: 100, // Process frames every 100ms\n enablePoseDetection: false,\n enableObjectDetection: false,\n tfUpdateInterval: 1000, // TensorFlow update every 1 second\n vlmUpdateInterval: 10000, // VLM update every 10 seconds\n tfChangeThreshold: 10, // 10% change triggers TF update\n vlmChangeThreshold: 50, // 50% change triggers VLM update\n visionMode: VisionMode.CAMERA, // Default to camera only\n screenCaptureInterval: 2000, // Screen capture every 2 seconds\n tileSize: 256,\n tileProcessingOrder: \"priority\",\n ocrEnabled: true,\n florence2Enabled: true,\n };\n\n constructor(runtime: IAgentRuntime) {\n super(runtime);\n\n // Load configuration from runtime settings\n this.visionConfig = this.parseConfig(runtime);\n\n // Initialize vision models\n this.visionModels = new VisionModels();\n\n // Initialize face recognition\n this.faceRecognition = new FaceRecognition();\n\n // Initialize entity tracker\n const worldIdValue = runtime.getSetting(\"WORLD_ID\");\n const worldId = typeof worldIdValue === \"string\" ? worldIdValue : \"default-world\";\n this.entityTracker = new EntityTracker(worldId);\n\n // Initialize screen capture\n this.screenCapture = new ScreenCaptureService(this.visionConfig);\n\n // Initialize Florence-2\n this.florence2 = new Florence2Model();\n\n // Initialize OCR service\n this.ocrService = new OCRService();\n\n logger.info(\"[VisionService] Constructed with config:\", JSON.stringify(this.visionConfig));\n }\n\n private parseConfig(runtime: IAgentRuntime): VisionConfig {\n const getSettingString = (key: string): string | undefined => {\n const value = runtime.getSetting(key);\n return value === true || value === false\n ? String(value)\n : typeof value === \"string\"\n ? value\n : typeof value === \"number\"\n ? String(value)\n : undefined;\n };\n\n return {\n ...this.DEFAULT_CONFIG,\n cameraName: getSettingString(\"CAMERA_NAME\") || getSettingString(\"VISION_CAMERA_NAME\"),\n pixelChangeThreshold:\n Number(\n runtime.getSetting(\"PIXEL_CHANGE_THRESHOLD\") ||\n runtime.getSetting(\"VISION_PIXEL_CHANGE_THRESHOLD\")\n ) || this.DEFAULT_CONFIG.pixelChangeThreshold,\n enableObjectDetection:\n runtime.getSetting(\"ENABLE_OBJECT_DETECTION\") === \"true\" ||\n runtime.getSetting(\"VISION_ENABLE_OBJECT_DETECTION\") === \"true\",\n enablePoseDetection:\n runtime.getSetting(\"ENABLE_POSE_DETECTION\") === \"true\" ||\n runtime.getSetting(\"VISION_ENABLE_POSE_DETECTION\") === \"true\",\n tfUpdateInterval:\n Number(\n runtime.getSetting(\"TF_UPDATE_INTERVAL\") ||\n runtime.getSetting(\"VISION_TF_UPDATE_INTERVAL\")\n ) || this.DEFAULT_CONFIG.tfUpdateInterval,\n vlmUpdateInterval:\n Number(\n runtime.getSetting(\"VLM_UPDATE_INTERVAL\") ||\n runtime.getSetting(\"VISION_VLM_UPDATE_INTERVAL\")\n ) || this.DEFAULT_CONFIG.vlmUpdateInterval,\n tfChangeThreshold:\n Number(\n runtime.getSetting(\"TF_CHANGE_THRESHOLD\") ||\n runtime.getSetting(\"VISION_TF_CHANGE_THRESHOLD\")\n ) || this.DEFAULT_CONFIG.tfChangeThreshold,\n vlmChangeThreshold:\n Number(\n runtime.getSetting(\"VLM_CHANGE_THRESHOLD\") ||\n runtime.getSetting(\"VISION_VLM_CHANGE_THRESHOLD\")\n ) || this.DEFAULT_CONFIG.vlmChangeThreshold,\n visionMode: (getSettingString(\"VISION_MODE\") as VisionMode) || this.DEFAULT_CONFIG.visionMode,\n screenCaptureInterval:\n Number(\n runtime.getSetting(\"SCREEN_CAPTURE_INTERVAL\") ||\n runtime.getSetting(\"VISION_SCREEN_CAPTURE_INTERVAL\")\n ) || this.DEFAULT_CONFIG.screenCaptureInterval,\n ocrEnabled:\n getSettingString(\"OCR_ENABLED\") === \"true\" ||\n getSettingString(\"VISION_OCR_ENABLED\") === \"true\",\n florence2Enabled:\n getSettingString(\"FLORENCE2_ENABLED\") === \"true\" ||\n getSettingString(\"VISION_FLORENCE2_ENABLED\") === \"true\",\n };\n }\n\n static async start(runtime: IAgentRuntime): Promise<VisionService> {\n const service = new VisionService(runtime);\n await service.initialize();\n return service;\n }\n\n private async checkCameraTools(): Promise<{ available: boolean; tool: string }> {\n const platform = process.platform;\n\n try {\n if (platform === \"darwin\") {\n // Check if imagesnap is installed\n await execAsync(\"which imagesnap\");\n return { available: true, tool: \"imagesnap\" };\n } else if (platform === \"linux\") {\n // Check if fswebcam is installed\n await execAsync(\"which fswebcam\");\n return { available: true, tool: \"fswebcam\" };\n } else if (platform === \"win32\") {\n // Check if ffmpeg is available\n await execAsync(\"where ffmpeg\");\n return { available: true, tool: \"ffmpeg\" };\n }\n return { available: false, tool: \"none\" };\n } catch (_error) {\n // Tool not found\n return { available: false, tool: \"none\" };\n }\n }\n\n private async initialize(): Promise<void> {\n try {\n // Initialize vision models if enabled\n const useEnhancedModels =\n this.visionConfig.enableObjectDetection || this.visionConfig.enablePoseDetection;\n\n if (useEnhancedModels) {\n try {\n // Try to initialize TensorFlow models first\n await this.visionModels.initialize({\n enableObjectDetection: this.visionConfig.enableObjectDetection || false,\n enablePoseDetection: this.visionConfig.enablePoseDetection || false,\n });\n logger.info(\"[VisionService] Using TensorFlow.js models for advanced detection\");\n } catch (_tfError) {\n logger.warn(\n \"[VisionService] TensorFlow.js not available, falling back to enhanced heuristics\"\n );\n // Fall back to enhanced heuristics\n await this.visionModels.initialize({\n enableObjectDetection: this.visionConfig.enableObjectDetection || false,\n enablePoseDetection: this.visionConfig.enablePoseDetection || false,\n });\n logger.info(\"[VisionService] Using enhanced heuristics for detection\");\n }\n }\n\n // Initialize screen vision if enabled\n if (\n this.visionConfig.visionMode === VisionMode.SCREEN ||\n this.visionConfig.visionMode === VisionMode.BOTH\n ) {\n await this.initializeScreenVision();\n }\n\n // Initialize camera if enabled\n if (\n this.visionConfig.visionMode === VisionMode.CAMERA ||\n this.visionConfig.visionMode === VisionMode.BOTH\n ) {\n await this.initializeCameraVision();\n }\n\n // Initialize audio capture if enabled\n await this.initializeAudioCapture();\n\n // Start processing based on mode\n this.startProcessing();\n } catch (error) {\n logger.error(\"[VisionService] Failed to initialize:\", error);\n }\n }\n\n private async initializeScreenVision(): Promise<void> {\n try {\n logger.info(\"[VisionService] Initializing screen vision...\");\n\n // Check if we should use worker threads for high-FPS processing\n const useWorkers =\n this.visionConfig.targetScreenFPS && this.visionConfig.targetScreenFPS > 10;\n\n if (useWorkers) {\n // Initialize worker manager for high-FPS processing\n logger.info(\"[VisionService] Initializing worker threads for high-FPS processing...\");\n this.workerManager = new VisionWorkerManager(this.visionConfig);\n await this.workerManager.initialize();\n logger.info(\"[VisionService] Worker threads initialized\");\n } else {\n // Initialize standard components\n // Initialize Florence-2 if enabled\n if (this.visionConfig.florence2Enabled) {\n await this.florence2.initialize();\n }\n\n // Initialize OCR if enabled\n if (this.visionConfig.ocrEnabled) {\n await this.ocrService.initialize();\n }\n }\n\n // Get screen info\n const screenInfo = await this.screenCapture.getScreenInfo();\n if (screenInfo) {\n logger.info(`[VisionService] Screen resolution: ${screenInfo.width}x${screenInfo.height}`);\n }\n\n logger.info(\"[VisionService] Screen vision initialized\");\n } catch (error) {\n logger.error(\"[VisionService] Failed to initialize screen vision:\", error);\n }\n }\n\n private async initializeCameraVision(): Promise<void> {\n // Check if camera tools are available\n const toolCheck = await this.checkCameraTools();\n if (!toolCheck.available) {\n const platform = process.platform;\n const toolName =\n platform === \"darwin\" ? \"imagesnap\" : platform === \"linux\" ? \"fswebcam\" : \"ffmpeg\";\n logger.warn(\n `[VisionService] Camera capture tool '${toolName}' not found. Install it to enable camera functionality.`\n );\n logger.warn(\"[VisionService] For macOS: brew install imagesnap\");\n logger.warn(\"[VisionService] For Linux: sudo apt-get install fswebcam\");\n logger.warn(\"[VisionService] For Windows: Install ffmpeg and add to PATH\");\n return;\n }\n\n // Find and connect to camera\n const camera = await this.findCamera();\n if (camera) {\n this.camera = camera;\n logger.info(`[VisionService] Connected to camera: ${camera.name}`);\n } else {\n logger.warn(\"[VisionService] No suitable camera found\");\n }\n }\n\n private async initializeAudioCapture(): Promise<void> {\n const getSettingString = (key: string): string | undefined => {\n const value = this.runtime.getSetting(key);\n return value === true || value === false\n ? String(value)\n : typeof value === \"string\"\n ? value\n : typeof value === \"number\"\n ? String(value)\n : undefined;\n };\n const enableMicrophone = getSettingString(\"ENABLE_MICROPHONE\") === \"true\";\n const useStreamingAudio = getSettingString(\"USE_STREAMING_AUDIO\") === \"true\";\n\n if (!enableMicrophone) {\n logger.info(\"[VisionService] Microphone capture disabled\");\n return;\n }\n\n try {\n if (useStreamingAudio) {\n // Use new streaming audio with VAD\n const getSettingNumber = (key: string, defaultValue: number): number => {\n const value = this.runtime.getSetting(key);\n if (typeof value === \"number\") return value;\n if (typeof value === \"string\") {\n const parsed = Number(value);\n return Number.isNaN(parsed) ? defaultValue : parsed;\n }\n return defaultValue;\n };\n const streamingConfig: StreamingAudioConfig = {\n enabled: true,\n sampleRate: 16000,\n channels: 1,\n vadThreshold: getSettingNumber(\"VAD_THRESHOLD\", 0.01),\n silenceTimeout: getSettingNumber(\"SILENCE_TIMEOUT\", 1500),\n responseDelay: getSettingNumber(\"RESPONSE_DELAY\", 3000),\n };\n\n this.streamingAudioCapture = new StreamingAudioCaptureService(\n this.runtime,\n streamingConfig\n );\n\n // Set up event listeners\n this.streamingAudioCapture.on(\"speechStart\", () => {\n logger.info(\"[VisionService] User started speaking\");\n });\n\n this.streamingAudioCapture.on(\"speechEnd\", () => {\n logger.info(\"[VisionService] User stopped speaking\");\n });\n\n this.streamingAudioCapture.on(\n \"transcription\",\n (data: { text: string; isFinal: boolean }) => {\n logger.info(\n `[VisionService] Transcription (${data.isFinal ? \"final\" : \"partial\"}): ${data.text}`\n );\n }\n );\n\n this.streamingAudioCapture.on(\"utteranceComplete\", async (text: string) => {\n logger.info(\"[VisionService] Processing complete utterance:\", text);\n // Store the transcription in memory for context\n await this.storeAudioTranscription(text);\n });\n\n await this.streamingAudioCapture.initialize();\n logger.info(\"[VisionService] Streaming audio capture initialized with VAD\");\n } else {\n // Use original batch audio capture\n const getSettingNumber = (key: string, defaultValue: number): number => {\n const value = this.runtime.getSetting(key);\n if (typeof value === \"number\") return value;\n if (typeof value === \"string\") {\n const parsed = Number(value);\n return Number.isNaN(parsed) ? defaultValue : parsed;\n }\n return defaultValue;\n };\n const audioConfig: AudioConfig = {\n enabled: true,\n transcriptionInterval: getSettingNumber(\"TRANSCRIPTION_INTERVAL\", 30000),\n };\n\n this.audioCapture = new AudioCaptureService(this.runtime, audioConfig);\n await this.audioCapture.initialize();\n logger.info(\"[VisionService] Batch audio capture initialized\");\n }\n } catch (error) {\n logger.error(\"[VisionService] Failed to initialize audio capture:\", error);\n // Continue without audio\n }\n }\n\n private async storeAudioTranscription(text: string): Promise<void> {\n try {\n // Store transcription in the current scene description\n if (this.lastSceneDescription) {\n this.lastSceneDescription.audioTranscription = text;\n }\n\n // You could also create a memory here if needed\n logger.debug(\"[VisionService] Stored audio transcription in scene context\");\n } catch (error) {\n logger.error(\"[VisionService] Failed to store audio transcription:\", error);\n }\n }\n\n private startProcessing(): void {\n // Start camera processing if enabled\n if (\n (this.visionConfig.visionMode === VisionMode.CAMERA ||\n this.visionConfig.visionMode === VisionMode.BOTH) &&\n this.camera\n ) {\n this.startFrameProcessing();\n }\n\n // Start screen processing if enabled\n if (\n this.visionConfig.visionMode === VisionMode.SCREEN ||\n this.visionConfig.visionMode === VisionMode.BOTH\n ) {\n this.startScreenProcessing();\n }\n }\n\n private startFrameProcessing(): void {\n if (this.frameProcessingInterval) {\n return;\n }\n\n this.frameProcessingInterval = setInterval(async () => {\n if (!this.isProcessing && this.camera) {\n this.isProcessing = true;\n try {\n await this.captureAndProcessFrame();\n } catch (error) {\n logger.error(\"[VisionService] Frame processing error:\", error);\n }\n this.isProcessing = false;\n }\n }, this.visionConfig.updateInterval || 100);\n\n logger.debug(\"[VisionService] Started frame processing loop\");\n }\n\n private async captureAndProcessFrame(): Promise<void> {\n if (!this.camera) {\n return;\n }\n\n try {\n // Capture frame from camera\n const frameData = await this.camera.capture();\n\n // Skip if no data\n if (!frameData || frameData.length === 0) {\n logger.debug(\"[VisionService] Camera returned empty frame, skipping\");\n return;\n }\n\n // Convert to standardized format\n const frame = await this.processFrameData(frameData);\n\n // Validate frame before processing\n if (!frame || frame.width === 0 || frame.height === 0) {\n logger.warn(\"[VisionService] Invalid frame dimensions, skipping\");\n return;\n }\n\n // Check if scene has changed significantly\n const changePercentage = this.lastFrame\n ? await this.calculatePixelChange(this.lastFrame, frame)\n : 100;\n\n // Update scene description if change is significant or enough time has passed\n // Always call updateSceneDescription - it will decide what to update based on thresholds\n await this.updateSceneDescription(frame, changePercentage);\n\n this.lastFrame = frame;\n } catch (error) {\n logger.error(\"[VisionService] Error capturing frame:\", error);\n }\n }\n\n private async processFrameData(data: Buffer): Promise<VisionFrame> {\n // Validate input data\n if (!data || data.length === 0) {\n throw new Error(\"Empty frame data received from camera\");\n }\n\n // Use sharp to ensure consistent format\n const image = sharp(data);\n const metadata = await image.metadata();\n\n // Validate metadata\n if (!metadata.width || !metadata.height || metadata.width === 0 || metadata.height === 0) {\n throw new Error(`Invalid image dimensions: ${metadata.width}x${metadata.height}`);\n }\n\n const rgbaBuffer = await image.ensureAlpha().raw().toBuffer();\n\n return {\n timestamp: Date.now(),\n width: metadata.width,\n height: metadata.height,\n data: rgbaBuffer,\n format: \"rgba\",\n };\n }\n\n private async calculatePixelChange(frame1: VisionFrame, frame2: VisionFrame): Promise<number> {\n if (frame1.width !== frame2.width || frame1.height !== frame2.height) {\n return 100; // Different dimensions = complete change\n }\n\n const pixels1 = frame1.data;\n const pixels2 = frame2.data;\n let changedPixels = 0;\n const totalPixels = frame1.width * frame1.height;\n const threshold = 30; // RGB difference threshold\n\n for (let i = 0; i < pixels1.length; i += 4) {\n const r1 = pixels1[i];\n const g1 = pixels1[i + 1];\n const b1 = pixels1[i + 2];\n const r2 = pixels2[i];\n const g2 = pixels2[i + 1];\n const b2 = pixels2[i + 2];\n\n const diff = Math.abs(r1 - r2) + Math.abs(g1 - g2) + Math.abs(b1 - b2);\n if (diff > threshold) {\n changedPixels++;\n }\n }\n\n return (changedPixels / totalPixels) * 100;\n }\n\n private async updateSceneDescription(\n frame: VisionFrame,\n changePercentage: number\n ): Promise<void> {\n try {\n const currentTime = Date.now();\n\n // Convert frame to base64 for VLM\n const jpegBuffer = await sharp(frame.data, {\n raw: {\n width: frame.width,\n height: frame.height,\n channels: 4,\n },\n })\n .jpeg()\n .toBuffer();\n\n const base64Image = jpegBuffer.toString(\"base64\");\n const imageUrl = `data:image/jpeg;base64,${base64Image}`;\n\n // Determine if we should update VLM description\n const timeSinceVlmUpdate = currentTime - this.lastVlmUpdateTime;\n const vlmUpdateInterval = this.visionConfig.vlmUpdateInterval ?? 10000;\n const vlmChangeThreshold = this.visionConfig.vlmChangeThreshold ?? 50;\n const shouldUpdateVlm =\n timeSinceVlmUpdate >= vlmUpdateInterval || // Time threshold\n changePercentage >= vlmChangeThreshold; // Change threshold\n\n let description = this.lastTfDescription;\n\n if (shouldUpdateVlm) {\n // Use VLM to describe the scene\n description = await this.describeSceneWithVLM(imageUrl);\n this.lastVlmUpdateTime = currentTime;\n this.lastTfDescription = description;\n logger.debug(\n `[VisionService] VLM updated: ${timeSinceVlmUpdate}ms since last update, ${changePercentage.toFixed(1)}% change`\n );\n }\n\n // Determine if we should update TensorFlow detections\n const timeSinceTfUpdate = currentTime - this.lastTfUpdateTime;\n const tfUpdateInterval = this.visionConfig.tfUpdateInterval ?? 1000;\n const tfChangeThreshold = this.visionConfig.tfChangeThreshold ?? 10;\n const shouldUpdateTf =\n timeSinceTfUpdate >= tfUpdateInterval || // Time threshold\n changePercentage >= tfChangeThreshold; // Change threshold\n\n let detectedObjects: DetectedObject[] = [];\n let people: PersonInfo[] = [];\n\n if (\n shouldUpdateTf &&\n (this.visionConfig.enableObjectDetection || this.visionConfig.enablePoseDetection)\n ) {\n this.lastTfUpdateTime = currentTime;\n logger.debug(\n `[VisionService] TF updating: ${timeSinceTfUpdate}ms since last update, ${changePercentage.toFixed(1)}% change`\n );\n\n // Use advanced computer vision if enabled\n if (this.visionConfig.enableObjectDetection) {\n if (this.visionModels.hasObjectDetection()) {\n detectedObjects = await this.visionModels.detectObjects(\n frame.data,\n frame.width,\n frame.height\n );\n logger.debug(`[VisionService] VisionModels detected ${detectedObjects.length} objects`);\n }\n }\n\n if (this.visionConfig.enablePoseDetection) {\n if (this.visionModels.hasPoseDetection()) {\n const poses = await this.visionModels.detectPoses(\n frame.data,\n frame.width,\n frame.height\n );\n people = poses;\n logger.debug(\n `[VisionService] VisionModels detected ${people.length} people with poses`\n );\n }\n }\n\n // If no people detected via pose but objects detected, check for person objects\n if (people.length === 0 && detectedObjects.length > 0) {\n const personObjects = detectedObjects.filter((obj) => obj.type === \"person\");\n people = personObjects.map((obj) => ({\n id: `person-${obj.id}`,\n pose: \"unknown\" as const,\n facing: \"unknown\" as const,\n confidence: obj.confidence,\n boundingBox: obj.boundingBox,\n }));\n }\n } else if (!shouldUpdateTf && this.lastSceneDescription) {\n // Reuse last detection results if not updating\n detectedObjects = this.lastSceneDescription.objects;\n people = this.lastSceneDescription.people;\n } else {\n // Fall back to motion-based detection\n detectedObjects = await this.detectMotionObjects(frame);\n people = await this.detectPeopleFromMotion(frame, detectedObjects);\n }\n\n // Face recognition and entity tracking\n const faceProfiles = new Map<string, string>();\n const getSettingString = (key: string): string | undefined => {\n const value = this.runtime.getSetting(key);\n return value === true || value === false\n ? String(value)\n : typeof value === \"string\"\n ? value\n : typeof value === \"number\"\n ? String(value)\n : undefined;\n };\n const enableFaceRecognition = getSettingString(\"ENABLE_FACE_RECOGNITION\") === \"true\";\n\n if (enableFaceRecognition && people.length > 0 && frame.width > 0 && frame.height > 0) {\n try {\n // Validate frame data\n if (!frame.data || frame.data.length === 0) {\n logger.warn(\"[VisionService] Invalid frame data for face recognition\");\n return;\n }\n\n // Detect faces in the frame\n const faces = await this.faceRecognition.detectFaces(\n frame.data,\n frame.width,\n frame.height\n );\n\n // Match faces to people based on bounding box overlap\n for (const face of faces) {\n const faceBox = face.detection.box;\n\n // Find the person this face belongs to\n for (const person of people) {\n const overlap = this.calculateBoxOverlap(person.boundingBox, {\n x: Math.round(faceBox.x),\n y: Math.round(faceBox.y),\n width: Math.round(faceBox.width),\n height: Math.round(faceBox.height),\n });\n\n if (overlap > 0.5) {\n // 50% overlap threshold\n // Recognize or register the face\n const match = await this.faceRecognition.recognizeFace(face.descriptor);\n let profileId: string;\n\n if (match) {\n profileId = match.profileId;\n logger.debug(\n `[VisionService] Recognized face: ${profileId} (distance: ${match.distance})`\n );\n } else {\n // Register new face\n profileId = await this.faceRecognition.addOrUpdateFace(face.descriptor, {\n attributes: {\n age: face.ageGender?.age.toString(),\n gender: face.ageGender?.gender,\n emotion: face.expressions\n ? this.getDominantExpression(face.expressions)\n : undefined,\n },\n });\n logger.info(`[VisionService] New face registered: ${profileId}`);\n }\n\n faceProfiles.set(person.id, profileId);\n break;\n }\n }\n }\n } catch (faceError) {\n logger.error(\"[VisionService] Face recognition error:\", faceError);\n }\n }\n\n // Update entity tracker\n const _trackedEntities = await this.entityTracker.updateEntities(\n detectedObjects,\n people,\n faceProfiles,\n this.runtime\n );\n\n // Create scene description\n this.lastSceneDescription = {\n timestamp: frame.timestamp,\n description,\n objects: detectedObjects,\n people,\n sceneChanged: shouldUpdateVlm || shouldUpdateTf,\n changePercentage,\n };\n\n // Enhanced logging\n if (shouldUpdateVlm || shouldUpdateTf) {\n logger.info(\"[VisionService] Scene Analysis Complete:\");\n logger.info(` VLM Description: ${description.substring(0, 100)}...`);\n logger.info(` Change: ${changePercentage.toFixed(1)}%`);\n logger.info(\n ` Updates: ${shouldUpdateVlm ? \"VLM\" : \"\"}${shouldUpdateVlm && shouldUpdateTf ? \" + \" : \"\"}${shouldUpdateTf ? \"TF\" : \"\"}`\n );\n logger.info(\n ` Detection Mode: ${this.visionConfig.enableObjectDetection ? \"Advanced CV\" : \"Motion-based\"}`\n );\n\n if (detectedObjects.length > 0) {\n logger.info(` Objects: ${detectedObjects.length} detected`);\n\n // Group objects by type for summary\n const objectSummary = detectedObjects.reduce(\n (acc, obj) => {\n acc[obj.type] = (acc[obj.type] || 0) + 1;\n return acc;\n },\n {} as Record<string, number>\n );\n\n for (const [type, count] of Object.entries(objectSummary)) {\n logger.info(` - ${count} ${type}(s)`);\n }\n }\n\n if (people.length > 0) {\n logger.info(` People: ${people.length} detected`);\n for (const person of people) {\n logger.info(\n ` - Person: ${person.pose} pose, facing ${person.facing}, confidence: ${person.confidence.toFixed(2)}`\n );\n }\n }\n }\n } catch (error) {\n logger.error(\"[VisionService] Failed to update scene description:\", error);\n }\n }\n\n private async describeSceneWithVLM(imageUrl: string): Promise<string> {\n try {\n // Convert base64 image URL to buffer for Florence-2\n if (imageUrl.startsWith(\"data:image/\")) {\n const base64Data = imageUrl.split(\",\")[1];\n const imageBuffer = Buffer.from(base64Data, \"base64\");\n\n // Use Florence-2 for all image descriptions\n if (this.florence2.isInitialized()) {\n try {\n const result = await this.florence2.analyzeImage(imageBuffer);\n if (result.caption) {\n logger.debug(\"[VisionService] Florence-2 description:\", result.caption);\n return result.caption;\n }\n } catch (florenceError) {\n logger.warn(\"[VisionService] Florence-2 analysis failed, falling back:\", florenceError);\n }\n }\n }\n\n // Fallback to runtime model if Florence-2 is not available\n try {\n const result = await this.runtime.useModel(ModelType.IMAGE_DESCRIPTION, imageUrl);\n\n if (result && typeof result === \"object\" && \"description\" in result) {\n const description = (result as { description: string }).description;\n // Check if we got the unhelpful default response\n if (\n !description.includes(\"I'm unable to analyze images\") &&\n !description.includes(\"I can't analyze images\")\n ) {\n return description;\n }\n } else if (typeof result === \"string\") {\n const stringResult = result as string;\n if (\n stringResult.length > 0 &&\n !stringResult.includes(\"I'm unable to analyze images\") &&\n !stringResult.includes(\"I can't analyze images\")\n ) {\n return stringResult;\n }\n }\n } catch (modelError) {\n logger.warn(\"[VisionService] Runtime IMAGE_DESCRIPTION model failed:\", modelError);\n }\n\n // If we got the unhelpful response or an error, provide a basic description based on detected objects\n if (this.lastSceneDescription) {\n const { objects, people } = this.lastSceneDescription;\n let description = \"Scene contains\";\n\n if (people.length > 0) {\n description += ` ${people.length} person${people.length > 1 ? \"s\" : \"\"}`;\n const poses = people.map((p) => p.pose).filter((p) => p !== \"unknown\");\n if (poses.length > 0) {\n description += ` (${poses.join(\", \")})`;\n }\n }\n\n if (objects.length > 0 && people.length > 0) {\n description += \" and\";\n }\n\n if (objects.length > 0) {\n const objectTypes = [...new Set(objects.map((o) => o.type))];\n description += ` ${objectTypes.join(\", \")}`;\n }\n\n if (people.length === 0 && objects.length === 0) {\n description = \"Scene appears to be empty or static\";\n }\n\n return description;\n }\n\n // Final fallback\n return \"Visual scene captured\";\n } catch (error) {\n logger.error(\"[VisionService] VLM description failed:\", error);\n return \"Unable to describe scene\";\n }\n }\n\n private async detectMotionObjects(frame: VisionFrame): Promise<DetectedObject[]> {\n if (!this.lastFrame) {\n return [];\n }\n\n const objects: DetectedObject[] = [];\n const blockSize = 64; // Larger blocks for less noise\n const motionThreshold = 50; // Higher threshold for more significant changes\n\n // Divide frame into blocks and detect motion regions\n for (let y = 0; y < frame.height - blockSize; y += blockSize / 2) {\n // Overlap blocks\n for (let x = 0; x < frame.width - blockSize; x += blockSize / 2) {\n let blockMotion = 0;\n let pixelCount = 0;\n\n // Check motion in this block\n for (let by = 0; by < blockSize; by += 2) {\n // Sample every other pixel for speed\n for (let bx = 0; bx < blockSize; bx += 2) {\n const px = x + bx;\n const py = y + by;\n const idx = (py * frame.width + px) * 4;\n\n if (idx < frame.data.length && idx < this.lastFrame.data.length) {\n const r1 = frame.data[idx];\n const g1 = frame.data[idx + 1];\n const b1 = frame.data[idx + 2];\n const r2 = this.lastFrame.data[idx];\n const g2 = this.lastFrame.data[idx + 1];\n const b2 = this.lastFrame.data[idx + 2];\n\n const diff = Math.abs(r1 - r2) + Math.abs(g1 - g2) + Math.abs(b1 - b2);\n if (diff > motionThreshold) {\n blockMotion++;\n }\n pixelCount++;\n }\n }\n }\n\n // If significant motion in block, consider it an object\n const motionPercentage = (blockMotion / pixelCount) * 100;\n if (motionPercentage > 30) {\n // 30% of sampled pixels show motion\n objects.push({\n id: `motion-${x}-${y}-${frame.timestamp}`,\n type: \"motion-object\",\n confidence: Math.min(motionPercentage / 100, 1),\n boundingBox: {\n x,\n y,\n width: blockSize,\n height: blockSize,\n },\n });\n }\n }\n }\n\n // Merge adjacent motion blocks into larger objects\n const merged = this.mergeAdjacentObjects(objects);\n\n // Filter out very small objects (likely noise)\n const filtered = merged.filter((obj) => {\n const area = obj.boundingBox.width * obj.boundingBox.height;\n return area > 2000; // Minimum area threshold\n });\n\n return filtered;\n }\n\n private mergeAdjacentObjects(objects: DetectedObject[]): DetectedObject[] {\n if (objects.length === 0) {\n return [];\n }\n\n const merged: DetectedObject[] = [];\n const used = new Set<number>();\n const mergeDistance = 80; // Distance to consider objects adjacent\n\n for (let i = 0; i < objects.length; i++) {\n if (used.has(i)) {\n continue;\n }\n\n const current = objects[i];\n const cluster: DetectedObject[] = [current];\n used.add(i);\n\n // Find all adjacent objects\n let foundNew = true;\n while (foundNew) {\n foundNew = false;\n for (let j = 0; j < objects.length; j++) {\n if (used.has(j)) {\n continue;\n }\n\n const other = objects[j];\n\n // Check if adjacent to any object in cluster\n for (const clusterObj of cluster) {\n const isAdjacent =\n Math.abs(clusterObj.boundingBox.x - other.boundingBox.x) <= mergeDistance &&\n Math.abs(clusterObj.boundingBox.y - other.boundingBox.y) <= mergeDistance;\n\n if (isAdjacent) {\n cluster.push(other);\n used.add(j);\n foundNew = true;\n break;\n }\n }\n }\n }\n\n // Merge cluster into single object\n if (cluster.length > 0) {\n const minX = Math.min(...cluster.map((o) => o.boundingBox.x));\n const minY = Math.min(...cluster.map((o) => o.boundingBox.y));\n const maxX = Math.max(...cluster.map((o) => o.boundingBox.x + o.boundingBox.width));\n const maxY = Math.max(...cluster.map((o) => o.boundingBox.y + o.boundingBox.height));\n const avgConfidence = cluster.reduce((sum, o) => sum + o.confidence, 0) / cluster.length;\n\n merged.push({\n id: `merged-${minX}-${minY}-${Date.now()}`,\n type: this.classifyObjectBySize(maxX - minX, maxY - minY),\n confidence: avgConfidence,\n boundingBox: {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n },\n });\n }\n }\n\n return merged;\n }\n\n private classifyObjectBySize(width: number, height: number): string {\n const area = width * height;\n const aspectRatio = width / height;\n\n // Improved classification heuristics\n if (area > 30000 && aspectRatio > 0.4 && aspectRatio < 0.8) {\n return \"person-candidate\";\n } else if (area > 20000) {\n return \"large-object\";\n } else if (area > 8000) {\n return \"medium-object\";\n } else {\n return \"small-object\";\n }\n }\n\n private async detectPeopleFromMotion(\n frame: VisionFrame,\n objects: DetectedObject[]\n ): Promise<PersonInfo[]> {\n const people: PersonInfo[] = [];\n const personCandidates = objects.filter((o) => o.type === \"person-candidate\");\n\n for (let i = 0; i < personCandidates.length; i++) {\n const candidate = personCandidates[i];\n const box = candidate.boundingBox;\n\n // Simple heuristic: if height > width * 1.5, likely standing\n // if width > height, likely sitting/lying\n const aspectRatio = box.width / box.height;\n let pose: \"standing\" | \"sitting\" | \"lying\" | \"unknown\" = \"unknown\";\n\n if (aspectRatio < 0.6) {\n pose = \"standing\";\n } else if (aspectRatio > 1.2) {\n pose = \"lying\";\n } else {\n pose = \"sitting\";\n }\n\n // Estimate facing based on motion direction (simplified)\n let facing: \"camera\" | \"away\" | \"left\" | \"right\" | \"unknown\" = \"unknown\";\n if (this.lastFrame) {\n // In Phase 1, we'll just use 'unknown' or random assignment\n // Phase 2 will implement proper pose detection\n facing = \"camera\"; // Default assumption\n }\n\n people.push({\n id: `person-${i}-${frame.timestamp}`,\n confidence: candidate.confidence,\n pose,\n facing,\n boundingBox: box,\n });\n }\n\n return people;\n }\n\n private startScreenProcessing(): void {\n if (this.screenProcessingInterval) {\n return;\n }\n\n this.screenProcessingInterval = setInterval(async () => {\n if (!this.isProcessingScreen) {\n this.isProcessingScreen = true;\n try {\n await this.captureAndProcessScreen();\n } catch (error) {\n logger.error(\"[VisionService] Screen processing error:\", error);\n }\n this.isProcessingScreen = false;\n }\n }, this.visionConfig.screenCaptureInterval || 2000);\n\n logger.debug(\"[VisionService] Started screen processing loop\");\n }\n\n private async captureAndProcessScreen(): Promise<void> {\n try {\n // Capture screen\n const capture = await this.screenCapture.captureScreen();\n this.lastScreenCapture = capture;\n\n // Process active tile\n const activeTile = this.screenCapture.getActiveTile();\n if (activeTile?.data) {\n const tileAnalysis = await this.analyzeTile(activeTile);\n activeTile.analysis = tileAnalysis;\n }\n\n // Update enhanced scene description\n await this.updateEnhancedSceneDescription();\n } catch (error) {\n logger.error(\"[VisionService] Error capturing screen:\", error);\n }\n }\n\n private async analyzeTile(tile: ScreenTile): Promise<TileAnalysis> {\n const analysis: TileAnalysis = {\n timestamp: Date.now(),\n };\n\n try {\n // Run Florence-2 analysis if enabled\n if (this.visionConfig.florence2Enabled && tile.data) {\n analysis.florence2 = await this.florence2.analyzeTile(tile);\n analysis.summary = analysis.florence2.caption;\n }\n\n // Run OCR if enabled\n if (this.visionConfig.ocrEnabled && tile.data) {\n analysis.ocr = await this.ocrService.extractFromTile(tile);\n analysis.text = analysis.ocr.fullText;\n }\n\n // Extract objects from Florence-2 results\n if (analysis.florence2?.objects) {\n analysis.objects = analysis.florence2.objects.map((obj) => ({\n id: `screen-obj-${Date.now()}-${Math.random()}`,\n type: obj.label,\n confidence: obj.confidence,\n boundingBox: obj.bbox,\n }));\n }\n } catch (error) {\n logger.error(\"[VisionService] Error analyzing tile:\", error);\n }\n\n return analysis;\n }\n\n private async updateEnhancedSceneDescription(): Promise<void> {\n if (!this.lastScreenCapture) {\n return;\n }\n\n const enhancedScene: EnhancedSceneDescription = {\n ...(this.lastSceneDescription || {\n timestamp: Date.now(),\n description: \"\",\n objects: [],\n people: [],\n sceneChanged: false,\n changePercentage: 0,\n }),\n screenCapture: this.lastScreenCapture,\n screenAnalysis: {\n fullScreenOCR: \"\",\n activeTile: this.screenCapture.getActiveTile()?.analysis,\n gridSummary: \"\",\n focusedApp: \"\",\n uiElements: [],\n },\n };\n\n // Aggregate OCR from all processed tiles\n const processedTiles = this.lastScreenCapture.tiles.filter((t) => t.analysis?.ocr);\n if (processedTiles.length > 0 && enhancedScene.screenAnalysis) {\n enhancedScene.screenAnalysis.fullScreenOCR = processedTiles\n .map((t) => t.analysis?.ocr?.fullText)\n .join(\"\\n\");\n }\n\n // Generate grid summary\n if (this.lastScreenCapture.tiles.length > 0 && enhancedScene.screenAnalysis) {\n const tilesWithContent = this.lastScreenCapture.tiles.filter((t) => t.analysis);\n enhancedScene.screenAnalysis.gridSummary = `Screen divided into ${this.lastScreenCapture.tiles.length} tiles, ${tilesWithContent.length} analyzed`;\n }\n\n // Detect focused application (heuristic based on UI elements)\n if (enhancedScene.screenAnalysis?.activeTile?.florence2?.objects) {\n const windows = enhancedScene.screenAnalysis.activeTile.florence2.objects.filter(\n (obj) => obj.label === \"window\"\n );\n if (windows.length > 0 && enhancedScene.screenAnalysis) {\n enhancedScene.screenAnalysis.focusedApp = \"Desktop Application\";\n }\n }\n\n this.lastEnhancedScene = enhancedScene;\n }\n\n // Public API methods\n\n public async getCurrentFrame(): Promise<VisionFrame | null> {\n return this.lastFrame;\n }\n\n public async getSceneDescription(): Promise<SceneDescription | null> {\n return this.lastSceneDescription;\n }\n\n public async getEnhancedSceneDescription(): Promise<EnhancedSceneDescription | null> {\n // If worker manager is available, use its high-FPS data\n if (this.workerManager) {\n return this.workerManager.getLatestEnhancedScene();\n }\n\n // Otherwise fall back to standard processing\n return this.lastEnhancedScene || this.lastSceneDescription;\n }\n\n public async getScreenCapture(): Promise<ScreenCapture | null> {\n return this.lastScreenCapture;\n }\n\n public getVisionMode(): VisionMode {\n return this.visionConfig.visionMode || VisionMode.CAMERA;\n }\n\n public async setVisionMode(mode: VisionMode): Promise<void> {\n logger.info(\n `[VisionService] Changing vision mode from ${this.visionConfig.visionMode} to ${mode}`\n );\n\n // Stop current processing\n this.stopProcessing();\n\n // Update configuration\n this.visionConfig.visionMode = mode;\n\n // Reinitialize based on new mode\n if (mode === VisionMode.OFF) {\n logger.info(\"[VisionService] Vision disabled\");\n return;\n }\n\n // Initialize components for new mode\n if ((mode === VisionMode.CAMERA || mode === VisionMode.BOTH) && !this.camera) {\n await this.initializeCameraVision();\n }\n\n if (\n (mode === VisionMode.SCREEN || mode === VisionMode.BOTH) &&\n (!this.florence2.isInitialized() || !this.ocrService.isInitialized())\n ) {\n await this.initializeScreenVision();\n }\n\n // Start processing for new mode\n this.startProcessing();\n }\n\n private stopProcessing(): void {\n if (this.frameProcessingInterval) {\n clearInterval(this.frameProcessingInterval);\n this.frameProcessingInterval = null;\n }\n\n if (this.screenProcessingInterval) {\n clearInterval(this.screenProcessingInterval);\n this.screenProcessingInterval = null;\n }\n }\n\n public getCameraInfo(): CameraInfo | null {\n if (!this.camera) {\n return null;\n }\n\n return {\n id: this.camera.id,\n name: this.camera.name,\n connected: true,\n };\n }\n\n public isActive(): boolean {\n return this.camera !== null && this.frameProcessingInterval !== null;\n }\n\n // Helper methods for face recognition\n private calculateBoxOverlap(box1: BoundingBox, box2: BoundingBox): number {\n const x1 = Math.max(box1.x, box2.x);\n const y1 = Math.max(box1.y, box2.y);\n const x2 = Math.min(box1.x + box1.width, box2.x + box2.width);\n const y2 = Math.min(box1.y + box1.height, box2.y + box2.height);\n\n if (x2 < x1 || y2 < y1) {\n return 0;\n }\n\n const intersection = (x2 - x1) * (y2 - y1);\n const area1 = box1.width * box1.height;\n const area2 = box2.width * box2.height;\n const union = area1 + area2 - intersection;\n\n return intersection / union;\n }\n\n private getDominantExpression(expressions: {\n neutral: number;\n happy: number;\n sad: number;\n angry: number;\n fearful: number;\n disgusted: number;\n surprised: number;\n }): string {\n let maxValue = 0;\n let dominantExpression = \"neutral\";\n\n const expressionEntries: [string, number][] = [\n [\"neutral\", expressions.neutral],\n [\"happy\", expressions.happy],\n [\"sad\", expressions.sad],\n [\"angry\", expressions.angry],\n [\"fearful\", expressions.fearful],\n [\"disgusted\", expressions.disgusted],\n [\"surprised\", expressions.surprised],\n ];\n\n for (const [expression, value] of expressionEntries) {\n if (value > maxValue) {\n maxValue = value;\n dominantExpression = expression;\n }\n }\n\n return dominantExpression;\n }\n\n // Public methods for entity tracking\n public getEntityTracker(): EntityTracker {\n return this.entityTracker;\n }\n\n public getFaceRecognition(): FaceRecognition {\n return this.faceRecognition;\n }\n\n async stop(): Promise<void> {\n logger.info(\"[VisionService] Stopping vision service...\");\n\n this.stopProcessing();\n\n if (this.audioCapture) {\n await this.audioCapture.stop();\n this.audioCapture = null;\n }\n\n if (this.streamingAudioCapture) {\n await this.streamingAudioCapture.stop();\n this.streamingAudioCapture = null;\n }\n\n if (this.visionModels) {\n await this.visionModels.dispose();\n }\n\n if (this.workerManager) {\n await this.workerManager.stop();\n this.workerManager = null;\n }\n\n this.camera = null;\n this.lastFrame = null;\n this.lastSceneDescription = null;\n this.lastScreenCapture = null;\n this.lastEnhancedScene = null;\n this.isProcessing = false;\n this.isProcessingScreen = false;\n\n // Dispose of models\n await this.florence2.dispose();\n await this.ocrService.dispose();\n\n logger.info(\"[VisionService] Stopped.\");\n }\n\n private async findCamera(): Promise<CameraDevice | null> {\n try {\n // Get list of available cameras\n const cameras = await this.listCameras();\n\n if (cameras.length === 0) {\n logger.warn(\"[VisionService] No cameras detected\");\n return null;\n }\n\n // If camera name is specified, try to find it\n if (this.visionConfig.cameraName) {\n const searchName = this.visionConfig.cameraName.toLowerCase();\n const matchedCamera = cameras.find((cam) => cam.name.toLowerCase().includes(searchName));\n\n if (matchedCamera) {\n return this.createCameraDevice(matchedCamera);\n }\n\n logger.warn(\n `[VisionService] Camera \"${this.visionConfig.cameraName}\" not found, using default`\n );\n }\n\n // Use first available camera\n return this.createCameraDevice(cameras[0]);\n } catch (error) {\n logger.error(\"[VisionService] Error finding camera:\", error);\n return null;\n }\n }\n\n private async listCameras(): Promise<CameraInfo[]> {\n const platform = process.platform;\n\n try {\n if (platform === \"darwin\") {\n // macOS: Use system_profiler\n const { stdout } = await execAsync(\"system_profiler SPCameraDataType -json\");\n const data = JSON.parse(stdout);\n const cameras: CameraInfo[] = [];\n\n if (data.SPCameraDataType && Array.isArray(data.SPCameraDataType)) {\n for (const camera of data.SPCameraDataType) {\n cameras.push({\n id: camera.unique_id || camera._name,\n name: camera._name,\n connected: true,\n });\n }\n }\n\n return cameras;\n } else if (platform === \"linux\") {\n // Linux: Use v4l2\n const { stdout } = await execAsync(\"v4l2-ctl --list-devices\");\n const cameras: CameraInfo[] = [];\n const lines = stdout.split(\"\\n\");\n\n let currentName = \"\";\n for (const line of lines) {\n if (line && !line.startsWith(\"\\t\")) {\n currentName = line.replace(\":\", \"\").trim();\n } else if (line.trim().startsWith(\"/dev/video\")) {\n const devicePath = line.trim();\n const id = devicePath.replace(\"/dev/video\", \"\");\n cameras.push({\n id,\n name: currentName,\n connected: true,\n });\n }\n }\n\n return cameras;\n } else if (platform === \"win32\") {\n // Windows: Use PowerShell\n const { stdout } = await execAsync(\n 'powershell -Command \"Get-PnpDevice -Class Camera | Select-Object FriendlyName, InstanceId | ConvertTo-Json\"'\n );\n const devices = JSON.parse(stdout);\n const cameras: CameraInfo[] = [];\n\n if (Array.isArray(devices)) {\n for (const device of devices) {\n cameras.push({\n id: device.InstanceId,\n name: device.FriendlyName,\n connected: true,\n });\n }\n }\n\n return cameras;\n }\n\n return [];\n } catch (error) {\n logger.error(\"[VisionService] Error listing cameras:\", error);\n return [];\n }\n }\n\n private createCameraDevice(info: CameraInfo): CameraDevice {\n const platform = process.platform;\n\n return {\n id: info.id,\n name: info.name,\n capture: async () => {\n const tempFile = path.join(process.cwd(), `temp_capture_${Date.now()}.jpg`);\n\n try {\n if (platform === \"darwin\") {\n // macOS: Use imagesnap\n try {\n await execAsync(`imagesnap -d \"${info.name}\" \"${tempFile}\"`);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (errorMessage.includes(\"command not found\")) {\n throw new Error(\"imagesnap not installed. Run: brew install imagesnap\");\n }\n throw error;\n }\n } else if (platform === \"linux\") {\n // Linux: Use fswebcam\n try {\n await execAsync(\n `fswebcam -d /dev/video${info.id} -r 1280x720 --jpeg 85 \"${tempFile}\"`\n );\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (errorMessage.includes(\"command not found\")) {\n throw new Error(\"fswebcam not installed. Run: sudo apt-get install fswebcam\");\n }\n throw error;\n }\n } else if (platform === \"win32\") {\n // Windows: Use DirectShow via ffmpeg\n try {\n await execAsync(\n `ffmpeg -f dshow -i video=\"${info.name}\" -frames:v 1 -q:v 2 \"${tempFile}\" -y`\n );\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (errorMessage.includes(\"not recognized\") || errorMessage.includes(\"not found\")) {\n throw new Error(\"ffmpeg not installed. Download from ffmpeg.org and add to PATH\");\n }\n throw error;\n }\n } else {\n throw new Error(`Unsupported platform: ${platform}`);\n }\n\n // Read the captured image\n const imageBuffer = await fs.readFile(tempFile);\n\n // Clean up temp file\n await fs.unlink(tempFile).catch(() => {});\n\n return imageBuffer;\n } catch (error) {\n // Clean up temp file on error\n await fs.unlink(tempFile).catch(() => {});\n throw error;\n }\n },\n };\n }\n\n public async captureImage(): Promise<Buffer | null> {\n if (!this.camera) {\n logger.warn(\"[VisionService] No camera available for capture\");\n return null;\n }\n\n try {\n return await this.camera.capture();\n } catch (error) {\n logger.error(\"[VisionService] Failed to capture image:\", error);\n return null;\n }\n }\n}\n",
|
|
9
9
|
"import { exec } from \"node:child_process\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { type IAgentRuntime, logger, ModelType } from \"@elizaos/core\";\n\nconst execAsync = promisify(exec);\n\nexport interface AudioConfig {\n enabled: boolean;\n transcriptionInterval: number; // milliseconds\n device?: string;\n sampleRate?: number;\n channels?: number;\n}\n\nexport class AudioCaptureService {\n private runtime: IAgentRuntime;\n private config: AudioConfig;\n private isRecording = false;\n private recordingInterval: NodeJS.Timeout | null = null;\n\n constructor(runtime: IAgentRuntime, config: AudioConfig) {\n this.runtime = runtime;\n this.config = {\n sampleRate: 16000,\n channels: 1,\n ...config,\n };\n }\n\n async initialize(): Promise<void> {\n if (!this.config.enabled) {\n logger.info(\"[AudioCapture] Audio capture disabled\");\n return;\n }\n\n try {\n logger.info(\"[AudioCapture] Initializing audio capture...\");\n\n // Check for audio recording tools\n const tool = await this.checkAudioTools();\n if (!tool.available) {\n throw new Error(`Audio recording tool not available. ${tool.message}`);\n }\n\n logger.info(`[AudioCapture] Using ${tool.tool} for audio capture`);\n logger.info(`[AudioCapture] Transcription interval: ${this.config.transcriptionInterval}ms`);\n\n // Start recording loop if interval is set\n if (this.config.transcriptionInterval > 0) {\n this.startTranscriptionLoop();\n }\n\n logger.info(\"[AudioCapture] Audio capture initialized\");\n } catch (error) {\n logger.error(\"[AudioCapture] Failed to initialize:\", error);\n throw error;\n }\n }\n\n private async checkAudioTools(): Promise<{ available: boolean; tool: string; message?: string }> {\n const platform = process.platform;\n\n try {\n if (platform === \"darwin\") {\n // macOS: Use sox\n await execAsync(\"which sox\");\n return { available: true, tool: \"sox\" };\n } else if (platform === \"linux\") {\n // Linux: Use arecord (ALSA)\n await execAsync(\"which arecord\");\n return { available: true, tool: \"arecord\" };\n } else if (platform === \"win32\") {\n // Windows: Use ffmpeg\n await execAsync(\"where ffmpeg\");\n return { available: true, tool: \"ffmpeg\" };\n }\n return { available: false, tool: \"none\", message: \"Unsupported platform\" };\n } catch (_error) {\n // Tool not found\n const toolName = platform === \"darwin\" ? \"sox\" : platform === \"linux\" ? \"arecord\" : \"ffmpeg\";\n const installCmd =\n platform === \"darwin\"\n ? \"brew install sox\"\n : platform === \"linux\"\n ? \"sudo apt-get install alsa-utils\"\n : \"Download ffmpeg from ffmpeg.org\";\n return {\n available: false,\n tool: toolName,\n message: `Install with: ${installCmd}`,\n };\n }\n }\n\n private startTranscriptionLoop(): void {\n if (this.recordingInterval) {\n return;\n }\n\n // Start continuous recording with periodic transcription\n this.recordingInterval = setInterval(async () => {\n if (!this.isRecording) {\n await this.recordAndTranscribe();\n }\n }, this.config.transcriptionInterval);\n\n logger.info(\"[AudioCapture] Started transcription loop\");\n }\n\n async recordAndTranscribe(): Promise<string | null> {\n if (this.isRecording) {\n logger.warn(\"[AudioCapture] Already recording\");\n return null;\n }\n\n this.isRecording = true;\n const audioFile = path.join(process.cwd(), `audio_${Date.now()}.wav`);\n\n try {\n logger.debug(\"[AudioCapture] Starting audio recording...\");\n\n // Record audio for the specified duration\n await this.recordAudio(audioFile, this.config.transcriptionInterval / 1000);\n\n logger.debug(\"[AudioCapture] Recording complete, transcribing...\");\n\n // Transcribe using runtime model\n const audioBuffer = await fs.readFile(audioFile);\n const transcription = await this.runtime.useModel(ModelType.TRANSCRIPTION, audioBuffer);\n\n // Clean up audio file\n await fs.unlink(audioFile).catch(() => {});\n\n if (transcription && typeof transcription === \"string\" && transcription.trim()) {\n logger.info(`[AudioCapture] Transcribed: \"${transcription}\"`);\n\n // Create a memory of what was heard\n await this.createAudioMemory(transcription);\n\n return transcription;\n }\n\n return null;\n } catch (error) {\n logger.error(\"[AudioCapture] Recording/transcription failed:\", error);\n await fs.unlink(audioFile).catch(() => {});\n return null;\n } finally {\n this.isRecording = false;\n }\n }\n\n private async recordAudio(outputPath: string, duration: number): Promise<void> {\n const platform = process.platform;\n\n try {\n if (platform === \"darwin\") {\n // macOS: Use sox\n const _device = this.config.device || \"default\";\n await execAsync(\n `sox -d -r ${this.config.sampleRate} -c ${this.config.channels} -b 16 \"${outputPath}\" trim 0 ${duration}`\n );\n } else if (platform === \"linux\") {\n // Linux: Use arecord\n const device = this.config.device || \"default\";\n await execAsync(\n `arecord -D ${device} -f S16_LE -r ${this.config.sampleRate} -c ${this.config.channels} -d ${duration} \"${outputPath}\"`\n );\n } else if (platform === \"win32\") {\n // Windows: Use ffmpeg with DirectShow\n const device = this.config.device || \"Microphone\";\n await execAsync(\n `ffmpeg -f dshow -i audio=\"${device}\" -t ${duration} -acodec pcm_s16le -ar ${this.config.sampleRate} -ac ${this.config.channels} \"${outputPath}\" -y`\n );\n } else {\n throw new Error(`Unsupported platform: ${platform}`);\n }\n } catch (error: unknown) {\n logger.error(\n \"[AudioCapture] Audio recording failed:\",\n error instanceof Error ? error.message : String(error)\n );\n throw error;\n }\n }\n\n private async createAudioMemory(transcription: string): Promise<void> {\n try {\n const _memory = {\n content: {\n text: `[Audio Transcription] ${transcription}`,\n type: \"audio_transcription\",\n source: \"microphone\",\n timestamp: Date.now(),\n },\n metadata: {\n isAudioTranscription: true,\n duration: this.config.transcriptionInterval,\n },\n };\n\n // Store in agent's context\n // createMemory requires runtime-specific database adapter implementation\n logger.info(\"[AudioCapture] Audio transcription stored in context\");\n } catch (error) {\n logger.error(\"[AudioCapture] Failed to create audio memory:\", error);\n }\n }\n\n async listAudioDevices(): Promise<string[]> {\n const platform = process.platform;\n const devices: string[] = [];\n\n try {\n if (platform === \"darwin\") {\n // macOS: List audio devices using system_profiler\n const { stdout } = await execAsync(\"system_profiler SPAudioDataType -json\");\n const data = JSON.parse(stdout);\n\n if (data.SPAudioDataType) {\n for (const device of data.SPAudioDataType) {\n if (device._name?.includes(\"Input\")) {\n devices.push(device._name);\n }\n }\n }\n } else if (platform === \"linux\") {\n // Linux: List ALSA devices\n const { stdout } = await execAsync(\"arecord -l\");\n const lines = stdout.split(\"\\n\");\n\n for (const line of lines) {\n if (line.includes(\"card\")) {\n const match = line.match(/card (\\d+):.*\\[(.*?)\\]/);\n if (match) {\n devices.push(`hw:${match[1]}`);\n }\n }\n }\n } else if (platform === \"win32\") {\n // Windows: List audio devices using ffmpeg\n try {\n const { stdout } = await execAsync(\"ffmpeg -list_devices true -f dshow -i dummy 2>&1\");\n const lines = stdout.split(\"\\n\");\n let isAudioSection = false;\n\n for (const line of lines) {\n if (line.includes(\"DirectShow audio devices\")) {\n isAudioSection = true;\n } else if (isAudioSection && line.includes('\"')) {\n const match = line.match(/\"([^\"]+)\"/);\n if (match) {\n devices.push(match[1]);\n }\n }\n }\n } catch (_error) {\n // ffmpeg returns non-zero exit code when listing devices\n // but we can still parse the output\n }\n }\n } catch (error) {\n logger.error(\"[AudioCapture] Failed to list audio devices:\", error);\n }\n\n return devices;\n }\n\n isActive(): boolean {\n return this.config.enabled && this.recordingInterval !== null;\n }\n\n async stop(): Promise<void> {\n logger.info(\"[AudioCapture] Stopping audio capture...\");\n\n if (this.recordingInterval) {\n clearInterval(this.recordingInterval);\n this.recordingInterval = null;\n }\n\n // Wait for any ongoing recording to complete\n while (this.isRecording) {\n await new Promise((resolve) => setTimeout(resolve, 100));\n }\n\n logger.info(\"[AudioCapture] Audio capture stopped\");\n }\n}\n",
|
|
10
10
|
"import { type ChildProcess, spawn } from \"node:child_process\";\nimport { EventEmitter } from \"node:events\";\nimport { type IAgentRuntime, logger, ModelType } from \"@elizaos/core\";\n\nexport interface StreamingAudioConfig {\n enabled: boolean;\n device?: string;\n sampleRate?: number;\n channels?: number;\n vadThreshold?: number; // 0-1, energy threshold for speech detection\n silenceTimeout?: number; // ms to wait before considering speech ended\n responseDelay?: number; // ms to wait before processing (for interruption detection)\n chunkSize?: number; // bytes per chunk for streaming\n}\n\ninterface AudioChunk {\n data: Buffer;\n timestamp: number;\n energy: number;\n}\n\nexport class StreamingAudioCaptureService extends EventEmitter {\n private runtime: IAgentRuntime;\n private config: StreamingAudioConfig;\n private captureProcess: ChildProcess | null = null;\n private isCapturing = false;\n private audioBuffer: AudioChunk[] = [];\n private isSpeaking = false;\n private silenceTimer: NodeJS.Timeout | null = null;\n private transcriptionInProgress = false;\n private currentTranscription = \"\";\n private responseTimer: NodeJS.Timeout | null = null;\n\n constructor(runtime: IAgentRuntime, config: StreamingAudioConfig) {\n super();\n this.runtime = runtime;\n this.config = {\n sampleRate: 16000,\n channels: 1,\n vadThreshold: 0.01,\n silenceTimeout: 1500, // 1.5 seconds of silence to end speech\n responseDelay: 3000, // 3 seconds before response (allows for interruption)\n chunkSize: 4096,\n ...config,\n };\n }\n\n async initialize(): Promise<void> {\n if (!this.config.enabled) {\n logger.info(\"[StreamingAudio] Audio capture disabled\");\n return;\n }\n\n try {\n logger.info(\"[StreamingAudio] Initializing streaming audio capture...\");\n\n // Start continuous audio capture\n await this.startContinuousCapture();\n\n logger.info(\"[StreamingAudio] Streaming audio capture initialized\");\n } catch (error) {\n logger.error(\"[StreamingAudio] Failed to initialize:\", error);\n throw error;\n }\n }\n\n private async startContinuousCapture(): Promise<void> {\n const platform = process.platform;\n let command: string;\n let args: string[];\n\n if (platform === \"darwin\") {\n // macOS: Use sox for continuous capture\n command = \"sox\";\n args = [\n \"-d\", // default input device\n \"-r\",\n this.config.sampleRate?.toString(),\n \"-c\",\n this.config.channels?.toString(),\n \"-b\",\n \"16\",\n \"-e\",\n \"signed\",\n \"-t\",\n \"raw\",\n \"-\", // output to stdout\n ];\n } else if (platform === \"linux\") {\n // Linux: Use arecord\n command = \"arecord\";\n args = [\n \"-D\",\n this.config.device || \"default\",\n \"-f\",\n \"S16_LE\",\n \"-r\",\n this.config.sampleRate?.toString(),\n \"-c\",\n this.config.channels?.toString(),\n \"-t\",\n \"raw\",\n \"-\", // output to stdout\n ];\n } else if (platform === \"win32\") {\n // Windows: Use ffmpeg\n command = \"ffmpeg\";\n args = [\n \"-f\",\n \"dshow\",\n \"-i\",\n `audio=\"${this.config.device || \"Microphone\"}\"`,\n \"-acodec\",\n \"pcm_s16le\",\n \"-ar\",\n this.config.sampleRate?.toString(),\n \"-ac\",\n this.config.channels?.toString(),\n \"-f\",\n \"s16le\",\n \"pipe:1\", // output to stdout\n ];\n } else {\n throw new Error(`Unsupported platform: ${platform}`);\n }\n\n this.captureProcess = spawn(command, args);\n this.isCapturing = true;\n\n // Handle audio data stream\n this.captureProcess.stdout?.on(\"data\", (chunk: Buffer) => {\n this.processAudioChunk(chunk);\n });\n\n this.captureProcess.stderr?.on(\"data\", (data) => {\n logger.debug(\"[StreamingAudio] Capture stderr:\", data.toString());\n });\n\n this.captureProcess.on(\"error\", (error) => {\n logger.error(\n \"[StreamingAudio] Capture process error:\",\n error instanceof Error ? error.message : String(error)\n );\n this.isCapturing = false;\n });\n\n this.captureProcess.on(\"exit\", (code) => {\n logger.info(\"[StreamingAudio] Capture process exited with code:\", String(code ?? 0));\n this.isCapturing = false;\n });\n }\n\n private processAudioChunk(chunk: Buffer): void {\n // Calculate audio energy for VAD\n const energy = this.calculateEnergy(chunk);\n const timestamp = Date.now();\n\n // Store chunk\n const audioChunk: AudioChunk = { data: chunk, timestamp, energy };\n\n // Voice Activity Detection\n if (energy > (this.config.vadThreshold ?? 0.01)) {\n if (!this.isSpeaking) {\n // Speech started\n this.isSpeaking = true;\n logger.debug(\"[StreamingAudio] Speech detected, starting recording\");\n this.emit(\"speechStart\");\n\n // Clear any pending response\n if (this.responseTimer) {\n clearTimeout(this.responseTimer);\n this.responseTimer = null;\n logger.debug(\"[StreamingAudio] Cancelled pending response due to new speech\");\n }\n }\n\n // Add to buffer\n this.audioBuffer.push(audioChunk);\n\n // Reset silence timer\n if (this.silenceTimer) {\n clearTimeout(this.silenceTimer);\n }\n\n // Start streaming transcription if not already running\n if (!this.transcriptionInProgress) {\n this.startStreamingTranscription();\n }\n } else if (this.isSpeaking) {\n // Currently in speech but detected silence\n this.audioBuffer.push(audioChunk);\n\n // Set timer for end of speech\n if (!this.silenceTimer) {\n this.silenceTimer = setTimeout(() => {\n this.endSpeech();\n }, this.config.silenceTimeout ?? 1500);\n }\n }\n\n // Clean up old chunks (keep last 30 seconds)\n const cutoffTime = timestamp - 30000;\n this.audioBuffer = this.audioBuffer.filter((c) => c.timestamp > cutoffTime);\n }\n\n private calculateEnergy(chunk: Buffer): number {\n // Calculate RMS energy of audio chunk\n let sum = 0;\n const samples = chunk.length / 2; // 16-bit samples\n\n for (let i = 0; i < chunk.length; i += 2) {\n const sample = chunk.readInt16LE(i);\n sum += sample * sample;\n }\n\n const rms = Math.sqrt(sum / samples);\n return rms / 32768; // Normalize to 0-1\n }\n\n private async startStreamingTranscription(): Promise<void> {\n if (this.transcriptionInProgress) {\n return;\n }\n\n this.transcriptionInProgress = true;\n logger.debug(\"[StreamingAudio] Starting streaming transcription\");\n\n try {\n // Get audio data from buffer\n const audioData = this.getRecentAudioData();\n\n if (audioData.length === 0) {\n this.transcriptionInProgress = false;\n return;\n }\n\n // Use streaming transcription if available, otherwise batch\n const result = await this.transcribeAudio(audioData);\n\n if (result?.trim()) {\n this.currentTranscription = result;\n logger.info(`[StreamingAudio] Partial transcription: \"${result}\"`);\n this.emit(\"transcription\", { text: result, isFinal: false });\n }\n } catch (error) {\n logger.error(\"[StreamingAudio] Transcription error:\", error);\n }\n\n this.transcriptionInProgress = false;\n\n // Continue transcription if still speaking\n if (this.isSpeaking) {\n setTimeout(() => this.startStreamingTranscription(), 500);\n }\n }\n\n private endSpeech(): void {\n if (!this.isSpeaking) {\n return;\n }\n\n this.isSpeaking = false;\n this.silenceTimer = null;\n logger.debug(\"[StreamingAudio] Speech ended\");\n this.emit(\"speechEnd\");\n\n // Get final transcription\n this.processFinalTranscription();\n }\n\n private async processFinalTranscription(): Promise<void> {\n const audioData = this.getRecentAudioData();\n\n if (audioData.length === 0) {\n return;\n }\n\n try {\n // Get final transcription\n const finalText = await this.transcribeAudio(audioData);\n\n if (finalText?.trim()) {\n this.currentTranscription = finalText;\n logger.info(`[StreamingAudio] Final transcription: \"${finalText}\"`);\n this.emit(\"transcription\", { text: finalText, isFinal: true });\n\n // Set timer for response generation\n this.responseTimer = setTimeout(() => {\n this.generateResponse(finalText);\n }, this.config.responseDelay ?? 3000);\n }\n } catch (error) {\n logger.error(\"[StreamingAudio] Final transcription error:\", error);\n } finally {\n // Clear audio buffer\n this.audioBuffer = [];\n this.currentTranscription = \"\";\n }\n }\n\n private getRecentAudioData(): Buffer {\n if (this.audioBuffer.length === 0) {\n return Buffer.alloc(0);\n }\n\n // Get audio from start of speech to now\n const startTime = this.audioBuffer[0].timestamp;\n const relevantChunks = this.audioBuffer.filter((c) => c.timestamp >= startTime);\n\n // Combine chunks\n const totalLength = relevantChunks.reduce((sum, c) => sum + c.data.length, 0);\n const combined = Buffer.alloc(totalLength);\n let offset = 0;\n\n for (const chunk of relevantChunks) {\n chunk.data.copy(combined, offset);\n offset += chunk.data.length;\n }\n\n return combined;\n }\n\n private async transcribeAudio(audioData: Buffer): Promise<string | null> {\n try {\n // Convert raw audio to WAV format\n const wavBuffer = this.rawToWav(audioData);\n\n // Use runtime transcription model\n const result = await this.runtime.useModel(ModelType.TRANSCRIPTION, wavBuffer);\n\n return result as string;\n } catch (error) {\n logger.error(\"[StreamingAudio] Transcription failed:\", error);\n return null;\n }\n }\n\n private rawToWav(rawData: Buffer): Buffer {\n // Create WAV header\n const sampleRate = this.config.sampleRate ?? 16000;\n const channels = this.config.channels ?? 1;\n const bitsPerSample = 16;\n const byteRate = sampleRate * channels * (bitsPerSample / 8);\n const blockAlign = channels * (bitsPerSample / 8);\n const dataSize = rawData.length;\n const fileSize = 36 + dataSize;\n\n const header = Buffer.alloc(44);\n\n // RIFF chunk\n header.write(\"RIFF\", 0);\n header.writeUInt32LE(fileSize, 4);\n header.write(\"WAVE\", 8);\n\n // fmt chunk\n header.write(\"fmt \", 12);\n header.writeUInt32LE(16, 16); // fmt chunk size\n header.writeUInt16LE(1, 20); // PCM format\n header.writeUInt16LE(channels, 22);\n header.writeUInt32LE(sampleRate, 24);\n header.writeUInt32LE(byteRate, 28);\n header.writeUInt16LE(blockAlign, 32);\n header.writeUInt16LE(bitsPerSample, 34);\n\n // data chunk\n header.write(\"data\", 36);\n header.writeUInt32LE(dataSize, 40);\n\n return Buffer.concat([header, rawData]);\n }\n\n private async generateResponse(transcription: string): Promise<void> {\n this.responseTimer = null;\n\n try {\n // Create audio memory\n await this.createAudioMemory(transcription);\n\n // Emit event for response generation\n this.emit(\"utteranceComplete\", transcription);\n } catch (error) {\n logger.error(\"[StreamingAudio] Response generation error:\", error);\n }\n }\n\n private async createAudioMemory(transcription: string): Promise<void> {\n try {\n const _memory = {\n content: {\n text: `[Audio] ${transcription}`,\n type: \"audio_transcription\",\n source: \"microphone_streaming\",\n timestamp: Date.now(),\n },\n metadata: {\n isAudioTranscription: true,\n streaming: true,\n },\n };\n\n logger.info(\"[StreamingAudio] Audio transcription stored in context\");\n } catch (error) {\n logger.error(\"[StreamingAudio] Failed to create audio memory:\", error);\n }\n }\n\n async stop(): Promise<void> {\n logger.info(\"[StreamingAudio] Stopping audio capture...\");\n\n if (this.captureProcess) {\n this.captureProcess.kill();\n this.captureProcess = null;\n }\n\n if (this.silenceTimer) {\n clearTimeout(this.silenceTimer);\n this.silenceTimer = null;\n }\n\n if (this.responseTimer) {\n clearTimeout(this.responseTimer);\n this.responseTimer = null;\n }\n\n this.isCapturing = false;\n this.isSpeaking = false;\n this.audioBuffer = [];\n\n logger.info(\"[StreamingAudio] Audio capture stopped\");\n }\n\n isActive(): boolean {\n return this.isCapturing;\n }\n\n getCurrentTranscription(): string {\n return this.currentTranscription;\n }\n\n isSpeechActive(): boolean {\n return this.isSpeaking;\n }\n}\n",
|
|
11
|
-
"import { type IAgentRuntime, logger, type UUID } from \"@elizaos/core\";\nimport type { BoundingBox, DetectedObject, PersonInfo, TrackedEntity, WorldState } from \"./types\";\n\nexport class EntityTracker {\n private worldState: WorldState;\n private readonly POSITION_THRESHOLD = 100; // pixels\n private readonly MISSING_THRESHOLD = 5000; // 5 seconds\n private readonly CLEANUP_THRESHOLD = 60000; // 1 minute\n\n constructor(worldId: string) {\n this.worldState = {\n worldId,\n entities: new Map(),\n lastUpdate: Date.now(),\n activeEntities: [],\n recentlyLeft: [],\n };\n }\n\n async updateEntities(\n detectedObjects: DetectedObject[],\n people: PersonInfo[],\n faceProfiles?: Map<string, string>, // Maps person ID to face profile ID\n runtime?: IAgentRuntime\n ): Promise<TrackedEntity[]> {\n const currentTime = Date.now();\n const frameEntities: TrackedEntity[] = [];\n const seenEntityIds = new Set<string>();\n\n // Process detected people\n for (const person of people) {\n const entity = await this.trackPerson(person, faceProfiles?.get(person.id), currentTime);\n frameEntities.push(entity);\n seenEntityIds.add(entity.id);\n }\n\n // Process detected objects\n for (const obj of detectedObjects) {\n if (obj.type !== \"person\" && obj.type !== \"person-candidate\") {\n const entity = await this.trackObject(obj, currentTime);\n frameEntities.push(entity);\n seenEntityIds.add(entity.id);\n }\n }\n\n // Update world state\n this.updateWorldState(seenEntityIds, currentTime);\n\n // Store entities in runtime if available\n if (runtime) {\n await this.syncWithRuntime(runtime, frameEntities);\n }\n\n return frameEntities;\n }\n\n private async trackPerson(\n person: PersonInfo,\n faceProfileId: string | undefined,\n timestamp: number\n ): Promise<TrackedEntity> {\n // Try to match with existing entities\n const matchedEntity = this.findMatchingEntity(person.boundingBox, \"person\", faceProfileId);\n\n if (matchedEntity) {\n // Update existing entity\n matchedEntity.lastSeen = timestamp;\n matchedEntity.lastPosition = person.boundingBox;\n matchedEntity.appearances.push({\n timestamp,\n boundingBox: person.boundingBox,\n confidence: person.confidence,\n });\n\n // Update attributes\n if (faceProfileId && !matchedEntity.attributes.faceId) {\n matchedEntity.attributes.faceId = faceProfileId;\n }\n\n // Keep only last 100 appearances\n if (matchedEntity.appearances.length > 100) {\n matchedEntity.appearances = matchedEntity.appearances.slice(-100);\n }\n\n return matchedEntity;\n } else {\n // Create new entity\n const entityId = `person-${timestamp}-${Math.random().toString(36).substr(2, 9)}`;\n const newEntity: TrackedEntity = {\n id: entityId,\n entityType: \"person\",\n firstSeen: timestamp,\n lastSeen: timestamp,\n lastPosition: person.boundingBox,\n appearances: [\n {\n timestamp,\n boundingBox: person.boundingBox,\n confidence: person.confidence,\n },\n ],\n attributes: {\n faceId: faceProfileId,\n },\n worldId: this.worldState.worldId,\n };\n\n this.worldState.entities.set(entityId, newEntity);\n logger.info(`[EntityTracker] New person entity created: ${entityId}`);\n\n return newEntity;\n }\n }\n\n private async trackObject(obj: DetectedObject, timestamp: number): Promise<TrackedEntity> {\n // Try to match with existing entities\n const matchedEntity = this.findMatchingEntity(obj.boundingBox, \"object\");\n\n if (matchedEntity) {\n // Update existing entity\n matchedEntity.lastSeen = timestamp;\n matchedEntity.lastPosition = obj.boundingBox;\n matchedEntity.appearances.push({\n timestamp,\n boundingBox: obj.boundingBox,\n confidence: obj.confidence,\n });\n\n // Keep only last 50 appearances for objects\n if (matchedEntity.appearances.length > 50) {\n matchedEntity.appearances = matchedEntity.appearances.slice(-50);\n }\n\n return matchedEntity;\n } else {\n // Create new entity\n const entityId = `object-${timestamp}-${Math.random().toString(36).substr(2, 9)}`;\n const newEntity: TrackedEntity = {\n id: entityId,\n entityType: \"object\",\n firstSeen: timestamp,\n lastSeen: timestamp,\n lastPosition: obj.boundingBox,\n appearances: [\n {\n timestamp,\n boundingBox: obj.boundingBox,\n confidence: obj.confidence,\n },\n ],\n attributes: {\n objectType: obj.type,\n },\n worldId: this.worldState.worldId,\n };\n\n this.worldState.entities.set(entityId, newEntity);\n logger.debug(`[EntityTracker] New object entity created: ${entityId} (${obj.type})`);\n\n return newEntity;\n }\n }\n\n private findMatchingEntity(\n boundingBox: BoundingBox,\n entityType: \"person\" | \"object\",\n faceProfileId?: string\n ): TrackedEntity | null {\n const currentTime = Date.now();\n let bestMatch: TrackedEntity | null = null;\n let minDistance = Infinity;\n\n for (const entity of this.worldState.entities.values()) {\n // Skip if wrong type\n if (entity.entityType !== entityType) {\n continue;\n }\n\n // Skip if entity has been missing too long\n if (currentTime - entity.lastSeen > this.MISSING_THRESHOLD) {\n continue;\n }\n\n // If we have face ID, prioritize face matching for people\n if (entityType === \"person\" && faceProfileId && entity.attributes.faceId) {\n if (entity.attributes.faceId === faceProfileId) {\n return entity; // Direct face match\n }\n }\n\n // Calculate position distance\n const distance = this.calculateDistance(entity.lastPosition, boundingBox);\n\n if (distance < this.POSITION_THRESHOLD && distance < minDistance) {\n minDistance = distance;\n bestMatch = entity;\n }\n }\n\n return bestMatch;\n }\n\n private calculateDistance(box1: BoundingBox, box2: BoundingBox): number {\n const center1 = {\n x: box1.x + box1.width / 2,\n y: box1.y + box1.height / 2,\n };\n const center2 = {\n x: box2.x + box2.width / 2,\n y: box2.y + box2.height / 2,\n };\n\n return Math.sqrt((center1.x - center2.x) ** 2 + (center1.y - center2.y) ** 2);\n }\n\n private updateWorldState(seenEntityIds: Set<string>, timestamp: number): void {\n // Update active entities\n this.worldState.activeEntities = Array.from(seenEntityIds);\n this.worldState.lastUpdate = timestamp;\n\n // Check for entities that left\n for (const [entityId, entity] of this.worldState.entities) {\n if (!seenEntityIds.has(entityId) && this.worldState.activeEntities.includes(entityId)) {\n // Entity just left the scene\n this.worldState.recentlyLeft.push({\n entityId,\n leftAt: timestamp,\n lastPosition: entity.lastPosition,\n });\n\n logger.info(`[EntityTracker] Entity left scene: ${entityId}`);\n }\n }\n\n // Clean up old \"recently left\" entries\n this.worldState.recentlyLeft = this.worldState.recentlyLeft.filter(\n (entry) => timestamp - entry.leftAt < this.CLEANUP_THRESHOLD\n );\n\n // Clean up very old entities\n for (const [entityId, entity] of this.worldState.entities) {\n if (timestamp - entity.lastSeen > this.CLEANUP_THRESHOLD * 10) {\n this.worldState.entities.delete(entityId);\n logger.debug(`[EntityTracker] Cleaned up old entity: ${entityId}`);\n }\n }\n }\n\n private async syncWithRuntime(\n runtime: IAgentRuntime,\n frameEntities: TrackedEntity[]\n ): Promise<void> {\n try {\n // Sync detected entities with the runtime's entity system\n for (const entity of frameEntities) {\n const elizaEntity = {\n id: entity.id as UUID,\n names: [entity.attributes.name || entity.id],\n metadata: {\n type: entity.entityType,\n firstSeen: entity.firstSeen,\n lastSeen: entity.lastSeen,\n attributes: entity.attributes,\n worldId: this.worldState.worldId,\n },\n agentId: runtime.agentId,\n };\n\n try {\n const existing = await runtime.getEntityById(entity.id as UUID);\n if (!existing) {\n await runtime.createEntity(elizaEntity);\n logger.debug(`[EntityTracker] Created entity ${entity.id} in runtime`);\n } else {\n await runtime.updateEntity({\n ...elizaEntity,\n id: entity.id as UUID,\n });\n logger.debug(`[EntityTracker] Updated entity ${entity.id} in runtime`);\n }\n } catch (err) {\n logger.debug(\n `[EntityTracker] Could not sync entity ${entity.id}: ${err instanceof Error ? err.message : String(err)}`\n );\n }\n }\n } catch (error) {\n logger.error(\"[EntityTracker] Failed to sync with runtime:\", error);\n }\n }\n\n // Public API\n getWorldState(): WorldState {\n return this.worldState;\n }\n\n getActiveEntities(): TrackedEntity[] {\n return this.worldState.activeEntities\n .map((id) => this.worldState.entities.get(id))\n .filter(Boolean) as TrackedEntity[];\n }\n\n getEntity(entityId: string): TrackedEntity | undefined {\n return this.worldState.entities.get(entityId);\n }\n\n getRecentlyLeft(): Array<{ entity: TrackedEntity; leftAt: number }> {\n return this.worldState.recentlyLeft\n .map((entry) => ({\n entity: this.worldState.entities.get(entry.entityId),\n leftAt: entry.leftAt,\n }))\n .filter((entry) => entry.entity) as Array<{ entity: TrackedEntity; leftAt: number }>;\n }\n\n // Name assignment\n assignNameToEntity(entityId: string, name: string): boolean {\n const entity = this.worldState.entities.get(entityId);\n if (entity) {\n entity.attributes.name = name;\n logger.info(`[EntityTracker] Assigned name \"${name}\" to entity ${entityId}`);\n return true;\n }\n return false;\n }\n\n // Get statistics\n getStatistics(): {\n totalEntities: number;\n activeEntities: number;\n recentlyLeft: number;\n people: number;\n objects: number;\n } {\n const entities = Array.from(this.worldState.entities.values());\n return {\n totalEntities: entities.length,\n activeEntities: this.worldState.activeEntities.length,\n recentlyLeft: this.worldState.recentlyLeft.length,\n people: entities.filter((e) => e.entityType === \"person\").length,\n objects: entities.filter((e) => e.entityType === \"object\").length,\n };\n }\n}\n",
|
|
11
|
+
"import { type IAgentRuntime, createUniqueUuid, logger, type UUID } from \"@elizaos/core\";\nimport type { BoundingBox, DetectedObject, PersonInfo, TrackedEntity, WorldState } from \"./types\";\n\nexport class EntityTracker {\n private worldState: WorldState;\n private readonly POSITION_THRESHOLD = 100; // pixels\n private readonly MISSING_THRESHOLD = 5000; // 5 seconds\n private readonly CLEANUP_THRESHOLD = 60000; // 1 minute\n\n constructor(worldId: string) {\n this.worldState = {\n worldId,\n entities: new Map(),\n lastUpdate: Date.now(),\n activeEntities: [],\n recentlyLeft: [],\n };\n }\n\n async updateEntities(\n detectedObjects: DetectedObject[],\n people: PersonInfo[],\n faceProfiles?: Map<string, string>, // Maps person ID to face profile ID\n runtime?: IAgentRuntime\n ): Promise<TrackedEntity[]> {\n const currentTime = Date.now();\n const frameEntities: TrackedEntity[] = [];\n const seenEntityIds = new Set<string>();\n\n // Process detected people\n for (const person of people) {\n const entity = await this.trackPerson(person, faceProfiles?.get(person.id), currentTime);\n frameEntities.push(entity);\n seenEntityIds.add(entity.id);\n }\n\n // Process detected objects\n for (const obj of detectedObjects) {\n if (obj.type !== \"person\" && obj.type !== \"person-candidate\") {\n const entity = await this.trackObject(obj, currentTime);\n frameEntities.push(entity);\n seenEntityIds.add(entity.id);\n }\n }\n\n // Update world state\n this.updateWorldState(seenEntityIds, currentTime);\n\n // Store entities in runtime if available\n if (runtime) {\n await this.syncWithRuntime(runtime, frameEntities);\n }\n\n return frameEntities;\n }\n\n private async trackPerson(\n person: PersonInfo,\n faceProfileId: string | undefined,\n timestamp: number\n ): Promise<TrackedEntity> {\n // Try to match with existing entities\n const matchedEntity = this.findMatchingEntity(person.boundingBox, \"person\", faceProfileId);\n\n if (matchedEntity) {\n // Update existing entity\n matchedEntity.lastSeen = timestamp;\n matchedEntity.lastPosition = person.boundingBox;\n matchedEntity.appearances.push({\n timestamp,\n boundingBox: person.boundingBox,\n confidence: person.confidence,\n });\n\n // Update attributes\n if (faceProfileId && !matchedEntity.attributes.faceId) {\n matchedEntity.attributes.faceId = faceProfileId;\n }\n\n // Keep only last 100 appearances\n if (matchedEntity.appearances.length > 100) {\n matchedEntity.appearances = matchedEntity.appearances.slice(-100);\n }\n\n return matchedEntity;\n } else {\n // Create new entity\n const entityId = `person-${timestamp}-${Math.random().toString(36).substr(2, 9)}`;\n const newEntity: TrackedEntity = {\n id: entityId,\n entityType: \"person\",\n firstSeen: timestamp,\n lastSeen: timestamp,\n lastPosition: person.boundingBox,\n appearances: [\n {\n timestamp,\n boundingBox: person.boundingBox,\n confidence: person.confidence,\n },\n ],\n attributes: {\n faceId: faceProfileId,\n },\n worldId: this.worldState.worldId,\n };\n\n this.worldState.entities.set(entityId, newEntity);\n logger.info(`[EntityTracker] New person entity created: ${entityId}`);\n\n return newEntity;\n }\n }\n\n private async trackObject(obj: DetectedObject, timestamp: number): Promise<TrackedEntity> {\n // Try to match with existing entities\n const matchedEntity = this.findMatchingEntity(obj.boundingBox, \"object\");\n\n if (matchedEntity) {\n // Update existing entity\n matchedEntity.lastSeen = timestamp;\n matchedEntity.lastPosition = obj.boundingBox;\n matchedEntity.appearances.push({\n timestamp,\n boundingBox: obj.boundingBox,\n confidence: obj.confidence,\n });\n\n // Keep only last 50 appearances for objects\n if (matchedEntity.appearances.length > 50) {\n matchedEntity.appearances = matchedEntity.appearances.slice(-50);\n }\n\n return matchedEntity;\n } else {\n // Create new entity\n const entityId = `object-${timestamp}-${Math.random().toString(36).substr(2, 9)}`;\n const newEntity: TrackedEntity = {\n id: entityId,\n entityType: \"object\",\n firstSeen: timestamp,\n lastSeen: timestamp,\n lastPosition: obj.boundingBox,\n appearances: [\n {\n timestamp,\n boundingBox: obj.boundingBox,\n confidence: obj.confidence,\n },\n ],\n attributes: {\n objectType: obj.type,\n },\n worldId: this.worldState.worldId,\n };\n\n this.worldState.entities.set(entityId, newEntity);\n logger.debug(`[EntityTracker] New object entity created: ${entityId} (${obj.type})`);\n\n return newEntity;\n }\n }\n\n private findMatchingEntity(\n boundingBox: BoundingBox,\n entityType: \"person\" | \"object\",\n faceProfileId?: string\n ): TrackedEntity | null {\n const currentTime = Date.now();\n let bestMatch: TrackedEntity | null = null;\n let minDistance = Infinity;\n\n for (const entity of this.worldState.entities.values()) {\n // Skip if wrong type\n if (entity.entityType !== entityType) {\n continue;\n }\n\n // Skip if entity has been missing too long\n if (currentTime - entity.lastSeen > this.MISSING_THRESHOLD) {\n continue;\n }\n\n // If we have face ID, prioritize face matching for people\n if (entityType === \"person\" && faceProfileId && entity.attributes.faceId) {\n if (entity.attributes.faceId === faceProfileId) {\n return entity; // Direct face match\n }\n }\n\n // Calculate position distance\n const distance = this.calculateDistance(entity.lastPosition, boundingBox);\n\n if (distance < this.POSITION_THRESHOLD && distance < minDistance) {\n minDistance = distance;\n bestMatch = entity;\n }\n }\n\n return bestMatch;\n }\n\n private calculateDistance(box1: BoundingBox, box2: BoundingBox): number {\n const center1 = {\n x: box1.x + box1.width / 2,\n y: box1.y + box1.height / 2,\n };\n const center2 = {\n x: box2.x + box2.width / 2,\n y: box2.y + box2.height / 2,\n };\n\n return Math.sqrt((center1.x - center2.x) ** 2 + (center1.y - center2.y) ** 2);\n }\n\n private updateWorldState(seenEntityIds: Set<string>, timestamp: number): void {\n // Update active entities\n this.worldState.activeEntities = Array.from(seenEntityIds);\n this.worldState.lastUpdate = timestamp;\n\n // Check for entities that left\n for (const [entityId, entity] of this.worldState.entities) {\n if (!seenEntityIds.has(entityId) && this.worldState.activeEntities.includes(entityId)) {\n // Entity just left the scene\n this.worldState.recentlyLeft.push({\n entityId,\n leftAt: timestamp,\n lastPosition: entity.lastPosition,\n });\n\n logger.info(`[EntityTracker] Entity left scene: ${entityId}`);\n }\n }\n\n // Clean up old \"recently left\" entries\n this.worldState.recentlyLeft = this.worldState.recentlyLeft.filter(\n (entry) => timestamp - entry.leftAt < this.CLEANUP_THRESHOLD\n );\n\n // Clean up very old entities\n for (const [entityId, entity] of this.worldState.entities) {\n if (timestamp - entity.lastSeen > this.CLEANUP_THRESHOLD * 10) {\n this.worldState.entities.delete(entityId);\n logger.debug(`[EntityTracker] Cleaned up old entity: ${entityId}`);\n }\n }\n }\n\n private async syncWithRuntime(\n runtime: IAgentRuntime,\n frameEntities: TrackedEntity[]\n ): Promise<void> {\n try {\n // Sync detected entities with the runtime's entity system\n for (const entity of frameEntities) {\n // Convert the human-readable tracker ID (e.g. \"person-123-abc\") to a\n // deterministic UUID that PostgreSQL accepts. The same local ID always\n // maps to the same UUID for a given agent, so updates stay consistent.\n const entityUuid = createUniqueUuid(runtime, entity.id);\n\n const elizaEntity = {\n id: entityUuid,\n names: [entity.attributes.name || entity.id],\n metadata: {\n type: entity.entityType,\n firstSeen: entity.firstSeen,\n lastSeen: entity.lastSeen,\n attributes: entity.attributes,\n worldId: this.worldState.worldId,\n },\n agentId: runtime.agentId,\n };\n\n try {\n const existing = await runtime.getEntityById(entityUuid);\n if (!existing) {\n await runtime.createEntity(elizaEntity);\n logger.debug(`[EntityTracker] Created entity ${entity.id} (${entityUuid}) in runtime`);\n } else {\n await runtime.updateEntity({\n ...elizaEntity,\n id: entityUuid,\n });\n logger.debug(`[EntityTracker] Updated entity ${entity.id} (${entityUuid}) in runtime`);\n }\n } catch (err) {\n logger.debug(\n `[EntityTracker] Could not sync entity ${entity.id}: ${err instanceof Error ? err.message : String(err)}`\n );\n }\n }\n } catch (error) {\n logger.error(\"[EntityTracker] Failed to sync with runtime:\", error);\n }\n }\n\n // Public API\n getWorldState(): WorldState {\n return this.worldState;\n }\n\n getActiveEntities(): TrackedEntity[] {\n return this.worldState.activeEntities\n .map((id) => this.worldState.entities.get(id))\n .filter(Boolean) as TrackedEntity[];\n }\n\n getEntity(entityId: string): TrackedEntity | undefined {\n return this.worldState.entities.get(entityId);\n }\n\n getRecentlyLeft(): Array<{ entity: TrackedEntity; leftAt: number }> {\n return this.worldState.recentlyLeft\n .map((entry) => ({\n entity: this.worldState.entities.get(entry.entityId),\n leftAt: entry.leftAt,\n }))\n .filter((entry) => entry.entity) as Array<{ entity: TrackedEntity; leftAt: number }>;\n }\n\n // Name assignment\n assignNameToEntity(entityId: string, name: string): boolean {\n const entity = this.worldState.entities.get(entityId);\n if (entity) {\n entity.attributes.name = name;\n logger.info(`[EntityTracker] Assigned name \"${name}\" to entity ${entityId}`);\n return true;\n }\n return false;\n }\n\n // Get statistics\n getStatistics(): {\n totalEntities: number;\n activeEntities: number;\n recentlyLeft: number;\n people: number;\n objects: number;\n } {\n const entities = Array.from(this.worldState.entities.values());\n return {\n totalEntities: entities.length,\n activeEntities: this.worldState.activeEntities.length,\n recentlyLeft: this.worldState.recentlyLeft.length,\n people: entities.filter((e) => e.entityType === \"person\").length,\n objects: entities.filter((e) => e.entityType === \"object\").length,\n };\n }\n}\n",
|
|
12
12
|
"import * as path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { logger } from \"@elizaos/core\";\nimport * as faceapi from \"face-api.js\";\nimport type { FaceLibrary, FaceProfile } from \"./types\";\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// Dynamic imports for optional dependencies\n// Canvas package types differ from DOM types but are runtime-compatible with face-api.js\nlet CanvasModule: typeof import(\"canvas\") | undefined;\n\n/**\n * Type helpers for node-canvas to face-api.js compatibility.\n * The canvas package provides Node.js implementations that are runtime-compatible\n * with face-api.js, but have different TypeScript types than DOM equivalents.\n */\ntype FaceApiEnv = {\n Canvas: typeof HTMLCanvasElement;\n Image: typeof HTMLImageElement;\n ImageData: typeof ImageData;\n};\n\n/**\n * Adapter type for node-canvas Canvas to HTMLCanvasElement.\n * Runtime-compatible but TypeScript types differ.\n */\ntype CanvasAdapter = import(\"canvas\").Canvas & HTMLCanvasElement;\n\nfunction asCanvasEnv(canvas: typeof import(\"canvas\")): FaceApiEnv {\n return {\n // node-canvas types don't match DOM types but are runtime-compatible with face-api.js\n Canvas: canvas.Canvas as unknown as typeof HTMLCanvasElement,\n Image: canvas.Image as unknown as typeof HTMLImageElement,\n ImageData: canvas.ImageData as typeof ImageData,\n };\n}\n\nfunction asHTMLCanvasElement(canvas: import(\"canvas\").Canvas): HTMLCanvasElement {\n // node-canvas Canvas is runtime-compatible with HTMLCanvasElement\n return canvas as CanvasAdapter as HTMLCanvasElement;\n}\n\nasync function initializeCanvas() {\n try {\n CanvasModule = await import(\"canvas\");\n\n // Polyfill for face-api.js - node-canvas is runtime-compatible with face-api.js\n faceapi.env.monkeyPatch(asCanvasEnv(CanvasModule));\n } catch (error) {\n logger.error(\"[FaceRecognition] Canvas module not available:\", error);\n throw new Error(\n \"Canvas module is required for face recognition. Install with: npm install canvas\"\n );\n }\n}\n\nexport class FaceRecognition {\n private initialized = false;\n private faceLibrary: FaceLibrary = {\n faces: new Map(),\n embeddings: new Map(),\n };\n private modelPath = path.join(__dirname, \"..\", \"models\", \"face-api\");\n\n // Thresholds\n private readonly FACE_MATCH_THRESHOLD = 0.6; // Euclidean distance threshold\n private readonly MIN_FACE_SIZE = 50; // Minimum face size in pixels\n\n async initialize(): Promise<void> {\n if (this.initialized) {\n return;\n }\n\n try {\n logger.info(\"[FaceRecognition] Loading face detection models...\");\n\n // Initialize canvas first\n await initializeCanvas();\n\n // Load face-api.js models\n await faceapi.nets.ssdMobilenetv1.loadFromDisk(this.modelPath);\n await faceapi.nets.faceLandmark68Net.loadFromDisk(this.modelPath);\n await faceapi.nets.faceRecognitionNet.loadFromDisk(this.modelPath);\n await faceapi.nets.faceExpressionNet.loadFromDisk(this.modelPath);\n await faceapi.nets.ageGenderNet.loadFromDisk(this.modelPath);\n\n this.initialized = true;\n logger.info(\"[FaceRecognition] Models loaded successfully\");\n } catch (error) {\n logger.error(\"[FaceRecognition] Failed to load models:\", error);\n logger.info(\n \"[FaceRecognition] Download models from: https://github.com/justadudewhohacks/face-api.js-models\"\n );\n throw error;\n }\n }\n\n async detectFaces(\n imageData: Buffer,\n width: number,\n height: number\n ): Promise<\n Array<{\n detection: faceapi.FaceDetection;\n landmarks: faceapi.FaceLandmarks68;\n descriptor: Float32Array;\n expressions: faceapi.FaceExpressions;\n ageGender?: { age: number; gender: string; genderProbability: number };\n }>\n > {\n if (!this.initialized) {\n await this.initialize();\n }\n\n // Validate input parameters\n if (!imageData || imageData.length === 0 || width <= 0 || height <= 0) {\n logger.warn(\n `[FaceRecognition] Invalid input parameters: dataLength=${imageData?.length || 0}, width=${width}, height=${height}`\n );\n return [];\n }\n\n // Validate that the buffer size matches expected dimensions\n const expectedSize = width * height * 4; // RGBA\n if (imageData.length !== expectedSize) {\n logger.warn(\n `[FaceRecognition] Buffer size mismatch: expected=${expectedSize}, actual=${imageData.length}, width=${width}, height=${height}`\n );\n return [];\n }\n\n try {\n if (!CanvasModule) {\n throw new Error(\"Canvas module not initialized. Call initialize() first.\");\n }\n // Create canvas from image data\n const canvas = new CanvasModule.Canvas(width, height);\n const ctx = canvas.getContext(\"2d\");\n const imageDataObj = new CanvasModule.ImageData(\n new Uint8ClampedArray(imageData),\n width,\n height\n );\n ctx.putImageData(imageDataObj, 0, 0);\n\n // Detect faces with full analysis\n // face-api.js accepts HTMLCanvasElement or compatible canvas (node-canvas works)\n const detections = await faceapi\n .detectAllFaces(\n asHTMLCanvasElement(canvas),\n new faceapi.SsdMobilenetv1Options({\n minConfidence: 0.5,\n maxResults: 10,\n })\n )\n .withFaceLandmarks()\n .withFaceDescriptors()\n .withFaceExpressions()\n .withAgeAndGender();\n\n return detections.filter(\n (d: {\n detection: {\n box: {\n width: number;\n height: number;\n };\n };\n }) => {\n const box = d.detection.box;\n return box.width >= this.MIN_FACE_SIZE && box.height >= this.MIN_FACE_SIZE;\n }\n );\n } catch (error) {\n logger.error(\"[FaceRecognition] Face detection failed:\", error);\n return [];\n }\n }\n\n async recognizeFace(\n descriptor: Float32Array\n ): Promise<{ profileId: string; distance: number } | null> {\n let bestMatch: { profileId: string; distance: number } | null = null;\n let minDistance = Infinity;\n\n // Compare with all known faces\n for (const [profileId, embeddings] of this.faceLibrary.embeddings) {\n for (const knownEmbedding of embeddings) {\n const distance = this.euclideanDistance(descriptor, knownEmbedding);\n\n if (distance < this.FACE_MATCH_THRESHOLD && distance < minDistance) {\n minDistance = distance;\n bestMatch = { profileId, distance };\n }\n }\n }\n\n return bestMatch;\n }\n\n async addOrUpdateFace(\n descriptor: Float32Array,\n attributes?: Partial<FaceProfile>\n ): Promise<string> {\n // Check if this face already exists\n const match = await this.recognizeFace(descriptor);\n\n if (match) {\n // Update existing profile\n const profile = this.faceLibrary.faces.get(match.profileId);\n if (!profile) {\n throw new Error(`Profile not found for matched profileId: ${match.profileId}`);\n }\n profile.lastSeen = Date.now();\n profile.seenCount++;\n\n // Add new embedding for better recognition\n const embeddings = this.faceLibrary.embeddings.get(match.profileId);\n if (!embeddings) {\n throw new Error(`Embeddings not found for matched profileId: ${match.profileId}`);\n }\n if (embeddings.length < 10) {\n // Keep up to 10 embeddings per person\n embeddings.push(Array.from(descriptor));\n }\n\n // Update attributes if provided\n if (attributes) {\n Object.assign(profile, attributes);\n }\n\n return match.profileId;\n } else {\n // Create new profile\n const profileId = `face-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n const profile: FaceProfile = {\n id: profileId,\n embeddings: [Array.from(descriptor)],\n firstSeen: Date.now(),\n lastSeen: Date.now(),\n seenCount: 1,\n ...attributes,\n };\n\n this.faceLibrary.faces.set(profileId, profile);\n this.faceLibrary.embeddings.set(profileId, [Array.from(descriptor)]);\n\n logger.info(`[FaceRecognition] New face registered: ${profileId}`);\n return profileId;\n }\n }\n\n getFaceProfile(profileId: string): FaceProfile | undefined {\n return this.faceLibrary.faces.get(profileId);\n }\n\n getAllProfiles(): FaceProfile[] {\n return Array.from(this.faceLibrary.faces.values());\n }\n\n private euclideanDistance(a: Float32Array | number[], b: number[]): number {\n let sum = 0;\n const aArray = Array.from(a);\n for (let i = 0; i < aArray.length; i++) {\n sum += (aArray[i] - b[i]) ** 2;\n }\n return Math.sqrt(sum);\n }\n\n // Persistence methods\n async saveFaceLibrary(path: string): Promise<void> {\n const data = {\n faces: Array.from(this.faceLibrary.faces.entries()),\n embeddings: Array.from(this.faceLibrary.embeddings.entries()),\n };\n\n const fs = await import(\"node:fs/promises\");\n await fs.writeFile(path, JSON.stringify(data, null, 2));\n logger.info(`[FaceRecognition] Face library saved to ${path}`);\n }\n\n async loadFaceLibrary(path: string): Promise<void> {\n try {\n const fs = await import(\"node:fs/promises\");\n const data = JSON.parse(await fs.readFile(path, \"utf-8\"));\n\n this.faceLibrary.faces = new Map(data.faces);\n this.faceLibrary.embeddings = new Map(data.embeddings);\n\n logger.info(`[FaceRecognition] Loaded ${this.faceLibrary.faces.size} face profiles`);\n } catch (error) {\n logger.warn(\"[FaceRecognition] Could not load face library:\", error);\n }\n }\n}\n",
|
|
13
13
|
"import { logger } from \"@elizaos/core\";\nimport { Florence2Local } from \"./florence2-local\";\nimport type { BoundingBox, Florence2Result, ScreenTile } from \"./types\";\n\nexport class Florence2Model {\n private initialized = false;\n private localModel: Florence2Local;\n\n constructor() {\n this.localModel = new Florence2Local();\n }\n\n async initialize(): Promise<void> {\n if (this.initialized) {\n return;\n }\n\n try {\n logger.info(\"[Florence2] Initializing local Florence-2 model with TensorFlow.js...\");\n\n await this.localModel.initialize();\n\n this.initialized = true;\n logger.info(\"[Florence2] Local model initialized successfully\");\n } catch (error) {\n logger.error(\"[Florence2] Failed to initialize local model:\", error);\n // Don't throw - we have good fallbacks\n this.initialized = true;\n logger.warn(\"[Florence2] Running with enhanced fallback mode\");\n }\n }\n\n async analyzeTile(tile: ScreenTile): Promise<Florence2Result> {\n if (!this.initialized) {\n await this.initialize();\n }\n\n if (!tile.data) {\n throw new Error(\"Tile has no image data\");\n }\n\n try {\n // Use local model\n try {\n const result = await this.localModel.analyzeImage(tile.data);\n logger.debug(`[Florence2] Analyzed tile ${tile.id}: ${result.caption}`);\n return result;\n } catch (_modelError) {\n logger.warn(\"[Florence2] Local model analysis failed, falling back:\", _modelError);\n }\n\n // Fall back to mock analysis\n const result = await this.mockAnalyze(tile);\n logger.debug(`[Florence2] Mock analyzed tile ${tile.id}: ${result.caption}`);\n return result;\n } catch (error) {\n logger.error(\"[Florence2] Analysis failed:\", error);\n throw error;\n }\n }\n\n async analyzeImage(imageBuffer: Buffer): Promise<Florence2Result> {\n if (!this.initialized) {\n await this.initialize();\n }\n\n try {\n // Use local model\n try {\n const result = await this.localModel.analyzeImage(imageBuffer);\n logger.debug(`[Florence2] Analyzed image: ${result.caption}`);\n return result;\n } catch (_modelError) {\n logger.warn(\"[Florence2] Local model analysis failed, falling back:\", _modelError);\n }\n\n // Fall back to mock analysis\n const result = await this.mockAnalyzeBuffer(imageBuffer);\n logger.debug(`[Florence2] Mock analyzed image: ${result.caption}`);\n return result;\n } catch (error) {\n logger.error(\"[Florence2] Image analysis failed:\", error);\n throw error;\n }\n }\n\n private async mockAnalyze(tile: ScreenTile): Promise<Florence2Result> {\n // Mock implementation that simulates Florence-2 output\n // In production, this would be replaced with actual API calls\n\n const isUpperRegion = tile.row < 2;\n const isLeftRegion = tile.col < 2;\n\n // Simulate different UI regions\n let caption = \"Desktop screen region\";\n const objects: Array<{ label: string; bbox: BoundingBox; confidence: number }> = [];\n const regions: Array<{ description: string; bbox: BoundingBox }> = [];\n const tags: string[] = [];\n\n if (isUpperRegion) {\n caption = \"Application window with menu bar\";\n objects.push({\n label: \"window\",\n bbox: { x: 0, y: 0, width: tile.width, height: 50 },\n confidence: 0.9,\n });\n objects.push({\n label: \"menu_bar\",\n bbox: { x: 0, y: 0, width: tile.width, height: 30 },\n confidence: 0.85,\n });\n tags.push(\"ui\", \"application\", \"desktop\");\n }\n\n if (isLeftRegion) {\n caption = \"Sidebar or navigation area\";\n objects.push({\n label: \"sidebar\",\n bbox: { x: 0, y: 0, width: 100, height: tile.height },\n confidence: 0.8,\n });\n tags.push(\"navigation\", \"sidebar\");\n }\n\n // Add some common UI elements\n const buttonCount = Math.floor(Math.random() * 3) + 1;\n for (let i = 0; i < buttonCount; i++) {\n objects.push({\n label: \"button\",\n bbox: {\n x: Math.random() * (tile.width - 100),\n y: Math.random() * (tile.height - 40),\n width: 100,\n height: 40,\n },\n confidence: 0.7 + Math.random() * 0.2,\n });\n }\n\n // Add text regions\n const textRegions = Math.floor(Math.random() * 2) + 1;\n for (let i = 0; i < textRegions; i++) {\n regions.push({\n description: \"Text content area\",\n bbox: {\n x: Math.random() * (tile.width - 200),\n y: Math.random() * (tile.height - 100),\n width: 200,\n height: 100,\n },\n });\n }\n\n tags.push(\"screen\", \"interface\", \"computer\");\n\n return {\n caption,\n objects,\n regions,\n tags,\n };\n }\n\n async detectUIElements(imageBuffer: Buffer): Promise<\n Array<{\n type: string;\n bbox: BoundingBox;\n confidence: number;\n text?: string;\n }>\n > {\n if (!this.initialized) {\n await this.initialize();\n }\n\n try {\n // Use local model to analyze image\n let result: Florence2Result;\n\n try {\n result = await this.localModel.analyzeImage(imageBuffer);\n } catch (_modelError) {\n logger.warn(\"[Florence2] Local model failed for UI detection, using fallback\");\n result = await this.mockAnalyzeBuffer(imageBuffer);\n }\n\n // Convert Florence-2 objects to UI elements\n return (result.objects || []).map((obj) => ({\n type: this.mapToUIElementType(obj.label),\n bbox: obj.bbox,\n confidence: obj.confidence,\n }));\n } catch (error) {\n logger.error(\"[Florence2] UI element detection failed:\", error);\n return [];\n }\n }\n\n private async mockAnalyzeBuffer(_imageBuffer: Buffer): Promise<Florence2Result> {\n // Enhanced mock for when API is not available\n // Provides more realistic descriptions based on common scenarios\n\n const scenarios = [\n {\n caption: \"Indoor scene with a person in front of a computer\",\n objects: [\n {\n label: \"person\",\n bbox: { x: 300, y: 200, width: 200, height: 300 },\n confidence: 0.9,\n },\n {\n label: \"computer\",\n bbox: { x: 400, y: 350, width: 150, height: 100 },\n confidence: 0.85,\n },\n {\n label: \"desk\",\n bbox: { x: 350, y: 400, width: 250, height: 100 },\n confidence: 0.8,\n },\n ],\n tags: [\"indoor\", \"office\", \"workspace\", \"person\", \"computer\"],\n },\n {\n caption: \"Room interior with furniture and lighting\",\n objects: [\n {\n label: \"chair\",\n bbox: { x: 200, y: 300, width: 100, height: 150 },\n confidence: 0.85,\n },\n {\n label: \"table\",\n bbox: { x: 350, y: 350, width: 150, height: 100 },\n confidence: 0.8,\n },\n {\n label: \"lamp\",\n bbox: { x: 500, y: 200, width: 50, height: 100 },\n confidence: 0.75,\n },\n ],\n tags: [\"indoor\", \"room\", \"furniture\", \"interior\"],\n },\n {\n caption: \"Person working at a desk with computer monitor\",\n objects: [\n {\n label: \"person\",\n bbox: { x: 250, y: 150, width: 250, height: 350 },\n confidence: 0.92,\n },\n {\n label: \"monitor\",\n bbox: { x: 450, y: 300, width: 120, height: 80 },\n confidence: 0.88,\n },\n {\n label: \"keyboard\",\n bbox: { x: 430, y: 380, width: 100, height: 30 },\n confidence: 0.82,\n },\n ],\n tags: [\"person\", \"working\", \"computer\", \"desk\", \"office\"],\n },\n ];\n\n // Randomly select a scenario for variety\n const scenario = scenarios[Math.floor(Math.random() * scenarios.length)];\n\n return {\n caption: scenario.caption,\n objects: scenario.objects,\n regions: [],\n tags: scenario.tags,\n };\n }\n\n private mapToUIElementType(label: string): string {\n const mapping: Record<string, string> = {\n button: \"button\",\n text_field: \"input\",\n text_area: \"textarea\",\n checkbox: \"checkbox\",\n radio_button: \"radio\",\n dropdown: \"select\",\n menu: \"menu\",\n menu_bar: \"menubar\",\n toolbar: \"toolbar\",\n window: \"window\",\n dialog: \"dialog\",\n icon: \"icon\",\n image: \"image\",\n video: \"video\",\n link: \"link\",\n heading: \"heading\",\n paragraph: \"text\",\n list: \"list\",\n table: \"table\",\n scrollbar: \"scrollbar\",\n tab: \"tab\",\n panel: \"panel\",\n };\n\n return mapping[label.toLowerCase()] || \"unknown\";\n }\n\n async generateSceneGraph(tiles: ScreenTile[]): Promise<{\n nodes: Array<{ id: string; type: string; label: string; position: BoundingBox }>;\n edges: Array<{ source: string; target: string; relation: string }>;\n }> {\n const nodes: Array<{ id: string; type: string; label: string; position: BoundingBox }> = [];\n const edges: Array<{ source: string; target: string; relation: string }> = [];\n\n // Analyze each tile\n for (const tile of tiles) {\n if (!tile.data) {\n continue;\n }\n\n const analysis = await this.analyzeTile(tile);\n\n // Add objects as nodes\n if (analysis.objects) {\n for (const obj of analysis.objects) {\n const nodeId = `${tile.id}-${obj.label}-${nodes.length}`;\n nodes.push({\n id: nodeId,\n type: obj.label,\n label: obj.label,\n position: {\n x: tile.x + obj.bbox.x,\n y: tile.y + obj.bbox.y,\n width: obj.bbox.width,\n height: obj.bbox.height,\n },\n });\n }\n }\n }\n\n // Infer spatial relationships\n for (let i = 0; i < nodes.length; i++) {\n for (let j = i + 1; j < nodes.length; j++) {\n const relation = this.inferSpatialRelation(nodes[i].position, nodes[j].position);\n if (relation) {\n edges.push({\n source: nodes[i].id,\n target: nodes[j].id,\n relation,\n });\n }\n }\n }\n\n return { nodes, edges };\n }\n\n private inferSpatialRelation(box1: BoundingBox, box2: BoundingBox): string | null {\n const center1 = {\n x: box1.x + box1.width / 2,\n y: box1.y + box1.height / 2,\n };\n const center2 = {\n x: box2.x + box2.width / 2,\n y: box2.y + box2.height / 2,\n };\n\n // Check containment\n if (this.contains(box1, box2)) {\n return \"contains\";\n }\n if (this.contains(box2, box1)) {\n return \"contained_by\";\n }\n\n // Check overlap\n if (this.overlaps(box1, box2)) {\n return \"overlaps\";\n }\n\n // Check adjacency and direction\n const dx = center2.x - center1.x;\n const dy = center2.y - center1.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n if (distance < 100) {\n // Close proximity\n if (Math.abs(dx) > Math.abs(dy)) {\n return dx > 0 ? \"right_of\" : \"left_of\";\n } else {\n return dy > 0 ? \"below\" : \"above\";\n }\n }\n\n return null;\n }\n\n private contains(box1: BoundingBox, box2: BoundingBox): boolean {\n return (\n box1.x <= box2.x &&\n box1.y <= box2.y &&\n box1.x + box1.width >= box2.x + box2.width &&\n box1.y + box1.height >= box2.y + box2.height\n );\n }\n\n private overlaps(box1: BoundingBox, box2: BoundingBox): boolean {\n return !(\n box1.x + box1.width < box2.x ||\n box2.x + box2.width < box1.x ||\n box1.y + box1.height < box2.y ||\n box2.y + box2.height < box1.y\n );\n }\n\n isInitialized(): boolean {\n return this.initialized;\n }\n\n async dispose(): Promise<void> {\n // Clean up resources if needed\n this.initialized = false;\n logger.info(\"[Florence2] Model disposed\");\n }\n}\n",
|
|
14
14
|
"import { logger } from \"@elizaos/core\";\nimport sharp from \"sharp\";\nimport type { Florence2Result } from \"./types\";\n\n// Lazy-loaded TensorFlow.js — the native addon may not be available.\nlet tf: typeof import(\"@tensorflow/tfjs-node\") | null = null;\n\nasync function ensureTf(): Promise<boolean> {\n if (tf) return true;\n try {\n tf = await import(\"@tensorflow/tfjs-node\");\n return true;\n } catch {\n logger.warn(\n \"[Florence2Local] TensorFlow.js native addon not available — using heuristic analysis.\",\n );\n return false;\n }\n}\n\ninterface VisionModelConfig {\n modelUrl?: string;\n cacheDir?: string;\n}\n\ninterface ResolvedVisionModelConfig {\n modelUrl: string;\n cacheDir: string;\n}\n\n/**\n * Local vision model for basic image analysis using MobileNet.\n * Provides caption generation and basic scene understanding capabilities.\n */\nexport class Florence2Local {\n private model: { predict: (input: ReturnType<NonNullable<typeof tf>[\"tensor\"]>) => ReturnType<NonNullable<typeof tf>[\"tensor\"]>; dispose: () => void } | null = null;\n private initialized = false;\n private config: ResolvedVisionModelConfig;\n\n constructor(config?: VisionModelConfig) {\n this.config = {\n modelUrl:\n config?.modelUrl ||\n \"https://tfhub.dev/google/tfjs-model/imagenet/mobilenet_v3_small_100_224/feature_vector/5/default/1\",\n cacheDir: config?.cacheDir || \"./models/cache\",\n };\n }\n\n async initialize(): Promise<void> {\n if (this.initialized) {\n return;\n }\n\n const tfAvailable = await ensureTf();\n if (!tfAvailable || !tf) {\n // Continue without model — will use heuristic-based analysis\n this.initialized = true;\n return;\n }\n\n try {\n logger.info(\"[VisionModel] Initializing MobileNet model for image analysis...\");\n\n this.model = (await tf.loadGraphModel(this.config.modelUrl)) as typeof this.model;\n\n this.initialized = true;\n logger.info(\"[VisionModel] Model initialized successfully\");\n } catch (error) {\n logger.error(\"[VisionModel] Failed to initialize model:\", error);\n // Continue without model - will use heuristic-based analysis\n this.initialized = true;\n }\n }\n\n async analyzeImage(imageBuffer: Buffer): Promise<Florence2Result> {\n if (!this.initialized) {\n await this.initialize();\n }\n\n // If TF isn't available or model didn't load, skip directly to fallback\n if (!tf || !this.model) {\n return await this.enhancedFallback(imageBuffer);\n }\n\n try {\n // Preprocess image\n const preprocessed = await this.preprocessImage(imageBuffer);\n\n // Run inference\n const predictions = await this.runInference(preprocessed);\n (preprocessed as { dispose?: () => void }).dispose?.();\n\n return this.parseModelOutput(predictions as Parameters<typeof this.parseModelOutput>[0]);\n } catch (error) {\n logger.error(\"[VisionModel] Analysis failed:\", error);\n return await this.enhancedFallback(imageBuffer);\n }\n }\n\n private async preprocessImage(imageBuffer: Buffer) {\n if (!tf) throw new Error(\"TensorFlow.js not available\");\n\n // Resize and normalize image for model input\n const resized = await sharp(imageBuffer)\n .resize(224, 224) // MobileNet uses 224x224\n .raw()\n .toBuffer();\n\n // Convert to tensor and normalize\n const tensor = tf.node.decodeImage(resized, 3);\n const normalized = tf.div(tensor, 255.0);\n\n return normalized;\n }\n\n private async runInference(input: { expandDims: (axis: number) => { dispose: () => void } }) {\n if (!this.model) {\n throw new Error(\"Model not loaded\");\n }\n\n // Add batch dimension\n const batched = input.expandDims(0);\n\n // Run model\n const output = this.model.predict(batched as Parameters<typeof this.model.predict>[0]);\n\n batched.dispose();\n\n return output;\n }\n\n private async parseModelOutput(predictions: { array: () => Promise<number[][]>; dispose: () => void }): Promise<Florence2Result> {\n const values = await predictions.array();\n predictions.dispose();\n\n const caption = this.generateCaptionFromFeatures(values);\n\n return {\n caption,\n objects: [],\n regions: [],\n tags: this.extractTagsFromCaption(caption),\n };\n }\n\n private generateCaptionFromFeatures(features: number[][]): string {\n const scenes = [\n \"Indoor scene with various objects visible\",\n \"Person in a room with furniture\",\n \"Computer workspace with monitor and desk\",\n \"Living space with natural lighting\",\n \"Office environment with equipment\",\n ];\n\n const index = Math.abs(features[0][0]) * scenes.length;\n return scenes[Math.floor(index) % scenes.length];\n }\n\n private extractTagsFromCaption(caption: string): string[] {\n const words = caption.toLowerCase().split(/\\s+/);\n const validTags = [\n \"indoor\",\n \"outdoor\",\n \"person\",\n \"computer\",\n \"desk\",\n \"office\",\n \"room\",\n \"furniture\",\n \"monitor\",\n \"workspace\",\n ];\n return words.filter((word) => validTags.includes(word));\n }\n\n private async enhancedFallback(imageBuffer: Buffer): Promise<Florence2Result> {\n // Analyze image properties for better fallback\n const metadata = await sharp(imageBuffer).metadata();\n const stats = await sharp(imageBuffer).stats();\n\n // Determine scene type based on image characteristics\n const brightness =\n (stats.channels[0].mean + stats.channels[1].mean + stats.channels[2].mean) / 3;\n const isIndoor = brightness < 180; // Simplified heuristic\n\n // Generate contextual caption\n let caption = isIndoor ? \"Indoor scene\" : \"Outdoor scene\";\n\n // Add more context based on image properties\n if (metadata.width && metadata.height) {\n const aspectRatio = metadata.width / metadata.height;\n if (aspectRatio > 1.5) {\n caption += \" with wide field of view\";\n } else if (aspectRatio < 0.7) {\n caption += \" in portrait orientation\";\n }\n }\n\n // Detect dominant colors for additional context\n const dominantColor = stats.dominant;\n if (dominantColor.r > 200 && dominantColor.g > 200 && dominantColor.b > 200) {\n caption += \", well-lit environment\";\n } else if (dominantColor.r < 100 && dominantColor.g < 100 && dominantColor.b < 100) {\n caption += \", dimly lit conditions\";\n }\n\n return {\n caption,\n objects: [],\n regions: [],\n tags: this.extractTagsFromCaption(caption),\n };\n }\n\n isInitialized(): boolean {\n return this.initialized;\n }\n\n async dispose(): Promise<void> {\n if (this.model) {\n this.model.dispose();\n this.model = null;\n }\n this.initialized = false;\n logger.info(\"[VisionModel] Model disposed\");\n }\n}\n",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"// Export all E2E test suites\n\nexport { default as ScreenVisionE2ETestSuite } from \"./screen-vision\";\nexport { default as VisionAutonomyE2ETestSuite } from \"./vision-autonomy\";\nexport { default as VisionBasicE2ETestSuite } from \"./vision-basic\";\nexport { default as VisionCaptureLogTestSuite } from \"./vision-capture-log\";\nexport { default as VisionRuntimeTestSuite } from \"./vision-runtime\";\nexport { default as VisionWorkerE2ETestSuite } from \"./vision-worker-tests\";\n\nimport ScreenVisionE2ETestSuite from \"./screen-vision\";\nimport VisionAutonomyE2ETestSuite from \"./vision-autonomy\";\n// Export as array for convenience\nimport VisionBasicE2ETestSuite from \"./vision-basic\";\nimport VisionCaptureLogTestSuite from \"./vision-capture-log\";\nimport VisionRuntimeTestSuite from \"./vision-runtime\";\nimport VisionWorkerE2ETestSuite from \"./vision-worker-tests\";\n\nexport const testSuites = [\n VisionRuntimeTestSuite, // Real runtime tests first\n VisionBasicE2ETestSuite,\n VisionAutonomyE2ETestSuite,\n VisionCaptureLogTestSuite,\n ScreenVisionE2ETestSuite,\n VisionWorkerE2ETestSuite, // Worker-based tests\n];\n\nexport default testSuites;\n",
|
|
28
28
|
"import type { Plugin, TestSuite } from \"@elizaos/core\";\nimport {\n captureImageAction,\n describeSceneAction,\n identifyPersonAction,\n killAutonomousAction,\n nameEntityAction,\n setVisionModeAction,\n trackEntityAction,\n} from \"./action\";\nimport { visionProvider } from \"./provider\";\nimport { VisionService } from \"./service\";\nimport { testSuites } from \"./tests/e2e/index\";\n\nexport const visionPlugin: Plugin = {\n name: \"vision\",\n description: \"Provides visual perception through camera integration and scene analysis\",\n services: [VisionService],\n providers: [visionProvider],\n actions: [\n describeSceneAction,\n captureImageAction,\n killAutonomousAction,\n setVisionModeAction,\n nameEntityAction,\n identifyPersonAction,\n trackEntityAction,\n ],\n tests: testSuites as unknown as TestSuite[],\n init: async (_config, _runtime) => {},\n};\n\nexport default visionPlugin;\n"
|
|
29
29
|
],
|
|
30
|
-
"mappings": "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",
|
|
31
|
-
"debugId": "
|
|
30
|
+
"mappings": "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",
|
|
31
|
+
"debugId": "8F996A8EAA2C894364756E2164756E21",
|
|
32
32
|
"names": []
|
|
33
33
|
}
|