@elizaos/plugin-vision 1.2.1 → 2.0.0-alpha.2

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.
Files changed (106) hide show
  1. package/LICENSE +21 -0
  2. package/build.config.ts +53 -53
  3. package/dist/index.js +6716 -67
  4. package/dist/index.js.map +33 -1
  5. package/dist/workers/florence2-worker.js +111763 -307
  6. package/dist/workers/florence2-worker.js.map +92 -1
  7. package/dist/workers/ocr-worker.js +119177 -339
  8. package/dist/workers/ocr-worker.js.map +137 -1
  9. package/dist/workers/screen-capture-worker.js +350 -418
  10. package/dist/workers/screen-capture-worker.js.map +11 -1
  11. package/package.json +15 -20
  12. package/README.md +0 -270
  13. package/dist/action.d.ts +0 -8
  14. package/dist/action.js +0 -1212
  15. package/dist/action.js.map +0 -1
  16. package/dist/audio-capture-stream.d.ts +0 -42
  17. package/dist/audio-capture-stream.js +0 -516
  18. package/dist/audio-capture-stream.js.map +0 -1
  19. package/dist/audio-capture.d.ts +0 -25
  20. package/dist/audio-capture.js +0 -412
  21. package/dist/audio-capture.js.map +0 -1
  22. package/dist/basic.test.d.ts +0 -1
  23. package/dist/basic.test.js +0 -97
  24. package/dist/basic.test.js.map +0 -1
  25. package/dist/config.d.ts +0 -73
  26. package/dist/config.js +0 -254
  27. package/dist/config.js.map +0 -1
  28. package/dist/entity-tracker.d.ts +0 -32
  29. package/dist/entity-tracker.js +0 -361
  30. package/dist/entity-tracker.js.map +0 -1
  31. package/dist/errors.d.ts +0 -67
  32. package/dist/errors.js +0 -395
  33. package/dist/errors.js.map +0 -1
  34. package/dist/face-recognition.d.ts +0 -31
  35. package/dist/face-recognition.js +0 -332
  36. package/dist/face-recognition.js.map +0 -1
  37. package/dist/florence2-local.d.ts +0 -25
  38. package/dist/florence2-local.js +0 -280
  39. package/dist/florence2-local.js.map +0 -1
  40. package/dist/florence2-model.d.ts +0 -36
  41. package/dist/florence2-model.js +0 -503
  42. package/dist/florence2-model.js.map +0 -1
  43. package/dist/index.d.ts +0 -3
  44. package/dist/ocr-service-real.d.ts +0 -32
  45. package/dist/ocr-service-real.js +0 -396
  46. package/dist/ocr-service-real.js.map +0 -1
  47. package/dist/ocr-service.d.ts +0 -28
  48. package/dist/ocr-service.js +0 -216
  49. package/dist/ocr-service.js.map +0 -1
  50. package/dist/provider.d.ts +0 -2
  51. package/dist/provider.js +0 -285
  52. package/dist/provider.js.map +0 -1
  53. package/dist/screen-capture.d.ts +0 -16
  54. package/dist/screen-capture.js +0 -302
  55. package/dist/screen-capture.js.map +0 -1
  56. package/dist/service.d.ts +0 -73
  57. package/dist/service.js +0 -1662
  58. package/dist/service.js.map +0 -1
  59. package/dist/tests/e2e/index.d.ts +0 -8
  60. package/dist/tests/e2e/index.js +0 -33
  61. package/dist/tests/e2e/index.js.map +0 -1
  62. package/dist/tests/e2e/run-local.d.ts +0 -2
  63. package/dist/tests/e2e/run-local.js +0 -166
  64. package/dist/tests/e2e/run-local.js.map +0 -1
  65. package/dist/tests/e2e/screen-vision.d.ts +0 -11
  66. package/dist/tests/e2e/screen-vision.js +0 -384
  67. package/dist/tests/e2e/screen-vision.js.map +0 -1
  68. package/dist/tests/e2e/vision-autonomy.d.ts +0 -11
  69. package/dist/tests/e2e/vision-autonomy.js +0 -375
  70. package/dist/tests/e2e/vision-autonomy.js.map +0 -1
  71. package/dist/tests/e2e/vision-basic.d.ts +0 -11
  72. package/dist/tests/e2e/vision-basic.js +0 -434
  73. package/dist/tests/e2e/vision-basic.js.map +0 -1
  74. package/dist/tests/e2e/vision-capture-log.d.ts +0 -11
  75. package/dist/tests/e2e/vision-capture-log.js +0 -302
  76. package/dist/tests/e2e/vision-capture-log.js.map +0 -1
  77. package/dist/tests/e2e/vision-runtime.d.ts +0 -11
  78. package/dist/tests/e2e/vision-runtime.js +0 -357
  79. package/dist/tests/e2e/vision-runtime.js.map +0 -1
  80. package/dist/tests/e2e/vision-worker-tests.d.ts +0 -11
  81. package/dist/tests/e2e/vision-worker-tests.js +0 -466
  82. package/dist/tests/e2e/vision-worker-tests.js.map +0 -1
  83. package/dist/tests/test-pattern-generator.d.ts +0 -40
  84. package/dist/tests/test-pattern-generator.js +0 -191
  85. package/dist/tests/test-pattern-generator.js.map +0 -1
  86. package/dist/tests.d.ts +0 -3
  87. package/dist/tests.js +0 -11
  88. package/dist/tests.js.map +0 -1
  89. package/dist/types.d.ts +0 -222
  90. package/dist/types.js +0 -16
  91. package/dist/types.js.map +0 -1
  92. package/dist/vision-models.d.ts +0 -47
  93. package/dist/vision-models.js +0 -501
  94. package/dist/vision-models.js.map +0 -1
  95. package/dist/vision-worker-manager.d.ts +0 -61
  96. package/dist/vision-worker-manager.js +0 -668
  97. package/dist/vision-worker-manager.js.map +0 -1
  98. package/dist/workers/florence2-worker-simple.d.ts +0 -13
  99. package/dist/workers/florence2-worker-simple.js +0 -121
  100. package/dist/workers/florence2-worker-simple.js.map +0 -1
  101. package/dist/workers/florence2-worker.d.ts +0 -1
  102. package/dist/workers/ocr-worker.d.ts +0 -1
  103. package/dist/workers/screen-capture-worker.d.ts +0 -1
  104. package/dist/workers/worker-logger.d.ts +0 -9
  105. package/dist/workers/worker-logger.js +0 -95
  106. package/dist/workers/worker-logger.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"action.js","sourceRoot":"","sources":["../src/action.ts"],"names":[],"mappings":"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","sourcesContent":["// Vision actions for scene analysis and image capture\nimport {\n type Action,\n type ActionExample,\n type ActionResult,\n type IAgentRuntime,\n type Memory,\n type State,\n type HandlerCallback,\n logger,\n type Media,\n ContentType,\n createUniqueUuid,\n} from '@elizaos/core';\nimport { type VisionService } from './service';\nimport { VisionMode } from './types';\n\n// Helper function to save execution record to message feed\nasync function saveExecutionRecord(\n runtime: IAgentRuntime,\n messageContext: Memory,\n thought: string,\n text: string,\n actions?: string[],\n attachments?: Media[]\n): Promise<void> {\n const memory: Memory = {\n id: createUniqueUuid(runtime, `vision-record-${Date.now()}`),\n content: {\n text,\n thought,\n actions: actions || ['VISION_ANALYSIS'],\n attachments,\n },\n entityId: createUniqueUuid(runtime, runtime.agentId),\n agentId: runtime.agentId,\n roomId: messageContext.roomId,\n worldId: messageContext.worldId,\n createdAt: Date.now(),\n };\n await runtime.createMemory(memory, 'messages');\n}\n\nexport const describeSceneAction: Action = {\n name: 'DESCRIBE_SCENE',\n similes: ['ANALYZE_SCENE', 'WHAT_DO_YOU_SEE', 'VISION_CHECK', 'LOOK_AROUND'],\n description:\n 'Analyzes the current visual scene and provides a detailed description of what the agent sees through the camera. Returns scene analysis data including people count, objects, and camera info for action chaining.',\n validate: async (runtime: IAgentRuntime, _message: Memory, _state?: State): Promise<boolean> => {\n const visionService = runtime.getService<VisionService>('VISION');\n return !!visionService && visionService.isActive();\n },\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: any,\n callback?: HandlerCallback,\n _responses?: Memory[]\n ): Promise<ActionResult> => {\n const visionService = runtime.getService<VisionService>('VISION');\n\n if (!visionService || !visionService.isActive()) {\n const thought = 'Vision service is not available or no camera is connected.';\n const text = 'I cannot see anything right now. No camera is available.';\n await saveExecutionRecord(runtime, message, thought, text, ['DESCRIBE_SCENE']);\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['DESCRIBE_SCENE'],\n });\n }\n return {\n text: 'Vision service unavailable - cannot analyze scene',\n values: {\n success: false,\n visionAvailable: false,\n error: 'Vision service not available',\n },\n data: {\n actionName: 'DESCRIBE_SCENE',\n error: 'Vision service not available or no camera connected',\n },\n };\n }\n\n try {\n const scene = await visionService.getSceneDescription();\n const cameraInfo = visionService.getCameraInfo();\n\n if (!scene) {\n const thought = 'Camera is connected but no scene has been analyzed yet.';\n const text = `Camera \"${cameraInfo?.name}\" is connected, but I haven't analyzed any scenes yet. Please wait a moment.`;\n await saveExecutionRecord(runtime, message, thought, text, ['DESCRIBE_SCENE']);\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['DESCRIBE_SCENE'],\n });\n }\n return {\n text: 'Camera connected but no scene analyzed yet',\n values: {\n success: false,\n visionAvailable: true,\n sceneAnalyzed: false,\n cameraName: cameraInfo?.name,\n },\n data: {\n actionName: 'DESCRIBE_SCENE',\n cameraInfo,\n sceneStatus: 'not_analyzed',\n },\n };\n }\n\n // Format the response\n const peopleCount = scene.people.length;\n const objectCount = scene.objects.length;\n const timestamp = new Date(scene.timestamp).toLocaleString();\n\n let description = `Looking through ${cameraInfo?.name || 'the camera'}, `;\n description += scene.description;\n\n if (peopleCount > 0) {\n description += `\\n\\nI can see ${peopleCount} ${peopleCount === 1 ? 'person' : 'people'}`;\n const facingData = scene.people.reduce(\n (acc, person) => {\n if (person.facing && person.facing !== 'unknown') {\n acc[person.facing] = (acc[person.facing] || 0) + 1;\n }\n return acc;\n },\n {} as Record<string, number>\n );\n\n if (Object.keys(facingData).length > 0) {\n const facingDescriptions = Object.entries(facingData).map(\n ([direction, count]) => `${count} facing ${direction}`\n );\n description += ` (${facingDescriptions.join(', ')})`;\n }\n description += '.';\n }\n\n if (objectCount > 0) {\n const objectTypes = scene.objects.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 const objectDescriptions = Object.entries(objectTypes).map(\n ([type, count]) => `${count} ${type}${count > 1 ? 's' : ''}`\n );\n description += `\\n\\nObjects detected: ${objectDescriptions.join(', ')}.`;\n }\n\n if (scene.sceneChanged && scene.changePercentage) {\n description += `\\n\\n(Scene changed by ${scene.changePercentage.toFixed(1)}% since last analysis)`;\n }\n\n const thought = `Analyzed the visual scene at ${timestamp}.`;\n const text = description;\n\n await saveExecutionRecord(runtime, message, thought, text, ['DESCRIBE_SCENE']);\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['DESCRIBE_SCENE'],\n });\n }\n\n return {\n text: description,\n values: {\n success: true,\n visionAvailable: true,\n sceneAnalyzed: true,\n peopleCount,\n objectCount,\n cameraName: cameraInfo?.name,\n sceneChanged: scene.sceneChanged,\n changePercentage: scene.changePercentage,\n },\n data: {\n actionName: 'DESCRIBE_SCENE',\n scene,\n cameraInfo,\n timestamp,\n description,\n },\n };\n } catch (error: any) {\n logger.error('[describeSceneAction] Error analyzing scene:', error);\n const thought = 'An error occurred while trying to analyze the visual scene.';\n const text = `Error analyzing scene: ${error.message}`;\n await saveExecutionRecord(runtime, message, thought, text, ['DESCRIBE_SCENE']);\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['DESCRIBE_SCENE'],\n });\n }\n\n return {\n text: 'Error analyzing scene',\n values: {\n success: false,\n visionAvailable: true,\n error: true,\n errorMessage: error.message,\n },\n data: {\n actionName: 'DESCRIBE_SCENE',\n error: error.message,\n errorType: 'analysis_error',\n },\n };\n }\n },\n examples: [\n [\n { name: '{{user}}', content: { text: 'what do you see?' } },\n {\n name: '{{agent}}',\n content: {\n actions: ['DESCRIBE_SCENE'],\n thought: 'The user wants to know what I can see through my camera.',\n text: 'I see a room with a desk and computer setup. There are 2 people, one is sitting and one is standing.',\n },\n },\n ],\n [\n { name: '{{user}}', content: { text: 'describe the scene and then take a photo' } },\n {\n name: '{{agent}}',\n content: {\n actions: ['DESCRIBE_SCENE', 'CAPTURE_IMAGE'],\n thought: 'I should first analyze the scene, then capture an image for the user.',\n text: 'I can see 3 people in an office setting. Let me capture this scene for you.',\n },\n },\n ],\n ] as ActionExample[][],\n};\n\nexport const captureImageAction: Action = {\n name: 'CAPTURE_IMAGE',\n similes: ['TAKE_PHOTO', 'SCREENSHOT', 'CAPTURE_FRAME', 'TAKE_PICTURE'],\n description:\n 'Captures the current frame from the camera and saves it as an image attachment. Returns image data with camera info and timestamp for action chaining. Can be combined with DESCRIBE_SCENE for analysis or NAME_ENTITY for identification workflows.',\n enabled: false, // Disabled by default - privacy-sensitive, can capture images\n validate: async (runtime: IAgentRuntime, _message: Memory, _state?: State): Promise<boolean> => {\n const visionService = runtime.getService<VisionService>('VISION');\n return !!visionService && visionService.isActive();\n },\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: any,\n callback?: HandlerCallback,\n _responses?: Memory[]\n ): Promise<ActionResult> => {\n const visionService = runtime.getService<VisionService>('VISION');\n\n if (!visionService || !visionService.isActive()) {\n const thought = 'Vision service is not available or no camera is connected.';\n const text = 'I cannot capture an image right now. No camera is available.';\n await saveExecutionRecord(runtime, message, thought, text, ['CAPTURE_IMAGE']);\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['CAPTURE_IMAGE'],\n });\n }\n return {\n text: 'Vision service unavailable - cannot capture image',\n values: {\n success: false,\n visionAvailable: false,\n error: 'Vision service not available',\n },\n data: {\n actionName: 'CAPTURE_IMAGE',\n error: 'Vision service not available or no camera connected',\n },\n };\n }\n\n try {\n const imageBuffer = await visionService.captureImage();\n const cameraInfo = visionService.getCameraInfo();\n\n if (!imageBuffer) {\n const thought = 'Failed to capture image from camera.';\n const text = 'I could not capture an image from the camera. Please try again.';\n await saveExecutionRecord(runtime, message, thought, text, ['CAPTURE_IMAGE']);\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['CAPTURE_IMAGE'],\n });\n }\n return {\n text: 'Failed to capture image from camera',\n values: {\n success: false,\n visionAvailable: true,\n captureSuccess: false,\n },\n data: {\n actionName: 'CAPTURE_IMAGE',\n error: 'Camera capture failed',\n cameraInfo,\n },\n };\n }\n\n // Create image attachment\n const attachmentId = createUniqueUuid(runtime, `capture-${Date.now()}`);\n const timestamp = new Date().toISOString();\n\n const imageAttachment: Media = {\n id: attachmentId,\n title: `Camera Capture - ${timestamp}`,\n contentType: ContentType.IMAGE,\n source: `camera:${cameraInfo?.name || 'unknown'}`,\n url: `data:image/jpeg;base64,${imageBuffer.toString('base64')}`,\n };\n\n const thought = `Captured an image from camera \"${cameraInfo?.name}\".`;\n const text = `I've captured an image from the camera at ${timestamp}.`;\n\n await saveExecutionRecord(\n runtime,\n message,\n thought,\n text,\n ['CAPTURE_IMAGE'],\n [imageAttachment]\n );\n\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['CAPTURE_IMAGE'],\n attachments: [imageAttachment],\n });\n }\n\n return {\n text: `I've captured an image from the camera at ${timestamp}.`,\n values: {\n success: true,\n visionAvailable: true,\n captureSuccess: true,\n cameraName: cameraInfo?.name,\n timestamp,\n },\n data: {\n actionName: 'CAPTURE_IMAGE',\n imageAttachment,\n cameraInfo,\n timestamp,\n },\n };\n } catch (error: any) {\n logger.error('[captureImageAction] Error capturing image:', error);\n const thought = 'An error occurred while trying to capture an image.';\n const text = `Error capturing image: ${error.message}`;\n await saveExecutionRecord(runtime, message, thought, text, ['CAPTURE_IMAGE']);\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['CAPTURE_IMAGE'],\n });\n }\n\n return {\n text: 'Error capturing image',\n values: {\n success: false,\n visionAvailable: true,\n error: true,\n errorMessage: error.message,\n },\n data: {\n actionName: 'CAPTURE_IMAGE',\n error: error.message,\n errorType: 'capture_error',\n },\n };\n }\n },\n examples: [\n // Multi-action: Describe scene then capture image\n [\n { name: '{{user}}', content: { text: 'describe what you see and take a photo' } },\n {\n name: '{{agent}}',\n content: {\n actions: ['DESCRIBE_SCENE', 'CAPTURE_IMAGE'],\n thought: 'User wants scene analysis followed by image capture.',\n text: 'I can see 3 people in an office setting. Let me capture this scene for you.',\n },\n },\n ],\n [\n { name: '{{user}}', content: { text: 'take a photo' } },\n {\n name: '{{agent}}',\n content: {\n actions: ['CAPTURE_IMAGE'],\n thought: 'The user wants me to capture an image from the camera.',\n text: \"I've captured an image from the camera.\",\n },\n },\n ],\n [\n { name: '{{user}}', content: { text: 'capture the current scene' } },\n {\n name: '{{agent}}',\n content: {\n actions: ['CAPTURE_IMAGE'],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\nexport const killAutonomousAction: Action = {\n name: 'KILL_AUTONOMOUS',\n similes: ['STOP_AUTONOMOUS', 'HALT_AUTONOMOUS', 'KILL_AUTO_LOOP'],\n description: 'Stops the autonomous agent loop for debugging purposes.',\n enabled: false, // Disabled by default - potentially dangerous, can halt autonomous operations\n validate: async (_runtime: IAgentRuntime, _message: Memory, _state?: State): Promise<boolean> => {\n // Always allow this action for debugging\n return true;\n },\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: any,\n callback?: HandlerCallback,\n _responses?: Memory[]\n ): Promise<void> => {\n try {\n // Try to get the autonomous service and stop it\n const autonomousService = runtime.getService('AUTONOMOUS');\n\n if (autonomousService && 'stop' in autonomousService) {\n await (autonomousService as any).stop();\n\n const thought = 'Successfully stopped the autonomous agent loop.';\n const text =\n 'Autonomous loop has been killed. The agent will no longer run autonomously until restarted.';\n\n await saveExecutionRecord(runtime, message, thought, text, ['KILL_AUTONOMOUS']);\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['KILL_AUTONOMOUS'],\n });\n }\n } else {\n const thought = 'Autonomous service not found or already stopped.';\n const text = 'No autonomous loop was running or the service could not be found.';\n\n await saveExecutionRecord(runtime, message, thought, text, ['KILL_AUTONOMOUS']);\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['KILL_AUTONOMOUS'],\n });\n }\n }\n } catch (error: any) {\n logger.error('[killAutonomousAction] Error stopping autonomous service:', error);\n\n const thought = 'An error occurred while trying to stop the autonomous loop.';\n const text = `Error stopping autonomous loop: ${error.message}`;\n\n await saveExecutionRecord(runtime, message, thought, text, ['KILL_AUTONOMOUS']);\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['KILL_AUTONOMOUS'],\n });\n }\n }\n },\n examples: [\n [\n { name: 'user', content: { text: 'kill the autonomous loop' } },\n {\n name: 'agent',\n content: {\n actions: ['KILL_AUTONOMOUS'],\n thought: 'The user wants to stop the autonomous agent loop for debugging.',\n text: 'Autonomous loop has been killed. The agent will no longer run autonomously until restarted.',\n },\n },\n ],\n [\n { name: 'user', content: { text: 'stop autonomous mode' } },\n {\n name: 'agent',\n content: {\n actions: ['KILL_AUTONOMOUS'],\n },\n },\n ],\n ],\n};\n\nexport const setVisionModeAction: Action = {\n name: 'SET_VISION_MODE',\n description: 'Set the vision mode to OFF, CAMERA, SCREEN, or BOTH',\n similes: [\n 'change vision to {mode}',\n 'set vision mode {mode}',\n 'switch to {mode} vision',\n 'turn vision {mode}',\n 'use {mode} vision',\n 'enable {mode} vision',\n 'disable vision',\n ],\n validate: async (runtime: IAgentRuntime, _message: Memory, _state?: State): Promise<boolean> => {\n const visionService = runtime.getService<VisionService>('VISION');\n return visionService !== null;\n },\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: any,\n callback?: HandlerCallback,\n _responses?: Memory[]\n ): Promise<void> => {\n const visionService = runtime.getService<VisionService>('VISION');\n\n if (!visionService) {\n const thought = 'Vision service is not available.';\n const text = 'I cannot change vision mode because the vision service is not available.';\n await saveExecutionRecord(runtime, message, thought, text, ['SET_VISION_MODE']);\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['SET_VISION_MODE'],\n });\n }\n return;\n }\n\n try {\n // Extract the desired mode from the message\n const messageText = message.content.text?.toLowerCase() || '';\n let newMode: VisionMode | null = null;\n\n if (messageText.includes('off') || messageText.includes('disable')) {\n newMode = VisionMode.OFF;\n } else if (messageText.includes('both')) {\n newMode = VisionMode.BOTH;\n } else if (messageText.includes('screen')) {\n newMode = VisionMode.SCREEN;\n } else if (messageText.includes('camera')) {\n newMode = VisionMode.CAMERA;\n }\n\n if (!newMode) {\n const thought = 'Could not determine the desired vision mode from the message.';\n const text = 'Please specify the vision mode: OFF, CAMERA, SCREEN, or BOTH.';\n await saveExecutionRecord(runtime, message, thought, text, ['SET_VISION_MODE']);\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['SET_VISION_MODE'],\n });\n }\n return;\n }\n\n const currentMode = visionService.getVisionMode();\n await visionService.setVisionMode(newMode);\n\n const thought = `Changed vision mode from ${currentMode} to ${newMode}.`;\n let text = '';\n\n switch (newMode) {\n case VisionMode.OFF:\n text = 'Vision has been disabled. I will no longer process visual input.';\n break;\n case VisionMode.CAMERA:\n text = 'Vision mode set to CAMERA only. I will process input from the camera.';\n break;\n case VisionMode.SCREEN:\n text = \"Vision mode set to SCREEN only. I will analyze what's on your screen.\";\n break;\n case VisionMode.BOTH:\n text = 'Vision mode set to BOTH. I will process input from both camera and screen.';\n break;\n }\n\n await saveExecutionRecord(runtime, message, thought, text, ['SET_VISION_MODE']);\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['SET_VISION_MODE'],\n });\n }\n } catch (error: any) {\n logger.error('[setVisionModeAction] Error changing vision mode:', error);\n const thought = 'An error occurred while trying to change the vision mode.';\n const text = `Error changing vision mode: ${error.message}`;\n await saveExecutionRecord(runtime, message, thought, text, ['SET_VISION_MODE']);\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['SET_VISION_MODE'],\n });\n }\n }\n },\n examples: [\n [\n { name: 'user', content: { text: 'set vision mode to screen' } },\n {\n name: 'agent',\n content: {\n actions: ['SET_VISION_MODE'],\n thought: 'The user wants to switch to screen vision mode.',\n text: \"Vision mode set to SCREEN only. I will analyze what's on your screen.\",\n },\n },\n ],\n [\n { name: 'user', content: { text: 'enable both camera and screen vision' } },\n {\n name: 'agent',\n content: {\n actions: ['SET_VISION_MODE'],\n thought: 'The user wants to enable both vision inputs.',\n text: 'Vision mode set to BOTH. I will process input from both camera and screen.',\n },\n },\n ],\n [\n { name: 'user', content: { text: 'turn off vision' } },\n {\n name: 'agent',\n content: {\n actions: ['SET_VISION_MODE'],\n thought: 'The user wants to disable vision.',\n text: 'Vision has been disabled. I will no longer process visual input.',\n },\n },\n ],\n ],\n};\n\n// Enhanced actions for entity tracking and face recognition\nexport const nameEntityAction: Action = {\n name: 'NAME_ENTITY',\n description: 'Assign a name to a person or object currently visible in the camera view',\n similes: [\n 'call the person {name}',\n 'the person in front is {name}',\n 'name the person {name}',\n 'that person is {name}',\n 'the object is a {name}',\n 'call that {name}',\n ],\n examples: [\n [\n {\n name: 'user',\n content: {\n text: 'The person wearing the blue shirt is named Alice',\n },\n },\n {\n name: 'agent',\n content: {\n text: \"I've identified the person in the blue shirt as Alice. I'll remember them for future interactions.\",\n actions: ['NAME_ENTITY'],\n },\n },\n ],\n [\n {\n name: 'user',\n content: {\n text: 'Call the person on the left Bob',\n },\n },\n {\n name: 'agent',\n content: {\n text: \"I've named the person on the left as Bob. Their face profile has been updated.\",\n actions: ['NAME_ENTITY'],\n },\n },\n ],\n ],\n\n validate: async (runtime: IAgentRuntime, _message: Memory, _state?: State): Promise<boolean> => {\n const visionService = runtime.getService<VisionService>('VISION');\n return visionService?.isActive() || false;\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: any,\n callback?: HandlerCallback\n ): Promise<void> => {\n try {\n const visionService = runtime.getService<VisionService>('VISION');\n\n if (!visionService) {\n const thought = 'Vision service is not available.';\n const text = 'I cannot name entities because the vision service is not available.';\n await saveExecutionRecord(runtime, message, thought, text, ['NAME_ENTITY']);\n if (callback) {\n await callback({ thought, text, actions: ['NAME_ENTITY'] });\n }\n return;\n }\n\n const scene = await visionService.getSceneDescription();\n\n if (!scene || scene.people.length === 0) {\n const thought = 'No people visible to name.';\n const text = \"I don't see any people in the current scene to name.\";\n await saveExecutionRecord(runtime, message, thought, text, ['NAME_ENTITY']);\n if (callback) {\n await callback({ thought, text, actions: ['NAME_ENTITY'] });\n }\n return;\n }\n\n // Extract name from message\n const text = message.content.text?.toLowerCase() || '';\n const nameMatch = text.match(/(?:named?|call(?:ed)?|is)\\s+(\\w+)/i);\n\n if (!nameMatch) {\n const thought = 'Could not extract name from message.';\n const text =\n 'I couldn\\'t understand what name to assign. Please say something like \"The person is named Alice\".';\n await saveExecutionRecord(runtime, message, thought, text, ['NAME_ENTITY']);\n if (callback) {\n await callback({ thought, text, actions: ['NAME_ENTITY'] });\n }\n return;\n }\n\n const name = nameMatch[1];\n\n // Get entity tracker\n const _worldId = message.worldId || 'default-world';\n const entityTracker = visionService.getEntityTracker();\n\n // Update entities\n await entityTracker.updateEntities(scene.objects, scene.people, undefined, runtime);\n const activeEntities = entityTracker.getActiveEntities();\n const people = activeEntities.filter((e) => e.entityType === 'person');\n\n if (people.length === 0) {\n const thought = 'No tracked people found.';\n const text =\n \"I can see someone but haven't established tracking yet. Please try again in a moment.\";\n await saveExecutionRecord(runtime, message, thought, text, ['NAME_ENTITY']);\n if (callback) {\n await callback({ thought, text, actions: ['NAME_ENTITY'] });\n }\n return;\n }\n\n // For now, assign to the most prominent person (largest bounding box)\n let targetPerson = people[0];\n if (people.length > 1) {\n targetPerson = people.reduce((prev, curr) => {\n const prevArea = prev.lastPosition.width * prev.lastPosition.height;\n const currArea = curr.lastPosition.width * curr.lastPosition.height;\n return currArea > prevArea ? curr : prev;\n });\n }\n\n // Assign the name\n const success = entityTracker.assignNameToEntity(targetPerson.id, name);\n\n if (success) {\n // Success response\n const thought = `Named entity \"${name}\" and associated with person in scene.`;\n const text = `I've identified the person as ${name}. I'll remember them for future interactions.`;\n\n await saveExecutionRecord(runtime, message, thought, text, ['NAME_ENTITY'], undefined);\n\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['NAME_ENTITY'],\n data: { entityId: targetPerson.id, name },\n });\n }\n\n logger.info(`[NameEntityAction] Assigned name \"${name}\" to entity ${targetPerson.id}`);\n } else {\n const thought = 'Failed to assign name to entity.';\n const text = 'There was an error assigning the name. Please try again.';\n await saveExecutionRecord(runtime, message, thought, text, ['NAME_ENTITY']);\n if (callback) {\n await callback({ thought, text, actions: ['NAME_ENTITY'] });\n }\n }\n } catch (error) {\n logger.error('[NameEntityAction] Error:', error);\n const thought = 'Failed to name entity.';\n const text = `Sorry, I couldn't name the entity: ${error instanceof Error ? error.message : 'Unknown error'}`;\n await saveExecutionRecord(runtime, message, thought, text, ['NAME_ENTITY']);\n if (callback) {\n await callback({ thought, text, actions: ['NAME_ENTITY'] });\n }\n }\n },\n};\n\nexport const identifyPersonAction: Action = {\n name: 'IDENTIFY_PERSON',\n description: 'Identify a person in view if they have been seen before',\n enabled: false, // Disabled by default - privacy-sensitive, can identify and recognize people\n similes: [\n 'who is that',\n 'who is the person',\n 'identify the person',\n 'do you recognize them',\n 'have you seen them before',\n ],\n examples: [\n [\n {\n name: 'user',\n content: {\n text: 'Who is the person in front of you?',\n },\n },\n {\n name: 'agent',\n content: {\n text: \"That's Alice. I last saw her about 5 minutes ago. She's been here for the past 20 minutes.\",\n actions: ['IDENTIFY_PERSON'],\n },\n },\n ],\n ],\n\n validate: async (runtime: IAgentRuntime, _message: Memory, _state?: State): Promise<boolean> => {\n const visionService = runtime.getService<VisionService>('VISION');\n return visionService?.isActive() || false;\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: any,\n callback?: HandlerCallback\n ): Promise<void> => {\n try {\n const visionService = runtime.getService<VisionService>('VISION');\n\n if (!visionService) {\n const thought = 'Vision service is not available.';\n const text = 'I cannot identify people because the vision service is not available.';\n await saveExecutionRecord(runtime, message, thought, text, ['IDENTIFY_PERSON']);\n if (callback) {\n await callback({ thought, text, actions: ['IDENTIFY_PERSON'] });\n }\n return;\n }\n\n const scene = await visionService.getSceneDescription();\n\n if (!scene || scene.people.length === 0) {\n const thought = 'No people visible to identify.';\n const text = \"I don't see any people in the current scene.\";\n await saveExecutionRecord(runtime, message, thought, text, ['IDENTIFY_PERSON']);\n if (callback) {\n await callback({ thought, text, actions: ['IDENTIFY_PERSON'] });\n }\n return;\n }\n\n // Get entity tracker\n const _worldId = message.worldId || 'default-world';\n const entityTracker = visionService.getEntityTracker();\n\n // Update entities\n await entityTracker.updateEntities(scene.objects, scene.people, undefined, runtime);\n const activeEntities = entityTracker.getActiveEntities();\n const people = activeEntities.filter((e) => e.entityType === 'person');\n\n if (people.length === 0) {\n const thought = 'No tracked people found.';\n const text = \"I can see someone but I'm still processing their identity.\";\n await saveExecutionRecord(runtime, message, thought, text, ['IDENTIFY_PERSON']);\n if (callback) {\n await callback({ thought, text, actions: ['IDENTIFY_PERSON'] });\n }\n return;\n }\n\n // Build response about visible people\n const _responseText = '';\n let recognizedCount = 0;\n let unknownCount = 0;\n const identifications: string[] = [];\n\n for (const person of people) {\n const name = person.attributes.name;\n const duration = Date.now() - person.firstSeen;\n const durationStr =\n duration < 60000\n ? `${Math.round(duration / 1000)} seconds`\n : `${Math.round(duration / 60000)} minutes`;\n\n if (name) {\n recognizedCount++;\n const personInfo = `I can see ${name}. They've been here for ${durationStr}.`;\n identifications.push(personInfo);\n\n // Add more context if available\n if (person.appearances.length > 5) {\n identifications.push(\"I've been tracking them consistently.\");\n }\n } else {\n unknownCount++;\n const personInfo = `I see an unidentified person who has been here for ${durationStr}.`;\n identifications.push(personInfo);\n\n if (person.attributes.faceId) {\n identifications.push(\n \"I've captured their face profile but they haven't been named yet.\"\n );\n }\n }\n }\n\n // Check for recently departed people\n const recentlyLeft = entityTracker.getRecentlyLeft();\n if (recentlyLeft.length > 0) {\n identifications.push('\\nRecently departed:');\n for (const { entity, leftAt } of recentlyLeft) {\n if (entity.entityType === 'person' && entity.attributes.name) {\n const timeAgo = Date.now() - leftAt;\n const timeStr =\n timeAgo < 60000\n ? `${Math.round(timeAgo / 1000)} seconds ago`\n : `${Math.round(timeAgo / 60000)} minutes ago`;\n identifications.push(`${entity.attributes.name} left ${timeStr}.`);\n }\n }\n }\n\n const thought = `Identified ${recognizedCount} known people and ${unknownCount} unknown people.`;\n const text = identifications.join(' ');\n\n await saveExecutionRecord(runtime, message, thought, text, ['IDENTIFY_PERSON']);\n\n if (callback) {\n await callback({\n thought,\n text,\n actions: ['IDENTIFY_PERSON'],\n data: { identifications: people },\n });\n }\n } catch (error) {\n logger.error('[identifyPersonAction] Error:', error);\n const thought = 'Failed to identify people.';\n const text = `Sorry, I couldn't identify people: ${error instanceof Error ? error.message : 'Unknown error'}`;\n await saveExecutionRecord(runtime, message, thought, text, ['IDENTIFY_PERSON']);\n if (callback) {\n await callback({ thought, text, actions: ['IDENTIFY_PERSON'] });\n }\n }\n },\n};\n\nexport const trackEntityAction: Action = {\n name: 'TRACK_ENTITY',\n description: 'Start tracking a specific person or object in view',\n enabled: false, // Disabled by default - privacy-sensitive, can track and monitor people\n similes: [\n 'track the {description}',\n 'follow the {description}',\n 'keep an eye on the {description}',\n 'watch the {description}',\n ],\n examples: [\n [\n {\n name: 'user',\n content: {\n text: 'Track the person wearing the red shirt',\n },\n },\n {\n name: 'agent',\n content: {\n text: \"I'm now tracking the person in the red shirt. I'll notify you of any significant movements or if they leave the scene.\",\n actions: ['TRACK_ENTITY'],\n },\n },\n ],\n ],\n\n validate: async (runtime: IAgentRuntime, _message: Memory, _state?: State): Promise<boolean> => {\n const visionService = runtime.getService<VisionService>('VISION');\n return visionService?.isActive() || false;\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: any,\n callback?: HandlerCallback\n ): Promise<void> => {\n try {\n const visionService = runtime.getService<VisionService>('VISION');\n\n if (!visionService) {\n const thought = 'Vision service is not available.';\n const text = 'I cannot track entities because the vision service is not available.';\n await saveExecutionRecord(runtime, message, thought, text, ['TRACK_ENTITY']);\n if (callback) {\n await callback({ thought, text, actions: ['TRACK_ENTITY'] });\n }\n return;\n }\n\n const scene = await visionService.getSceneDescription();\n\n if (!scene) {\n const thought = 'No scene available for tracking.';\n const text = 'I need a moment to process the visual scene before I can track entities.';\n await saveExecutionRecord(runtime, message, thought, text, ['TRACK_ENTITY']);\n if (callback) {\n await callback({ thought, text, actions: ['TRACK_ENTITY'] });\n }\n return;\n }\n\n const _text = message.content.text?.toLowerCase() || '';\n\n // Get entity tracker\n const _worldId = message.worldId || 'default-world';\n const entityTracker = visionService.getEntityTracker();\n\n // Update entities\n await entityTracker.updateEntities(scene.objects, scene.people, undefined, runtime);\n const stats = entityTracker.getStatistics();\n\n const thought = `Tracking ${stats.activeEntities} entities in the scene.`;\n const summary = [\n `I'm now tracking ${stats.activeEntities} entities in the scene`,\n `(${stats.people} people, ${stats.objects} objects).`,\n 'The visual tracking system will maintain persistent IDs for all entities',\n 'and notify you of significant changes.',\n ];\n const responseText = summary.join(' ');\n\n await saveExecutionRecord(runtime, message, thought, responseText, ['TRACK_ENTITY']);\n\n if (callback) {\n await callback({\n thought,\n text: responseText,\n actions: ['TRACK_ENTITY'],\n data: { entities: stats.activeEntities },\n });\n }\n\n logger.info(`[TrackEntityAction] Tracking ${stats.activeEntities} entities`);\n } catch (error) {\n logger.error('[trackEntityAction] Error:', error);\n const thought = 'Failed to track entities.';\n const text = `Sorry, I couldn't track entities: ${error instanceof Error ? error.message : 'Unknown error'}`;\n await saveExecutionRecord(runtime, message, thought, text, ['TRACK_ENTITY']);\n if (callback) {\n await callback({ thought, text, actions: ['TRACK_ENTITY'] });\n }\n }\n },\n};\n"]}
@@ -1,42 +0,0 @@
1
- import { type IAgentRuntime } from '@elizaos/core';
2
- import { EventEmitter } from 'events';
3
- export interface StreamingAudioConfig {
4
- enabled: boolean;
5
- device?: string;
6
- sampleRate?: number;
7
- channels?: number;
8
- vadThreshold?: number;
9
- silenceTimeout?: number;
10
- responseDelay?: number;
11
- chunkSize?: number;
12
- }
13
- export declare class StreamingAudioCaptureService extends EventEmitter {
14
- private runtime;
15
- private config;
16
- private captureProcess;
17
- private isCapturing;
18
- private audioBuffer;
19
- private isSpeaking;
20
- private lastSpeechTime;
21
- private silenceTimer;
22
- private transcriptionInProgress;
23
- private currentTranscription;
24
- private responseTimer;
25
- constructor(runtime: IAgentRuntime, config: StreamingAudioConfig);
26
- initialize(): Promise<void>;
27
- private startContinuousCapture;
28
- private processAudioChunk;
29
- private calculateEnergy;
30
- private startStreamingTranscription;
31
- private endSpeech;
32
- private processFinalTranscription;
33
- private getRecentAudioData;
34
- private transcribeAudio;
35
- private rawToWav;
36
- private generateResponse;
37
- private createAudioMemory;
38
- stop(): Promise<void>;
39
- isActive(): boolean;
40
- getCurrentTranscription(): string;
41
- isSpeechActive(): boolean;
42
- }