@mentra/engine 0.1.0-beta.0
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/README.md +79 -0
- package/build/devtools.d.ts +11 -0
- package/build/devtools.d.ts.map +1 -0
- package/build/devtools.js +13 -0
- package/build/devtools.js.map +1 -0
- package/build/engine.d.ts +261 -0
- package/build/engine.d.ts.map +1 -0
- package/build/engine.js +170 -0
- package/build/engine.js.map +1 -0
- package/build/facades/dev.d.ts +58 -0
- package/build/facades/dev.d.ts.map +1 -0
- package/build/facades/dev.js +189 -0
- package/build/facades/dev.js.map +1 -0
- package/build/facades/display.d.ts +21 -0
- package/build/facades/display.d.ts.map +1 -0
- package/build/facades/display.js +17 -0
- package/build/facades/display.js.map +1 -0
- package/build/facades/displayMirror.d.ts +15 -0
- package/build/facades/displayMirror.d.ts.map +1 -0
- package/build/facades/displayMirror.js +29 -0
- package/build/facades/displayMirror.js.map +1 -0
- package/build/facades/gallery.d.ts +62 -0
- package/build/facades/gallery.d.ts.map +1 -0
- package/build/facades/gallery.js +61 -0
- package/build/facades/gallery.js.map +1 -0
- package/build/facades/glasses.d.ts +141 -0
- package/build/facades/glasses.d.ts.map +1 -0
- package/build/facades/glasses.js +199 -0
- package/build/facades/glasses.js.map +1 -0
- package/build/facades/glassesSettings.d.ts +13 -0
- package/build/facades/glassesSettings.d.ts.map +1 -0
- package/build/facades/glassesSettings.js +54 -0
- package/build/facades/glassesSettings.js.map +1 -0
- package/build/facades/glassesWifi.d.ts +25 -0
- package/build/facades/glassesWifi.d.ts.map +1 -0
- package/build/facades/glassesWifi.js +57 -0
- package/build/facades/glassesWifi.js.map +1 -0
- package/build/facades/miniapps.d.ts +43 -0
- package/build/facades/miniapps.d.ts.map +1 -0
- package/build/facades/miniapps.js +49 -0
- package/build/facades/miniapps.js.map +1 -0
- package/build/facades/notifications.d.ts +13 -0
- package/build/facades/notifications.d.ts.map +1 -0
- package/build/facades/notifications.js +12 -0
- package/build/facades/notifications.js.map +1 -0
- package/build/facades/ota.d.ts +103 -0
- package/build/facades/ota.d.ts.map +1 -0
- package/build/facades/ota.js +156 -0
- package/build/facades/ota.js.map +1 -0
- package/build/facades/pairing.d.ts +114 -0
- package/build/facades/pairing.d.ts.map +1 -0
- package/build/facades/pairing.js +275 -0
- package/build/facades/pairing.js.map +1 -0
- package/build/facades/permissions.d.ts +33 -0
- package/build/facades/permissions.d.ts.map +1 -0
- package/build/facades/permissions.js +155 -0
- package/build/facades/permissions.js.map +1 -0
- package/build/facades/phoneNotifications.d.ts +21 -0
- package/build/facades/phoneNotifications.d.ts.map +1 -0
- package/build/facades/phoneNotifications.js +51 -0
- package/build/facades/phoneNotifications.js.map +1 -0
- package/build/facades/reports.d.ts +36 -0
- package/build/facades/reports.d.ts.map +1 -0
- package/build/facades/reports.js +134 -0
- package/build/facades/reports.js.map +1 -0
- package/build/facades/session.d.ts +21 -0
- package/build/facades/session.d.ts.map +1 -0
- package/build/facades/session.js +52 -0
- package/build/facades/session.js.map +1 -0
- package/build/facades/settings.d.ts +37 -0
- package/build/facades/settings.d.ts.map +1 -0
- package/build/facades/settings.js +55 -0
- package/build/facades/settings.js.map +1 -0
- package/build/facades/speech.d.ts +30 -0
- package/build/facades/speech.d.ts.map +1 -0
- package/build/facades/speech.js +37 -0
- package/build/facades/speech.js.map +1 -0
- package/build/index.d.ts +43 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +45 -0
- package/build/index.js.map +1 -0
- package/build/internal.d.ts +67 -0
- package/build/internal.d.ts.map +1 -0
- package/build/internal.js +90 -0
- package/build/internal.js.map +1 -0
- package/build/runtime/bootstrap.d.ts +83 -0
- package/build/runtime/bootstrap.d.ts.map +1 -0
- package/build/runtime/bootstrap.js +56 -0
- package/build/runtime/bootstrap.js.map +1 -0
- package/build/runtime/config.d.ts +146 -0
- package/build/runtime/config.d.ts.map +1 -0
- package/build/runtime/config.js +18 -0
- package/build/runtime/config.js.map +1 -0
- package/build/runtime/streamConfig.d.ts +4 -0
- package/build/runtime/streamConfig.d.ts.map +1 -0
- package/build/runtime/streamConfig.js +38 -0
- package/build/runtime/streamConfig.js.map +1 -0
- package/build/services/AppRegistry.d.ts +269 -0
- package/build/services/AppRegistry.d.ts.map +1 -0
- package/build/services/AppRegistry.js +1079 -0
- package/build/services/AppRegistry.js.map +1 -0
- package/build/services/AudioCloudUplink.d.ts +9 -0
- package/build/services/AudioCloudUplink.d.ts.map +1 -0
- package/build/services/AudioCloudUplink.js +48 -0
- package/build/services/AudioCloudUplink.js.map +1 -0
- package/build/services/AudioPlaybackService.d.ts +175 -0
- package/build/services/AudioPlaybackService.d.ts.map +1 -0
- package/build/services/AudioPlaybackService.js +705 -0
- package/build/services/AudioPlaybackService.js.map +1 -0
- package/build/services/AutomaticReportResult.d.ts +20 -0
- package/build/services/AutomaticReportResult.d.ts.map +1 -0
- package/build/services/AutomaticReportResult.js +29 -0
- package/build/services/AutomaticReportResult.js.map +1 -0
- package/build/services/BlobStore.d.ts +91 -0
- package/build/services/BlobStore.d.ts.map +1 -0
- package/build/services/BlobStore.js +668 -0
- package/build/services/BlobStore.js.map +1 -0
- package/build/services/CaptionsTesterReportService.d.ts +4 -0
- package/build/services/CaptionsTesterReportService.d.ts.map +1 -0
- package/build/services/CaptionsTesterReportService.js +80 -0
- package/build/services/CaptionsTesterReportService.js.map +1 -0
- package/build/services/CloudAudioSubscriptionSync.d.ts +24 -0
- package/build/services/CloudAudioSubscriptionSync.d.ts.map +1 -0
- package/build/services/CloudAudioSubscriptionSync.js +39 -0
- package/build/services/CloudAudioSubscriptionSync.js.map +1 -0
- package/build/services/CloudClientService.d.ts +143 -0
- package/build/services/CloudClientService.d.ts.map +1 -0
- package/build/services/CloudClientService.js +644 -0
- package/build/services/CloudClientService.js.map +1 -0
- package/build/services/CloudTranscriptE2EMetrics.d.ts +4 -0
- package/build/services/CloudTranscriptE2EMetrics.d.ts.map +1 -0
- package/build/services/CloudTranscriptE2EMetrics.js +24 -0
- package/build/services/CloudTranscriptE2EMetrics.js.map +1 -0
- package/build/services/ConnectionCoordinator.d.ts +51 -0
- package/build/services/ConnectionCoordinator.d.ts.map +1 -0
- package/build/services/ConnectionCoordinator.js +34 -0
- package/build/services/ConnectionCoordinator.js.map +1 -0
- package/build/services/DevServerBridge.d.ts +63 -0
- package/build/services/DevServerBridge.d.ts.map +1 -0
- package/build/services/DevServerBridge.js +294 -0
- package/build/services/DevServerBridge.js.map +1 -0
- package/build/services/DeviceEventRouter.d.ts +3 -0
- package/build/services/DeviceEventRouter.d.ts.map +1 -0
- package/build/services/DeviceEventRouter.js +190 -0
- package/build/services/DeviceEventRouter.js.map +1 -0
- package/build/services/DeviceStoreHydration.d.ts +38 -0
- package/build/services/DeviceStoreHydration.d.ts.map +1 -0
- package/build/services/DeviceStoreHydration.js +124 -0
- package/build/services/DeviceStoreHydration.js.map +1 -0
- package/build/services/DisplayProcessor.d.ts +223 -0
- package/build/services/DisplayProcessor.d.ts.map +1 -0
- package/build/services/DisplayProcessor.js +552 -0
- package/build/services/DisplayProcessor.js.map +1 -0
- package/build/services/GlassesReadiness.d.ts +41 -0
- package/build/services/GlassesReadiness.d.ts.map +1 -0
- package/build/services/GlassesReadiness.js +82 -0
- package/build/services/GlassesReadiness.js.map +1 -0
- package/build/services/GlassesSettingsSync.d.ts +33 -0
- package/build/services/GlassesSettingsSync.d.ts.map +1 -0
- package/build/services/GlassesSettingsSync.js +121 -0
- package/build/services/GlassesSettingsSync.js.map +1 -0
- package/build/services/GlassesStatusProjection.d.ts +3 -0
- package/build/services/GlassesStatusProjection.d.ts.map +1 -0
- package/build/services/GlassesStatusProjection.js +65 -0
- package/build/services/GlassesStatusProjection.js.map +1 -0
- package/build/services/HeadingService.d.ts +27 -0
- package/build/services/HeadingService.d.ts.map +1 -0
- package/build/services/HeadingService.js +96 -0
- package/build/services/HeadingService.js.map +1 -0
- package/build/services/LocalDisplayManager.d.ts +139 -0
- package/build/services/LocalDisplayManager.d.ts.map +1 -0
- package/build/services/LocalDisplayManager.js +579 -0
- package/build/services/LocalDisplayManager.js.map +1 -0
- package/build/services/LocalMiniappRuntime.d.ts +439 -0
- package/build/services/LocalMiniappRuntime.d.ts.map +1 -0
- package/build/services/LocalMiniappRuntime.js +3695 -0
- package/build/services/LocalMiniappRuntime.js.map +1 -0
- package/build/services/LocalSttFallbackCoordinator.d.ts +57 -0
- package/build/services/LocalSttFallbackCoordinator.d.ts.map +1 -0
- package/build/services/LocalSttFallbackCoordinator.js +137 -0
- package/build/services/LocalSttFallbackCoordinator.js.map +1 -0
- package/build/services/MentraJSCrashController.d.ts +97 -0
- package/build/services/MentraJSCrashController.d.ts.map +1 -0
- package/build/services/MentraJSCrashController.js +138 -0
- package/build/services/MentraJSCrashController.js.map +1 -0
- package/build/services/MentraJSCrashloopReportService.d.ts +9 -0
- package/build/services/MentraJSCrashloopReportService.d.ts.map +1 -0
- package/build/services/MentraJSCrashloopReportService.js +54 -0
- package/build/services/MentraJSCrashloopReportService.js.map +1 -0
- package/build/services/MentraJSLogPipeline.d.ts +87 -0
- package/build/services/MentraJSLogPipeline.d.ts.map +1 -0
- package/build/services/MentraJSLogPipeline.js +137 -0
- package/build/services/MentraJSLogPipeline.js.map +1 -0
- package/build/services/MentraJSRouter.d.ts +203 -0
- package/build/services/MentraJSRouter.d.ts.map +1 -0
- package/build/services/MentraJSRouter.js +480 -0
- package/build/services/MentraJSRouter.js.map +1 -0
- package/build/services/MentraUIRouter.d.ts +137 -0
- package/build/services/MentraUIRouter.d.ts.map +1 -0
- package/build/services/MentraUIRouter.js +210 -0
- package/build/services/MentraUIRouter.js.map +1 -0
- package/build/services/MicStateCoordinator.d.ts +37 -0
- package/build/services/MicStateCoordinator.d.ts.map +1 -0
- package/build/services/MicStateCoordinator.js +81 -0
- package/build/services/MicStateCoordinator.js.map +1 -0
- package/build/services/MiniappEngine.d.ts +31 -0
- package/build/services/MiniappEngine.d.ts.map +1 -0
- package/build/services/MiniappEngine.js +119 -0
- package/build/services/MiniappEngine.js.map +1 -0
- package/build/services/MiniappLauncher.d.ts +129 -0
- package/build/services/MiniappLauncher.d.ts.map +1 -0
- package/build/services/MiniappLauncher.js +291 -0
- package/build/services/MiniappLauncher.js.map +1 -0
- package/build/services/MiniappRunningRegistry.d.ts +24 -0
- package/build/services/MiniappRunningRegistry.d.ts.map +1 -0
- package/build/services/MiniappRunningRegistry.js +52 -0
- package/build/services/MiniappRunningRegistry.js.map +1 -0
- package/build/services/NativeHttpResponse.d.ts +3 -0
- package/build/services/NativeHttpResponse.d.ts.map +1 -0
- package/build/services/NativeHttpResponse.js +6 -0
- package/build/services/NativeHttpResponse.js.map +1 -0
- package/build/services/NavigationHandlers.d.ts +90 -0
- package/build/services/NavigationHandlers.d.ts.map +1 -0
- package/build/services/NavigationHandlers.js +379 -0
- package/build/services/NavigationHandlers.js.map +1 -0
- package/build/services/NavigationService.d.ts +254 -0
- package/build/services/NavigationService.d.ts.map +1 -0
- package/build/services/NavigationService.js +553 -0
- package/build/services/NavigationService.js.map +1 -0
- package/build/services/NotificationsEmitter.d.ts +28 -0
- package/build/services/NotificationsEmitter.d.ts.map +1 -0
- package/build/services/NotificationsEmitter.js +22 -0
- package/build/services/NotificationsEmitter.js.map +1 -0
- package/build/services/OfflineSpeechModelService.d.ts +33 -0
- package/build/services/OfflineSpeechModelService.d.ts.map +1 -0
- package/build/services/OfflineSpeechModelService.js +136 -0
- package/build/services/OfflineSpeechModelService.js.map +1 -0
- package/build/services/OtaInstallCoordinator.d.ts +195 -0
- package/build/services/OtaInstallCoordinator.d.ts.map +1 -0
- package/build/services/OtaInstallCoordinator.js +1047 -0
- package/build/services/OtaInstallCoordinator.js.map +1 -0
- package/build/services/OtaService.d.ts +3 -0
- package/build/services/OtaService.d.ts.map +1 -0
- package/build/services/OtaService.js +65 -0
- package/build/services/OtaService.js.map +1 -0
- package/build/services/OtaUpdateCheckService.d.ts +65 -0
- package/build/services/OtaUpdateCheckService.d.ts.map +1 -0
- package/build/services/OtaUpdateCheckService.js +260 -0
- package/build/services/OtaUpdateCheckService.js.map +1 -0
- package/build/services/PairingIdentity.d.ts +80 -0
- package/build/services/PairingIdentity.d.ts.map +1 -0
- package/build/services/PairingIdentity.js +145 -0
- package/build/services/PairingIdentity.js.map +1 -0
- package/build/services/PhoneCalendarHelpers.d.ts +32 -0
- package/build/services/PhoneCalendarHelpers.d.ts.map +1 -0
- package/build/services/PhoneCalendarHelpers.js +157 -0
- package/build/services/PhoneCalendarHelpers.js.map +1 -0
- package/build/services/PhoneCalendarService.d.ts +5 -0
- package/build/services/PhoneCalendarService.d.ts.map +1 -0
- package/build/services/PhoneCalendarService.js +24 -0
- package/build/services/PhoneCalendarService.js.map +1 -0
- package/build/services/PhoneCameraFovCoordinator.d.ts +28 -0
- package/build/services/PhoneCameraFovCoordinator.d.ts.map +1 -0
- package/build/services/PhoneCameraFovCoordinator.js +180 -0
- package/build/services/PhoneCameraFovCoordinator.js.map +1 -0
- package/build/services/PhoneLocationService.d.ts +36 -0
- package/build/services/PhoneLocationService.d.ts.map +1 -0
- package/build/services/PhoneLocationService.js +115 -0
- package/build/services/PhoneLocationService.js.map +1 -0
- package/build/services/PhoneNotificationsSync.d.ts +3 -0
- package/build/services/PhoneNotificationsSync.d.ts.map +1 -0
- package/build/services/PhoneNotificationsSync.js +35 -0
- package/build/services/PhoneNotificationsSync.js.map +1 -0
- package/build/services/PhonePhotoCoordinator.d.ts +103 -0
- package/build/services/PhonePhotoCoordinator.d.ts.map +1 -0
- package/build/services/PhonePhotoCoordinator.js +326 -0
- package/build/services/PhonePhotoCoordinator.js.map +1 -0
- package/build/services/PhoneStreamCoordinator.d.ts +168 -0
- package/build/services/PhoneStreamCoordinator.d.ts.map +1 -0
- package/build/services/PhoneStreamCoordinator.js +632 -0
- package/build/services/PhoneStreamCoordinator.js.map +1 -0
- package/build/services/PhoneVideoCoordinator.d.ts +50 -0
- package/build/services/PhoneVideoCoordinator.d.ts.map +1 -0
- package/build/services/PhoneVideoCoordinator.js +147 -0
- package/build/services/PhoneVideoCoordinator.js.map +1 -0
- package/build/services/STTModelManager.d.ts +65 -0
- package/build/services/STTModelManager.d.ts.map +1 -0
- package/build/services/STTModelManager.js +292 -0
- package/build/services/STTModelManager.js.map +1 -0
- package/build/services/SceneRenderer.d.ts +90 -0
- package/build/services/SceneRenderer.d.ts.map +1 -0
- package/build/services/SceneRenderer.js +248 -0
- package/build/services/SceneRenderer.js.map +1 -0
- package/build/services/SentenceTtsPipeline.d.ts +31 -0
- package/build/services/SentenceTtsPipeline.d.ts.map +1 -0
- package/build/services/SentenceTtsPipeline.js +67 -0
- package/build/services/SentenceTtsPipeline.js.map +1 -0
- package/build/services/StreamLifecycleController.d.ts +67 -0
- package/build/services/StreamLifecycleController.d.ts.map +1 -0
- package/build/services/StreamLifecycleController.js +152 -0
- package/build/services/StreamLifecycleController.js.map +1 -0
- package/build/services/TTSModelManager.d.ts +90 -0
- package/build/services/TTSModelManager.d.ts.map +1 -0
- package/build/services/TTSModelManager.js +366 -0
- package/build/services/TTSModelManager.js.map +1 -0
- package/build/services/TranscriptionRouting.d.ts +12 -0
- package/build/services/TranscriptionRouting.d.ts.map +1 -0
- package/build/services/TranscriptionRouting.js +24 -0
- package/build/services/TranscriptionRouting.js.map +1 -0
- package/build/services/WebviewBridge.d.ts +22 -0
- package/build/services/WebviewBridge.d.ts.map +1 -0
- package/build/services/WebviewBridge.js +47 -0
- package/build/services/WebviewBridge.js.map +1 -0
- package/build/services/asg/GalleryMediaIntegrityReportService.d.ts +17 -0
- package/build/services/asg/GalleryMediaIntegrityReportService.d.ts.map +1 -0
- package/build/services/asg/GalleryMediaIntegrityReportService.js +43 -0
- package/build/services/asg/GalleryMediaIntegrityReportService.js.map +1 -0
- package/build/services/asg/asgCameraApi.d.ts +205 -0
- package/build/services/asg/asgCameraApi.d.ts.map +1 -0
- package/build/services/asg/asgCameraApi.js +1410 -0
- package/build/services/asg/asgCameraApi.js.map +1 -0
- package/build/services/asg/cameraRollExportCoordinator.d.ts +60 -0
- package/build/services/asg/cameraRollExportCoordinator.d.ts.map +1 -0
- package/build/services/asg/cameraRollExportCoordinator.js +618 -0
- package/build/services/asg/cameraRollExportCoordinator.js.map +1 -0
- package/build/services/asg/cameraRollExportLedger.d.ts +44 -0
- package/build/services/asg/cameraRollExportLedger.d.ts.map +1 -0
- package/build/services/asg/cameraRollExportLedger.js +78 -0
- package/build/services/asg/cameraRollExportLedger.js.map +1 -0
- package/build/services/asg/galleryMediaValidation.d.ts +29 -0
- package/build/services/asg/galleryMediaValidation.d.ts.map +1 -0
- package/build/services/asg/galleryMediaValidation.js +149 -0
- package/build/services/asg/galleryMediaValidation.js.map +1 -0
- package/build/services/asg/galleryNotices.d.ts +33 -0
- package/build/services/asg/galleryNotices.d.ts.map +1 -0
- package/build/services/asg/galleryNotices.js +29 -0
- package/build/services/asg/galleryNotices.js.map +1 -0
- package/build/services/asg/galleryPathMigration.d.ts +3 -0
- package/build/services/asg/galleryPathMigration.d.ts.map +1 -0
- package/build/services/asg/galleryPathMigration.js +26 -0
- package/build/services/asg/galleryPathMigration.js.map +1 -0
- package/build/services/asg/gallerySettingsService.d.ts +20 -0
- package/build/services/asg/gallerySettingsService.d.ts.map +1 -0
- package/build/services/asg/gallerySettingsService.js +53 -0
- package/build/services/asg/gallerySettingsService.js.map +1 -0
- package/build/services/asg/gallerySyncNotifications.d.ts +56 -0
- package/build/services/asg/gallerySyncNotifications.d.ts.map +1 -0
- package/build/services/asg/gallerySyncNotifications.js +198 -0
- package/build/services/asg/gallerySyncNotifications.js.map +1 -0
- package/build/services/asg/gallerySyncService.d.ts +137 -0
- package/build/services/asg/gallerySyncService.d.ts.map +1 -0
- package/build/services/asg/gallerySyncService.js +1933 -0
- package/build/services/asg/gallerySyncService.js.map +1 -0
- package/build/services/asg/galleryTransferLedger.d.ts +58 -0
- package/build/services/asg/galleryTransferLedger.d.ts.map +1 -0
- package/build/services/asg/galleryTransferLedger.js +225 -0
- package/build/services/asg/galleryTransferLedger.js.map +1 -0
- package/build/services/asg/localNetworkTransport.d.ts +15 -0
- package/build/services/asg/localNetworkTransport.d.ts.map +1 -0
- package/build/services/asg/localNetworkTransport.js +144 -0
- package/build/services/asg/localNetworkTransport.js.map +1 -0
- package/build/services/asg/localStorageService.d.ts +146 -0
- package/build/services/asg/localStorageService.d.ts.map +1 -0
- package/build/services/asg/localStorageService.js +572 -0
- package/build/services/asg/localStorageService.js.map +1 -0
- package/build/services/asg/mediaProcessingQueue.d.ts +70 -0
- package/build/services/asg/mediaProcessingQueue.d.ts.map +1 -0
- package/build/services/asg/mediaProcessingQueue.js +451 -0
- package/build/services/asg/mediaProcessingQueue.js.map +1 -0
- package/build/services/asgOtaVersionUrl.d.ts +2 -0
- package/build/services/asgOtaVersionUrl.d.ts.map +1 -0
- package/build/services/asgOtaVersionUrl.js +36 -0
- package/build/services/asgOtaVersionUrl.js.map +1 -0
- package/build/services/blobPaths.d.ts +31 -0
- package/build/services/blobPaths.d.ts.map +1 -0
- package/build/services/blobPaths.js +86 -0
- package/build/services/blobPaths.js.map +1 -0
- package/build/services/cloudStreamApi.d.ts +59 -0
- package/build/services/cloudStreamApi.d.ts.map +1 -0
- package/build/services/cloudStreamApi.js +81 -0
- package/build/services/cloudStreamApi.js.map +1 -0
- package/build/services/gallerySyncClock.d.ts +17 -0
- package/build/services/gallerySyncClock.d.ts.map +1 -0
- package/build/services/gallerySyncClock.js +21 -0
- package/build/services/gallerySyncClock.js.map +1 -0
- package/build/services/glassesClockSync.d.ts +20 -0
- package/build/services/glassesClockSync.d.ts.map +1 -0
- package/build/services/glassesClockSync.js +97 -0
- package/build/services/glassesClockSync.js.map +1 -0
- package/build/services/manifestVersionGate.d.ts +28 -0
- package/build/services/manifestVersionGate.d.ts.map +1 -0
- package/build/services/manifestVersionGate.js +41 -0
- package/build/services/manifestVersionGate.js.map +1 -0
- package/build/services/mentraUiShim.d.ts +38 -0
- package/build/services/mentraUiShim.d.ts.map +1 -0
- package/build/services/mentraUiShim.js +360 -0
- package/build/services/mentraUiShim.js.map +1 -0
- package/build/services/navigation/roadNameResolver.d.ts +67 -0
- package/build/services/navigation/roadNameResolver.d.ts.map +1 -0
- package/build/services/navigation/roadNameResolver.js +96 -0
- package/build/services/navigation/roadNameResolver.js.map +1 -0
- package/build/services/navigation/routesApiCodec.d.ts +38 -0
- package/build/services/navigation/routesApiCodec.d.ts.map +1 -0
- package/build/services/navigation/routesApiCodec.js +68 -0
- package/build/services/navigation/routesApiCodec.js.map +1 -0
- package/build/services/otaDisplayState.d.ts +42 -0
- package/build/services/otaDisplayState.d.ts.map +1 -0
- package/build/services/otaDisplayState.js +92 -0
- package/build/services/otaDisplayState.js.map +1 -0
- package/build/services/otaInstallPolicy.d.ts +81 -0
- package/build/services/otaInstallPolicy.d.ts.map +1 -0
- package/build/services/otaInstallPolicy.js +96 -0
- package/build/services/otaInstallPolicy.js.map +1 -0
- package/build/services/otaLegacyMapping.d.ts +22 -0
- package/build/services/otaLegacyMapping.d.ts.map +1 -0
- package/build/services/otaLegacyMapping.js +56 -0
- package/build/services/otaLegacyMapping.js.map +1 -0
- package/build/services/slimStreamStatus.d.ts +7 -0
- package/build/services/slimStreamStatus.d.ts.map +1 -0
- package/build/services/slimStreamStatus.js +26 -0
- package/build/services/slimStreamStatus.js.map +1 -0
- package/build/stores/apps.d.ts +104 -0
- package/build/stores/apps.d.ts.map +1 -0
- package/build/stores/apps.js +492 -0
- package/build/stores/apps.js.map +1 -0
- package/build/stores/bluetoothSettingKeys.d.ts +4 -0
- package/build/stores/bluetoothSettingKeys.d.ts.map +1 -0
- package/build/stores/bluetoothSettingKeys.js +31 -0
- package/build/stores/bluetoothSettingKeys.js.map +1 -0
- package/build/stores/cloudClientStatus.d.ts +9 -0
- package/build/stores/cloudClientStatus.d.ts.map +1 -0
- package/build/stores/cloudClientStatus.js +24 -0
- package/build/stores/cloudClientStatus.js.map +1 -0
- package/build/stores/connection.d.ts +22 -0
- package/build/stores/connection.d.ts.map +1 -0
- package/build/stores/connection.js +43 -0
- package/build/stores/connection.js.map +1 -0
- package/build/stores/core.d.ts +15 -0
- package/build/stores/core.d.ts.map +1 -0
- package/build/stores/core.js +21 -0
- package/build/stores/core.js.map +1 -0
- package/build/stores/display.d.ts +24 -0
- package/build/stores/display.d.ts.map +1 -0
- package/build/stores/display.js +96 -0
- package/build/stores/display.js.map +1 -0
- package/build/stores/gallerySync.d.ts +101 -0
- package/build/stores/gallerySync.d.ts.map +1 -0
- package/build/stores/gallerySync.js +217 -0
- package/build/stores/gallerySync.js.map +1 -0
- package/build/stores/glasses.d.ts +62 -0
- package/build/stores/glasses.d.ts.map +1 -0
- package/build/stores/glasses.js +203 -0
- package/build/stores/glasses.js.map +1 -0
- package/build/stores/settings.d.ts +37 -0
- package/build/stores/settings.d.ts.map +1 -0
- package/build/stores/settings.js +922 -0
- package/build/stores/settings.js.map +1 -0
- package/build/types/applet.d.ts +96 -0
- package/build/types/applet.d.ts.map +1 -0
- package/build/types/applet.js +5 -0
- package/build/types/applet.js.map +1 -0
- package/build/types/asg.d.ts +53 -0
- package/build/types/asg.d.ts.map +1 -0
- package/build/types/asg.js +2 -0
- package/build/types/asg.js.map +1 -0
- package/build/types/capabilities/even-realities-g1.d.ts +12 -0
- package/build/types/capabilities/even-realities-g1.d.ts.map +1 -0
- package/build/types/capabilities/even-realities-g1.js +55 -0
- package/build/types/capabilities/even-realities-g1.js.map +1 -0
- package/build/types/capabilities/even-realities-g2.d.ts +12 -0
- package/build/types/capabilities/even-realities-g2.d.ts.map +1 -0
- package/build/types/capabilities/even-realities-g2.js +75 -0
- package/build/types/capabilities/even-realities-g2.js.map +1 -0
- package/build/types/capabilities/mentra-display.d.ts +12 -0
- package/build/types/capabilities/mentra-display.d.ts.map +1 -0
- package/build/types/capabilities/mentra-display.js +63 -0
- package/build/types/capabilities/mentra-display.js.map +1 -0
- package/build/types/capabilities/mentra-live.d.ts +12 -0
- package/build/types/capabilities/mentra-live.d.ts.map +1 -0
- package/build/types/capabilities/mentra-live.js +92 -0
- package/build/types/capabilities/mentra-live.js.map +1 -0
- package/build/types/capabilities/none.d.ts +13 -0
- package/build/types/capabilities/none.d.ts.map +1 -0
- package/build/types/capabilities/none.js +65 -0
- package/build/types/capabilities/none.js.map +1 -0
- package/build/types/capabilities/simulated-glasses.d.ts +13 -0
- package/build/types/capabilities/simulated-glasses.d.ts.map +1 -0
- package/build/types/capabilities/simulated-glasses.js +65 -0
- package/build/types/capabilities/simulated-glasses.js.map +1 -0
- package/build/types/capabilities/vuzix-z100.d.ts +12 -0
- package/build/types/capabilities/vuzix-z100.d.ts.map +1 -0
- package/build/types/capabilities/vuzix-z100.js +52 -0
- package/build/types/capabilities/vuzix-z100.js.map +1 -0
- package/build/types/enums.d.ts +40 -0
- package/build/types/enums.d.ts.map +1 -0
- package/build/types/enums.js +44 -0
- package/build/types/enums.js.map +1 -0
- package/build/types/hardware.d.ts +160 -0
- package/build/types/hardware.d.ts.map +1 -0
- package/build/types/hardware.js +36 -0
- package/build/types/hardware.js.map +1 -0
- package/build/types/index.d.ts +11 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/index.js +10 -0
- package/build/types/index.js.map +1 -0
- package/build/utils/GlobalEventEmitter.d.ts +10 -0
- package/build/utils/GlobalEventEmitter.d.ts.map +1 -0
- package/build/utils/GlobalEventEmitter.js +13 -0
- package/build/utils/GlobalEventEmitter.js.map +1 -0
- package/build/utils/cloudClient/RnUdpAdapter.d.ts +3 -0
- package/build/utils/cloudClient/RnUdpAdapter.d.ts.map +1 -0
- package/build/utils/cloudClient/RnUdpAdapter.js +41 -0
- package/build/utils/cloudClient/RnUdpAdapter.js.map +1 -0
- package/build/utils/cloudClient/cloudSecureStore.d.ts +3 -0
- package/build/utils/cloudClient/cloudSecureStore.d.ts.map +1 -0
- package/build/utils/cloudClient/cloudSecureStore.js +26 -0
- package/build/utils/cloudClient/cloudSecureStore.js.map +1 -0
- package/build/utils/debouncedPatch.d.ts +6 -0
- package/build/utils/debouncedPatch.d.ts.map +1 -0
- package/build/utils/debouncedPatch.js +25 -0
- package/build/utils/debouncedPatch.js.map +1 -0
- package/build/utils/devLogging.d.ts +26 -0
- package/build/utils/devLogging.d.ts.map +1 -0
- package/build/utils/devLogging.js +116 -0
- package/build/utils/devLogging.js.map +1 -0
- package/build/utils/devMiniappLaunch.d.ts +44 -0
- package/build/utils/devMiniappLaunch.d.ts.map +1 -0
- package/build/utils/devMiniappLaunch.js +52 -0
- package/build/utils/devMiniappLaunch.js.map +1 -0
- package/build/utils/diagnosticContext.d.ts +3 -0
- package/build/utils/diagnosticContext.d.ts.map +1 -0
- package/build/utils/diagnosticContext.js +119 -0
- package/build/utils/diagnosticContext.js.map +1 -0
- package/build/utils/display/composer/ColumnComposer.d.ts +131 -0
- package/build/utils/display/composer/ColumnComposer.d.ts.map +1 -0
- package/build/utils/display/composer/ColumnComposer.js +204 -0
- package/build/utils/display/composer/ColumnComposer.js.map +1 -0
- package/build/utils/display/composer/index.d.ts +9 -0
- package/build/utils/display/composer/index.d.ts.map +1 -0
- package/build/utils/display/composer/index.js +9 -0
- package/build/utils/display/composer/index.js.map +1 -0
- package/build/utils/display/helpers/DisplayHelpers.d.ts +165 -0
- package/build/utils/display/helpers/DisplayHelpers.d.ts.map +1 -0
- package/build/utils/display/helpers/DisplayHelpers.js +312 -0
- package/build/utils/display/helpers/DisplayHelpers.js.map +1 -0
- package/build/utils/display/helpers/ScrollView.d.ts +183 -0
- package/build/utils/display/helpers/ScrollView.d.ts.map +1 -0
- package/build/utils/display/helpers/ScrollView.js +257 -0
- package/build/utils/display/helpers/ScrollView.js.map +1 -0
- package/build/utils/display/helpers/index.d.ts +11 -0
- package/build/utils/display/helpers/index.d.ts.map +1 -0
- package/build/utils/display/helpers/index.js +10 -0
- package/build/utils/display/helpers/index.js.map +1 -0
- package/build/utils/display/index.d.ts +174 -0
- package/build/utils/display/index.d.ts.map +1 -0
- package/build/utils/display/index.js +185 -0
- package/build/utils/display/index.js.map +1 -0
- package/build/utils/display/measurer/TextMeasurer.d.ts +160 -0
- package/build/utils/display/measurer/TextMeasurer.d.ts.map +1 -0
- package/build/utils/display/measurer/TextMeasurer.js +273 -0
- package/build/utils/display/measurer/TextMeasurer.js.map +1 -0
- package/build/utils/display/measurer/index.d.ts +10 -0
- package/build/utils/display/measurer/index.d.ts.map +1 -0
- package/build/utils/display/measurer/index.js +11 -0
- package/build/utils/display/measurer/index.js.map +1 -0
- package/build/utils/display/measurer/script-detection.d.ts +53 -0
- package/build/utils/display/measurer/script-detection.d.ts.map +1 -0
- package/build/utils/display/measurer/script-detection.js +184 -0
- package/build/utils/display/measurer/script-detection.js.map +1 -0
- package/build/utils/display/profiles/g1.d.ts +33 -0
- package/build/utils/display/profiles/g1.d.ts.map +1 -0
- package/build/utils/display/profiles/g1.js +213 -0
- package/build/utils/display/profiles/g1.js.map +1 -0
- package/build/utils/display/profiles/g2.d.ts +13 -0
- package/build/utils/display/profiles/g2.d.ts.map +1 -0
- package/build/utils/display/profiles/g2.js +34 -0
- package/build/utils/display/profiles/g2.js.map +1 -0
- package/build/utils/display/profiles/index.d.ts +12 -0
- package/build/utils/display/profiles/index.d.ts.map +1 -0
- package/build/utils/display/profiles/index.js +15 -0
- package/build/utils/display/profiles/index.js.map +1 -0
- package/build/utils/display/profiles/nex.d.ts +10 -0
- package/build/utils/display/profiles/nex.d.ts.map +1 -0
- package/build/utils/display/profiles/nex.js +150 -0
- package/build/utils/display/profiles/nex.js.map +1 -0
- package/build/utils/display/profiles/types.d.ts +103 -0
- package/build/utils/display/profiles/types.d.ts.map +1 -0
- package/build/utils/display/profiles/types.js +2 -0
- package/build/utils/display/profiles/types.js.map +1 -0
- package/build/utils/display/profiles/z100.d.ts +33 -0
- package/build/utils/display/profiles/z100.d.ts.map +1 -0
- package/build/utils/display/profiles/z100.js +182 -0
- package/build/utils/display/profiles/z100.js.map +1 -0
- package/build/utils/display/scene/degrade.d.ts +25 -0
- package/build/utils/display/scene/degrade.d.ts.map +1 -0
- package/build/utils/display/scene/degrade.js +64 -0
- package/build/utils/display/scene/degrade.js.map +1 -0
- package/build/utils/display/scene/differ.d.ts +38 -0
- package/build/utils/display/scene/differ.d.ts.map +1 -0
- package/build/utils/display/scene/differ.js +107 -0
- package/build/utils/display/scene/differ.js.map +1 -0
- package/build/utils/display/scene/index.d.ts +10 -0
- package/build/utils/display/scene/index.d.ts.map +1 -0
- package/build/utils/display/scene/index.js +6 -0
- package/build/utils/display/scene/index.js.map +1 -0
- package/build/utils/display/scene/process.d.ts +35 -0
- package/build/utils/display/scene/process.d.ts.map +1 -0
- package/build/utils/display/scene/process.js +187 -0
- package/build/utils/display/scene/process.js.map +1 -0
- package/build/utils/display/scene/store.d.ts +48 -0
- package/build/utils/display/scene/store.d.ts.map +1 -0
- package/build/utils/display/scene/store.js +0 -0
- package/build/utils/display/scene/store.js.map +1 -0
- package/build/utils/display/scene/types.d.ts +120 -0
- package/build/utils/display/scene/types.d.ts.map +1 -0
- package/build/utils/display/scene/types.js +0 -0
- package/build/utils/display/scene/types.js.map +1 -0
- package/build/utils/display/wrapper/TextWrapper.d.ts +102 -0
- package/build/utils/display/wrapper/TextWrapper.d.ts.map +1 -0
- package/build/utils/display/wrapper/TextWrapper.js +471 -0
- package/build/utils/display/wrapper/TextWrapper.js.map +1 -0
- package/build/utils/display/wrapper/index.d.ts +12 -0
- package/build/utils/display/wrapper/index.d.ts.map +1 -0
- package/build/utils/display/wrapper/index.js +12 -0
- package/build/utils/display/wrapper/index.js.map +1 -0
- package/build/utils/display/wrapper/types.d.ts +75 -0
- package/build/utils/display/wrapper/types.d.ts.map +1 -0
- package/build/utils/display/wrapper/types.js +11 -0
- package/build/utils/display/wrapper/types.js.map +1 -0
- package/build/utils/e2eMetrics.d.ts +6 -0
- package/build/utils/e2eMetrics.d.ts.map +1 -0
- package/build/utils/e2eMetrics.js +27 -0
- package/build/utils/e2eMetrics.js.map +1 -0
- package/build/utils/hardware/hardware.d.ts +42 -0
- package/build/utils/hardware/hardware.d.ts.map +1 -0
- package/build/utils/hardware/hardware.js +127 -0
- package/build/utils/hardware/hardware.js.map +1 -0
- package/build/utils/hardware/index.d.ts +2 -0
- package/build/utils/hardware/index.d.ts.map +1 -0
- package/build/utils/hardware/index.js +2 -0
- package/build/utils/hardware/index.js.map +1 -0
- package/build/utils/miniappGlobals.d.ts +60 -0
- package/build/utils/miniappGlobals.d.ts.map +1 -0
- package/build/utils/miniappGlobals.js +224 -0
- package/build/utils/miniappGlobals.js.map +1 -0
- package/build/utils/permissions/MediaLibraryPermissions.d.ts +45 -0
- package/build/utils/permissions/MediaLibraryPermissions.d.ts.map +1 -0
- package/build/utils/permissions/MediaLibraryPermissions.js +145 -0
- package/build/utils/permissions/MediaLibraryPermissions.js.map +1 -0
- package/build/utils/permissions/galleryDisplayName.d.ts +8 -0
- package/build/utils/permissions/galleryDisplayName.d.ts.map +1 -0
- package/build/utils/permissions/galleryDisplayName.js +25 -0
- package/build/utils/permissions/galleryDisplayName.js.map +1 -0
- package/build/utils/storage/index.d.ts +3 -0
- package/build/utils/storage/index.d.ts.map +1 -0
- package/build/utils/storage/index.js +3 -0
- package/build/utils/storage/index.js.map +1 -0
- package/build/utils/storage/storage.d.ts +24 -0
- package/build/utils/storage/storage.d.ts.map +1 -0
- package/build/utils/storage/storage.js +85 -0
- package/build/utils/storage/storage.js.map +1 -0
- package/build/utils/storage/zip.d.ts +3 -0
- package/build/utils/storage/zip.d.ts.map +1 -0
- package/build/utils/storage/zip.js +14 -0
- package/build/utils/storage/zip.js.map +1 -0
- package/build/utils/timers/index.d.ts +3 -0
- package/build/utils/timers/index.d.ts.map +1 -0
- package/build/utils/timers/index.js +3 -0
- package/build/utils/timers/index.js.map +1 -0
- package/build/utils/timers/timers.d.ts +9 -0
- package/build/utils/timers/timers.d.ts.map +1 -0
- package/build/utils/timers/timers.js +105 -0
- package/build/utils/timers/timers.js.map +1 -0
- package/package.json +120 -0
- package/src/devtools.ts +13 -0
- package/src/engine.ts +173 -0
- package/src/facades/dev.ts +198 -0
- package/src/facades/display.ts +17 -0
- package/src/facades/displayMirror.ts +33 -0
- package/src/facades/gallery.ts +69 -0
- package/src/facades/glasses.ts +206 -0
- package/src/facades/glassesSettings.ts +56 -0
- package/src/facades/glassesWifi.ts +68 -0
- package/src/facades/miniapps.ts +55 -0
- package/src/facades/notifications.ts +15 -0
- package/src/facades/ota.ts +174 -0
- package/src/facades/pairing.ts +329 -0
- package/src/facades/permissions.ts +165 -0
- package/src/facades/phoneNotifications.ts +50 -0
- package/src/facades/reports.ts +185 -0
- package/src/facades/session.ts +55 -0
- package/src/facades/settings.ts +57 -0
- package/src/facades/speech.ts +38 -0
- package/src/index.ts +191 -0
- package/src/internal.ts +159 -0
- package/src/runtime/bootstrap.ts +118 -0
- package/src/runtime/config.ts +147 -0
- package/src/runtime/streamConfig.ts +34 -0
- package/src/services/AppRegistry.ts +1190 -0
- package/src/services/AudioCloudUplink.ts +50 -0
- package/src/services/AudioPlaybackService.ts +813 -0
- package/src/services/AutomaticReportResult.ts +48 -0
- package/src/services/BlobStore.ts +746 -0
- package/src/services/CaptionsTesterReportService.ts +107 -0
- package/src/services/CloudAudioSubscriptionSync.ts +41 -0
- package/src/services/CloudClientService.ts +689 -0
- package/src/services/CloudTranscriptE2EMetrics.ts +27 -0
- package/src/services/ConnectionCoordinator.ts +65 -0
- package/src/services/DevServerBridge.ts +332 -0
- package/src/services/DeviceEventRouter.ts +238 -0
- package/src/services/DeviceStoreHydration.ts +130 -0
- package/src/services/DisplayProcessor.ts +775 -0
- package/src/services/GlassesReadiness.ts +103 -0
- package/src/services/GlassesSettingsSync.ts +134 -0
- package/src/services/GlassesStatusProjection.ts +73 -0
- package/src/services/HeadingService.ts +98 -0
- package/src/services/LocalDisplayManager.ts +703 -0
- package/src/services/LocalMiniappRuntime.ts +4213 -0
- package/src/services/LocalSttFallbackCoordinator.ts +147 -0
- package/src/services/MentraJSCrashController.ts +189 -0
- package/src/services/MentraJSCrashloopReportService.ts +66 -0
- package/src/services/MentraJSLogPipeline.ts +166 -0
- package/src/services/MentraJSRouter.ts +557 -0
- package/src/services/MentraUIRouter.ts +244 -0
- package/src/services/MicStateCoordinator.ts +94 -0
- package/src/services/MiniappEngine.ts +143 -0
- package/src/services/MiniappLauncher.ts +340 -0
- package/src/services/MiniappRunningRegistry.ts +57 -0
- package/src/services/NativeHttpResponse.ts +6 -0
- package/src/services/NavigationHandlers.ts +423 -0
- package/src/services/NavigationService.ts +731 -0
- package/src/services/NotificationsEmitter.ts +48 -0
- package/src/services/OfflineSpeechModelService.ts +168 -0
- package/src/services/OtaInstallCoordinator.ts +1205 -0
- package/src/services/OtaService.ts +83 -0
- package/src/services/OtaUpdateCheckService.ts +386 -0
- package/src/services/PairingIdentity.ts +154 -0
- package/src/services/PhoneCalendarHelpers.ts +212 -0
- package/src/services/PhoneCalendarService.ts +42 -0
- package/src/services/PhoneCameraFovCoordinator.ts +195 -0
- package/src/services/PhoneLocationService.ts +122 -0
- package/src/services/PhoneNotificationsSync.ts +44 -0
- package/src/services/PhonePhotoCoordinator.ts +409 -0
- package/src/services/PhoneStreamCoordinator.ts +777 -0
- package/src/services/PhoneVideoCoordinator.ts +189 -0
- package/src/services/STTModelManager.ts +360 -0
- package/src/services/SceneRenderer.ts +292 -0
- package/src/services/SentenceTtsPipeline.ts +106 -0
- package/src/services/StreamLifecycleController.ts +213 -0
- package/src/services/TTSModelManager.ts +466 -0
- package/src/services/TranscriptionRouting.ts +37 -0
- package/src/services/WebviewBridge.ts +50 -0
- package/src/services/asg/GalleryMediaIntegrityReportService.ts +70 -0
- package/src/services/asg/asgCameraApi.ts +1695 -0
- package/src/services/asg/cameraRollExportCoordinator.ts +627 -0
- package/src/services/asg/cameraRollExportLedger.ts +122 -0
- package/src/services/asg/galleryMediaValidation.ts +183 -0
- package/src/services/asg/galleryNotices.ts +61 -0
- package/src/services/asg/galleryPathMigration.ts +22 -0
- package/src/services/asg/gallerySettingsService.ts +68 -0
- package/src/services/asg/gallerySyncNotifications.ts +236 -0
- package/src/services/asg/gallerySyncService.ts +2269 -0
- package/src/services/asg/galleryTransferLedger.ts +312 -0
- package/src/services/asg/localNetworkTransport.ts +173 -0
- package/src/services/asg/localStorageService.ts +652 -0
- package/src/services/asg/mediaProcessingQueue.ts +518 -0
- package/src/services/asgOtaVersionUrl.ts +41 -0
- package/src/services/blobPaths.ts +86 -0
- package/src/services/cloudStreamApi.ts +154 -0
- package/src/services/gallerySyncClock.ts +39 -0
- package/src/services/glassesClockSync.ts +115 -0
- package/src/services/manifestVersionGate.ts +43 -0
- package/src/services/mentraUiShim.ts +366 -0
- package/src/services/navigation/roadNameResolver.ts +112 -0
- package/src/services/navigation/routesApiCodec.ts +69 -0
- package/src/services/otaDisplayState.ts +115 -0
- package/src/services/otaInstallPolicy.ts +106 -0
- package/src/services/otaLegacyMapping.ts +71 -0
- package/src/services/slimStreamStatus.ts +28 -0
- package/src/stores/apps.ts +614 -0
- package/src/stores/bluetoothSettingKeys.ts +36 -0
- package/src/stores/cloudClientStatus.ts +37 -0
- package/src/stores/connection.ts +69 -0
- package/src/stores/core.ts +32 -0
- package/src/stores/display.ts +121 -0
- package/src/stores/gallerySync.ts +380 -0
- package/src/stores/glasses.ts +309 -0
- package/src/stores/settings.ts +1001 -0
- package/src/types/applet.ts +112 -0
- package/src/types/asg.ts +58 -0
- package/src/types/capabilities/even-realities-g1.ts +67 -0
- package/src/types/capabilities/even-realities-g2.ts +88 -0
- package/src/types/capabilities/mentra-display.ts +75 -0
- package/src/types/capabilities/mentra-live.ts +103 -0
- package/src/types/capabilities/none.ts +76 -0
- package/src/types/capabilities/simulated-glasses.ts +76 -0
- package/src/types/capabilities/vuzix-z100.ts +64 -0
- package/src/types/enums.ts +43 -0
- package/src/types/hardware.ts +203 -0
- package/src/types/index.ts +37 -0
- package/src/utils/GlobalEventEmitter.ts +14 -0
- package/src/utils/cloudClient/RnUdpAdapter.ts +47 -0
- package/src/utils/cloudClient/cloudSecureStore.ts +28 -0
- package/src/utils/debouncedPatch.ts +28 -0
- package/src/utils/devLogging.ts +140 -0
- package/src/utils/devMiniappLaunch.ts +68 -0
- package/src/utils/diagnosticContext.ts +155 -0
- package/src/utils/display/composer/ColumnComposer.ts +285 -0
- package/src/utils/display/composer/index.ts +15 -0
- package/src/utils/display/helpers/DisplayHelpers.ts +413 -0
- package/src/utils/display/helpers/ScrollView.ts +337 -0
- package/src/utils/display/helpers/index.ts +14 -0
- package/src/utils/display/index.ts +273 -0
- package/src/utils/display/measurer/TextMeasurer.ts +346 -0
- package/src/utils/display/measurer/index.ts +21 -0
- package/src/utils/display/measurer/script-detection.ts +218 -0
- package/src/utils/display/profiles/g1.ts +236 -0
- package/src/utils/display/profiles/g2.ts +39 -0
- package/src/utils/display/profiles/index.ts +28 -0
- package/src/utils/display/profiles/nex.ts +166 -0
- package/src/utils/display/profiles/types.ts +132 -0
- package/src/utils/display/profiles/z100.ts +198 -0
- package/src/utils/display/scene/degrade.ts +80 -0
- package/src/utils/display/scene/differ.ts +128 -0
- package/src/utils/display/scene/index.ts +21 -0
- package/src/utils/display/scene/process.ts +214 -0
- package/src/utils/display/scene/store.ts +0 -0
- package/src/utils/display/scene/types.ts +0 -0
- package/src/utils/display/wrapper/TextWrapper.ts +546 -0
- package/src/utils/display/wrapper/index.ts +15 -0
- package/src/utils/display/wrapper/types.ts +102 -0
- package/src/utils/e2eMetrics.ts +30 -0
- package/src/utils/hardware/hardware.ts +166 -0
- package/src/utils/hardware/index.ts +1 -0
- package/src/utils/miniappGlobals.ts +260 -0
- package/src/utils/permissions/MediaLibraryPermissions.ts +161 -0
- package/src/utils/permissions/galleryDisplayName.ts +28 -0
- package/src/utils/storage/index.ts +2 -0
- package/src/utils/storage/storage.ts +101 -0
- package/src/utils/storage/zip.ts +13 -0
- package/src/utils/timers/index.ts +2 -0
- package/src/utils/timers/timers.ts +139 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ReportAttachmentInput, ReportContext, ReportStatus, SubmitReportInput } from "@mentra/cloud-client";
|
|
2
|
+
export type { ReportAttachmentInput, ReportContext, ReportDetails, ReportStatus, ReportTrigger, } from "@mentra/cloud-client";
|
|
3
|
+
export type EngineSubmitReportInput = (Omit<Extract<SubmitReportInput, {
|
|
4
|
+
kind: "bug";
|
|
5
|
+
}>, "context"> & {
|
|
6
|
+
context?: Partial<ReportContext>;
|
|
7
|
+
screenshots?: ReportAttachmentInput[];
|
|
8
|
+
}) | (Omit<Extract<SubmitReportInput, {
|
|
9
|
+
kind: "feedback";
|
|
10
|
+
}>, "context"> & {
|
|
11
|
+
context?: Partial<ReportContext>;
|
|
12
|
+
});
|
|
13
|
+
export type EngineSubmitAutomaticReportInput = Omit<Extract<SubmitReportInput, {
|
|
14
|
+
kind: "automatic";
|
|
15
|
+
}>, "context"> & {
|
|
16
|
+
context?: Partial<ReportContext>;
|
|
17
|
+
screenshots?: ReportAttachmentInput[];
|
|
18
|
+
throttleKey?: string;
|
|
19
|
+
throttleWindowMs?: number;
|
|
20
|
+
};
|
|
21
|
+
export type ReportSubmitResult = {
|
|
22
|
+
status: "submitted";
|
|
23
|
+
reportId: string;
|
|
24
|
+
reportStatus: ReportStatus;
|
|
25
|
+
} | {
|
|
26
|
+
status: "skipped";
|
|
27
|
+
reason: "throttled_within_window";
|
|
28
|
+
} | {
|
|
29
|
+
status: "failed";
|
|
30
|
+
error: string;
|
|
31
|
+
};
|
|
32
|
+
export declare const reports: {
|
|
33
|
+
submit(input: EngineSubmitReportInput): Promise<ReportSubmitResult>;
|
|
34
|
+
};
|
|
35
|
+
export declare function submitAutomaticReport(input: EngineSubmitAutomaticReportInput): Promise<ReportSubmitResult>;
|
|
36
|
+
//# sourceMappingURL=reports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../src/facades/reports.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,iBAAiB,EAClB,MAAM,sBAAsB,CAAA;AAO7B,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,sBAAsB,CAAA;AAE7B,MAAM,MAAM,uBAAuB,GAC/B,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;IAAC,IAAI,EAAE,KAAK,CAAA;CAAC,CAAC,EAAE,SAAS,CAAC,GAAG;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAChC,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAA;CACtC,CAAC,GACF,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;IAAC,IAAI,EAAE,UAAU,CAAA;CAAC,CAAC,EAAE,SAAS,CAAC,GAAG;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;CACjC,CAAC,CAAA;AAEN,MAAM,MAAM,gCAAgC,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;IAAC,IAAI,EAAE,WAAW,CAAA;CAAC,CAAC,EAAE,SAAS,CAAC,GAAG;IAChH,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAChC,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAA;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,CAAA;AAID,MAAM,MAAM,kBAAkB,GAC1B;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,YAAY,CAAA;CAAC,GACnE;IAAC,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,yBAAyB,CAAA;CAAC,GACtD;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAA;AA8HrC,eAAO,MAAM,OAAO;kBACJ,uBAAuB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAGpE,CAAA;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,gCAAgC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAE1G"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* reports facade — `engine.reports`: user/system report submission over the
|
|
3
|
+
* Cloud V2 core client.
|
|
4
|
+
*
|
|
5
|
+
* Host/OEM code owns UI and wording. Engine owns MentraOS mechanics: context
|
|
6
|
+
* collection, recent phone logs, Cloud V2 calls, local automatic throttling,
|
|
7
|
+
* screenshots, and notifying connected glasses.
|
|
8
|
+
*/
|
|
9
|
+
import BluetoothSdk from "@mentra/bluetooth-sdk/internal";
|
|
10
|
+
import { useGlassesStore } from "../stores/glasses";
|
|
11
|
+
import { isGlassesConnected } from "../services/GlassesReadiness";
|
|
12
|
+
import { cloudClientService } from "../services/CloudClientService";
|
|
13
|
+
import { collectDiagnosticContext } from "../utils/diagnosticContext";
|
|
14
|
+
import { logBuffer } from "../utils/devLogging";
|
|
15
|
+
const DEFAULT_AUTOMATIC_REPORT_THROTTLE_MS = 90_000;
|
|
16
|
+
const automaticReportThrottleRegistry = new Map();
|
|
17
|
+
function automaticThrottleShouldSkip(key, nowMs, windowMs) {
|
|
18
|
+
const previous = automaticReportThrottleRegistry.get(key);
|
|
19
|
+
if (previous !== undefined && nowMs - previous < windowMs) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
pruneAutomaticThrottleRegistry(nowMs, windowMs);
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
function markAutomaticThrottleSuccess(key, nowMs, windowMs) {
|
|
26
|
+
automaticReportThrottleRegistry.set(key, nowMs);
|
|
27
|
+
pruneAutomaticThrottleRegistry(nowMs, windowMs);
|
|
28
|
+
}
|
|
29
|
+
function pruneAutomaticThrottleRegistry(nowMs, windowMs) {
|
|
30
|
+
for (const [entryKey, entryTime] of automaticReportThrottleRegistry) {
|
|
31
|
+
if (nowMs - entryTime > windowMs * 3) {
|
|
32
|
+
automaticReportThrottleRegistry.delete(entryKey);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function notifyGlasses(reportId, apiBaseUrl) {
|
|
37
|
+
if (!isGlassesConnected(useGlassesStore.getState().connection))
|
|
38
|
+
return;
|
|
39
|
+
void (async () => {
|
|
40
|
+
try {
|
|
41
|
+
await cloudClientService.syncCoreTokenToBluetooth();
|
|
42
|
+
await BluetoothSdk.sendIncidentId(reportId, apiBaseUrl ?? cloudClientService.getCoreUrl());
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.warn("reports.submit: notify glasses failed:", error instanceof Error ? error.message : error);
|
|
46
|
+
}
|
|
47
|
+
})();
|
|
48
|
+
}
|
|
49
|
+
async function submitReportInternal(input) {
|
|
50
|
+
const throttle = input.kind === "automatic" && input.throttleKey
|
|
51
|
+
? {
|
|
52
|
+
key: input.throttleKey,
|
|
53
|
+
windowMs: input.throttleWindowMs ?? DEFAULT_AUTOMATIC_REPORT_THROTTLE_MS,
|
|
54
|
+
}
|
|
55
|
+
: null;
|
|
56
|
+
if (input.kind === "automatic" && input.throttleKey) {
|
|
57
|
+
const shouldSkip = automaticThrottleShouldSkip(input.throttleKey, Date.now(), throttle?.windowMs ?? DEFAULT_AUTOMATIC_REPORT_THROTTLE_MS);
|
|
58
|
+
if (shouldSkip)
|
|
59
|
+
return { status: "skipped", reason: "throttled_within_window" };
|
|
60
|
+
}
|
|
61
|
+
const context = await collectDiagnosticContext(input.context);
|
|
62
|
+
let reportId;
|
|
63
|
+
let reportStatus;
|
|
64
|
+
let artifactsComplete = true;
|
|
65
|
+
try {
|
|
66
|
+
const res = input.kind === "feedback"
|
|
67
|
+
? await cloudClientService.core.reports.submit({
|
|
68
|
+
kind: "feedback",
|
|
69
|
+
feedback: input.feedback,
|
|
70
|
+
context,
|
|
71
|
+
})
|
|
72
|
+
: input.kind === "bug"
|
|
73
|
+
? await cloudClientService.core.reports.submit({
|
|
74
|
+
kind: "bug",
|
|
75
|
+
trigger: input.trigger,
|
|
76
|
+
report: input.report,
|
|
77
|
+
context,
|
|
78
|
+
})
|
|
79
|
+
: await cloudClientService.core.reports.submit({
|
|
80
|
+
kind: "automatic",
|
|
81
|
+
trigger: input.trigger,
|
|
82
|
+
report: input.report,
|
|
83
|
+
context,
|
|
84
|
+
});
|
|
85
|
+
reportId = res.reportId;
|
|
86
|
+
reportStatus = res.status;
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
return { status: "failed", error: error instanceof Error ? error.message : String(error) };
|
|
90
|
+
}
|
|
91
|
+
if (input.kind !== "feedback") {
|
|
92
|
+
const logs = logBuffer.getRecentLogs();
|
|
93
|
+
if (logs.length > 0) {
|
|
94
|
+
try {
|
|
95
|
+
await cloudClientService.core.reports.addLogs(reportId, "phone", logs);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
artifactsComplete = false;
|
|
99
|
+
console.warn("reports.submit: add phone logs failed:", error instanceof Error ? error.message : error);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
notifyGlasses(reportId, cloudClientService.getCoreUrl());
|
|
103
|
+
if (input.screenshots && input.screenshots.length > 0) {
|
|
104
|
+
try {
|
|
105
|
+
await cloudClientService.core.reports.addScreenshots(reportId, input.screenshots);
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
artifactsComplete = false;
|
|
109
|
+
console.warn("reports.submit: add screenshots failed:", error instanceof Error ? error.message : error);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
const completed = await cloudClientService.core.reports.complete(reportId);
|
|
114
|
+
reportStatus = completed.status;
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
artifactsComplete = false;
|
|
118
|
+
console.warn("reports.submit: complete report failed:", error instanceof Error ? error.message : error);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (throttle && artifactsComplete) {
|
|
122
|
+
markAutomaticThrottleSuccess(throttle.key, Date.now(), throttle.windowMs);
|
|
123
|
+
}
|
|
124
|
+
return { status: "submitted", reportId, reportStatus };
|
|
125
|
+
}
|
|
126
|
+
export const reports = {
|
|
127
|
+
submit(input) {
|
|
128
|
+
return submitReportInternal(input);
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
export function submitAutomaticReport(input) {
|
|
132
|
+
return submitReportInternal(input);
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=reports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/facades/reports.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * reports facade — `engine.reports`: user/system report submission over the\n * Cloud V2 core client.\n *\n * Host/OEM code owns UI and wording. Engine owns MentraOS mechanics: context\n * collection, recent phone logs, Cloud V2 calls, local automatic throttling,\n * screenshots, and notifying connected glasses.\n */\nimport BluetoothSdk from \"@mentra/bluetooth-sdk/internal\"\nimport type {\n ReportAttachmentInput,\n ReportContext,\n ReportStatus,\n SubmitReportInput,\n} from \"@mentra/cloud-client\"\nimport {useGlassesStore} from \"../stores/glasses\"\nimport {isGlassesConnected} from \"../services/GlassesReadiness\"\nimport {cloudClientService} from \"../services/CloudClientService\"\nimport {collectDiagnosticContext} from \"../utils/diagnosticContext\"\nimport {logBuffer} from \"../utils/devLogging\"\n\nexport type {\n ReportAttachmentInput,\n ReportContext,\n ReportDetails,\n ReportStatus,\n ReportTrigger,\n} from \"@mentra/cloud-client\"\n\nexport type EngineSubmitReportInput =\n | (Omit<Extract<SubmitReportInput, {kind: \"bug\"}>, \"context\"> & {\n context?: Partial<ReportContext>\n screenshots?: ReportAttachmentInput[]\n })\n | (Omit<Extract<SubmitReportInput, {kind: \"feedback\"}>, \"context\"> & {\n context?: Partial<ReportContext>\n })\n\nexport type EngineSubmitAutomaticReportInput = Omit<Extract<SubmitReportInput, {kind: \"automatic\"}>, \"context\"> & {\n context?: Partial<ReportContext>\n screenshots?: ReportAttachmentInput[]\n throttleKey?: string\n throttleWindowMs?: number\n}\n\ntype InternalSubmitReportInput = EngineSubmitReportInput | EngineSubmitAutomaticReportInput\n\nexport type ReportSubmitResult =\n | {status: \"submitted\"; reportId: string; reportStatus: ReportStatus}\n | {status: \"skipped\"; reason: \"throttled_within_window\"}\n | {status: \"failed\"; error: string}\n\nconst DEFAULT_AUTOMATIC_REPORT_THROTTLE_MS = 90_000\nconst automaticReportThrottleRegistry = new Map<string, number>()\n\nfunction automaticThrottleShouldSkip(key: string, nowMs: number, windowMs: number): boolean {\n const previous = automaticReportThrottleRegistry.get(key)\n if (previous !== undefined && nowMs - previous < windowMs) {\n return true\n }\n pruneAutomaticThrottleRegistry(nowMs, windowMs)\n return false\n}\n\nfunction markAutomaticThrottleSuccess(key: string, nowMs: number, windowMs: number): void {\n automaticReportThrottleRegistry.set(key, nowMs)\n pruneAutomaticThrottleRegistry(nowMs, windowMs)\n}\n\nfunction pruneAutomaticThrottleRegistry(nowMs: number, windowMs: number): void {\n for (const [entryKey, entryTime] of automaticReportThrottleRegistry) {\n if (nowMs - entryTime > windowMs * 3) {\n automaticReportThrottleRegistry.delete(entryKey)\n }\n }\n}\n\nfunction notifyGlasses(reportId: string, apiBaseUrl?: string | null): void {\n if (!isGlassesConnected(useGlassesStore.getState().connection)) return\n void (async () => {\n try {\n await cloudClientService.syncCoreTokenToBluetooth()\n await BluetoothSdk.sendIncidentId(reportId, apiBaseUrl ?? cloudClientService.getCoreUrl())\n } catch (error) {\n console.warn(\"reports.submit: notify glasses failed:\", error instanceof Error ? error.message : error)\n }\n })()\n}\n\nasync function submitReportInternal(input: InternalSubmitReportInput): Promise<ReportSubmitResult> {\n const throttle =\n input.kind === \"automatic\" && input.throttleKey\n ? {\n key: input.throttleKey,\n windowMs: input.throttleWindowMs ?? DEFAULT_AUTOMATIC_REPORT_THROTTLE_MS,\n }\n : null\n\n if (input.kind === \"automatic\" && input.throttleKey) {\n const shouldSkip = automaticThrottleShouldSkip(\n input.throttleKey,\n Date.now(),\n throttle?.windowMs ?? DEFAULT_AUTOMATIC_REPORT_THROTTLE_MS,\n )\n if (shouldSkip) return {status: \"skipped\", reason: \"throttled_within_window\"}\n }\n\n const context = await collectDiagnosticContext(input.context)\n let reportId: string\n let reportStatus: ReportStatus\n let artifactsComplete = true\n try {\n const res =\n input.kind === \"feedback\"\n ? await cloudClientService.core.reports.submit({\n kind: \"feedback\",\n feedback: input.feedback,\n context,\n })\n : input.kind === \"bug\"\n ? await cloudClientService.core.reports.submit({\n kind: \"bug\",\n trigger: input.trigger,\n report: input.report,\n context,\n })\n : await cloudClientService.core.reports.submit({\n kind: \"automatic\",\n trigger: input.trigger,\n report: input.report,\n context,\n })\n reportId = res.reportId\n reportStatus = res.status\n } catch (error) {\n return {status: \"failed\", error: error instanceof Error ? error.message : String(error)}\n }\n\n if (input.kind !== \"feedback\") {\n const logs = logBuffer.getRecentLogs()\n if (logs.length > 0) {\n try {\n await cloudClientService.core.reports.addLogs(reportId, \"phone\", logs)\n } catch (error) {\n artifactsComplete = false\n console.warn(\"reports.submit: add phone logs failed:\", error instanceof Error ? error.message : error)\n }\n }\n\n notifyGlasses(reportId, cloudClientService.getCoreUrl())\n\n if (input.screenshots && input.screenshots.length > 0) {\n try {\n await cloudClientService.core.reports.addScreenshots(reportId, input.screenshots)\n } catch (error) {\n artifactsComplete = false\n console.warn(\"reports.submit: add screenshots failed:\", error instanceof Error ? error.message : error)\n }\n }\n\n try {\n const completed = await cloudClientService.core.reports.complete(reportId)\n reportStatus = completed.status\n } catch (error) {\n artifactsComplete = false\n console.warn(\"reports.submit: complete report failed:\", error instanceof Error ? error.message : error)\n }\n }\n\n if (throttle && artifactsComplete) {\n markAutomaticThrottleSuccess(throttle.key, Date.now(), throttle.windowMs)\n }\n\n return {status: \"submitted\", reportId, reportStatus}\n}\n\nexport const reports = {\n submit(input: EngineSubmitReportInput): Promise<ReportSubmitResult> {\n return submitReportInternal(input)\n },\n}\n\nexport function submitAutomaticReport(input: EngineSubmitAutomaticReportInput): Promise<ReportSubmitResult> {\n return submitReportInternal(input)\n}\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { WebSocketStatus } from "../stores/connection";
|
|
2
|
+
import type { CloudClientStatusSnapshot } from "../runtime/config";
|
|
3
|
+
export declare const session: {
|
|
4
|
+
/** Current cloud live-session status (connection state + audio transport). */
|
|
5
|
+
status: () => CloudClientStatusSnapshot;
|
|
6
|
+
/** Subscribe to cloud session-status changes; returns an unsubscribe. */
|
|
7
|
+
onStatus: (cb: (status: CloudClientStatusSnapshot) => void) => (() => void);
|
|
8
|
+
/** Whether the live-session handshake has completed. */
|
|
9
|
+
isConnected: () => boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Legacy Cloud-V1 websocket status. The socket's writer (the host
|
|
12
|
+
* WebSocketManager) was deleted in the Cloud V1 ripout, so this now always
|
|
13
|
+
* reports the store's initial DISCONNECTED; the host connection banners
|
|
14
|
+
* render `status()` (the cloud-v2 runtime) instead. Kept, with the backing
|
|
15
|
+
* connection store, for the engine-side legacy-surface removal (issue #3392).
|
|
16
|
+
*/
|
|
17
|
+
legacyWebsocketStatus: () => WebSocketStatus;
|
|
18
|
+
/** Subscribe to legacy websocket status changes; fires only when it changes. Returns an unsubscribe. */
|
|
19
|
+
onLegacyWebsocketStatus: (cb: (status: WebSocketStatus) => void) => (() => void);
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/facades/session.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,mBAAmB,CAAA;AAOhE,eAAO,MAAM,OAAO;IAClB,8EAA8E;kBAClE,yBAAyB;IACrC,yEAAyE;mBAC1D,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC;IAWzE,wDAAwD;uBACvC,OAAO;IAExB;;;;;;OAMG;iCACwB,eAAe;IAC1C,wGAAwG;kCAC1E,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC;CAS/E,CAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* session facade — `engine.session`: the cloud-v2 live-session surface engine
|
|
3
|
+
* now owns (keystone #5). Exposes the connection status read-model (status +
|
|
4
|
+
* audio transport, projected from the engine-owned cloud-status store) and the
|
|
5
|
+
* liveness flag.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
import { cloudClientService } from "../services/CloudClientService";
|
|
9
|
+
import { useCloudClientStatusStore } from "../stores/cloudClientStatus";
|
|
10
|
+
import { useConnectionStore } from "../stores/connection";
|
|
11
|
+
function project() {
|
|
12
|
+
const s = useCloudClientStatusStore.getState();
|
|
13
|
+
return { status: s.status, audioTransport: s.audioTransport };
|
|
14
|
+
}
|
|
15
|
+
export const session = {
|
|
16
|
+
/** Current cloud live-session status (connection state + audio transport). */
|
|
17
|
+
status: () => project(),
|
|
18
|
+
/** Subscribe to cloud session-status changes; returns an unsubscribe. */
|
|
19
|
+
onStatus: (cb) => {
|
|
20
|
+
// Dedupe: fire only when the projected {status, audioTransport} changes.
|
|
21
|
+
let last = JSON.stringify(project());
|
|
22
|
+
return useCloudClientStatusStore.subscribe(() => {
|
|
23
|
+
const snap = project();
|
|
24
|
+
const key = JSON.stringify(snap);
|
|
25
|
+
if (key === last)
|
|
26
|
+
return;
|
|
27
|
+
last = key;
|
|
28
|
+
cb(snap);
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
/** Whether the live-session handshake has completed. */
|
|
32
|
+
isConnected: () => cloudClientService.isConnected(),
|
|
33
|
+
/**
|
|
34
|
+
* Legacy Cloud-V1 websocket status. The socket's writer (the host
|
|
35
|
+
* WebSocketManager) was deleted in the Cloud V1 ripout, so this now always
|
|
36
|
+
* reports the store's initial DISCONNECTED; the host connection banners
|
|
37
|
+
* render `status()` (the cloud-v2 runtime) instead. Kept, with the backing
|
|
38
|
+
* connection store, for the engine-side legacy-surface removal (issue #3392).
|
|
39
|
+
*/
|
|
40
|
+
legacyWebsocketStatus: () => useConnectionStore.getState().status,
|
|
41
|
+
/** Subscribe to legacy websocket status changes; fires only when it changes. Returns an unsubscribe. */
|
|
42
|
+
onLegacyWebsocketStatus: (cb) => {
|
|
43
|
+
let last = useConnectionStore.getState().status;
|
|
44
|
+
return useConnectionStore.subscribe((state) => {
|
|
45
|
+
if (state.status === last)
|
|
46
|
+
return;
|
|
47
|
+
last = state.status;
|
|
48
|
+
cb(state.status);
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/facades/session.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAC,yBAAyB,EAAC,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AAIvD,SAAS,OAAO;IACd,MAAM,CAAC,GAAG,yBAAyB,CAAC,QAAQ,EAAE,CAAA;IAC9C,OAAO,EAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAC,CAAA;AAC7D,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,8EAA8E;IAC9E,MAAM,EAAE,GAA8B,EAAE,CAAC,OAAO,EAAE;IAClD,yEAAyE;IACzE,QAAQ,EAAE,CAAC,EAA+C,EAAgB,EAAE;QAC1E,yEAAyE;QACzE,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;QACpC,OAAO,yBAAyB,CAAC,SAAS,CAAC,GAAG,EAAE;YAC9C,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAChC,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAM;YACxB,IAAI,GAAG,GAAG,CAAA;YACV,EAAE,CAAC,IAAI,CAAC,CAAA;QACV,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,wDAAwD;IACxD,WAAW,EAAE,GAAY,EAAE,CAAC,kBAAkB,CAAC,WAAW,EAAE;IAE5D;;;;;;OAMG;IACH,qBAAqB,EAAE,GAAoB,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,MAAM;IAClF,wGAAwG;IACxG,uBAAuB,EAAE,CAAC,EAAqC,EAAgB,EAAE;QAC/E,IAAI,IAAI,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAA;QAC/C,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;gBAAE,OAAM;YACjC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAA;YACnB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;IACJ,CAAC;CAEF,CAAA","sourcesContent":["/**\n * session facade — `engine.session`: the cloud-v2 live-session surface engine\n * now owns (keystone #5). Exposes the connection status read-model (status +\n * audio transport, projected from the engine-owned cloud-status store) and the\n * liveness flag.\n *\n */\nimport {cloudClientService} from \"../services/CloudClientService\"\nimport {useCloudClientStatusStore} from \"../stores/cloudClientStatus\"\nimport {useConnectionStore} from \"../stores/connection\"\nimport type {WebSocketStatus} from \"../stores/connection\"\nimport type {CloudClientStatusSnapshot} from \"../runtime/config\"\n\nfunction project(): CloudClientStatusSnapshot {\n const s = useCloudClientStatusStore.getState()\n return {status: s.status, audioTransport: s.audioTransport}\n}\n\nexport const session = {\n /** Current cloud live-session status (connection state + audio transport). */\n status: (): CloudClientStatusSnapshot => project(),\n /** Subscribe to cloud session-status changes; returns an unsubscribe. */\n onStatus: (cb: (status: CloudClientStatusSnapshot) => void): (() => void) => {\n // Dedupe: fire only when the projected {status, audioTransport} changes.\n let last = JSON.stringify(project())\n return useCloudClientStatusStore.subscribe(() => {\n const snap = project()\n const key = JSON.stringify(snap)\n if (key === last) return\n last = key\n cb(snap)\n })\n },\n /** Whether the live-session handshake has completed. */\n isConnected: (): boolean => cloudClientService.isConnected(),\n\n /**\n * Legacy Cloud-V1 websocket status. The socket's writer (the host\n * WebSocketManager) was deleted in the Cloud V1 ripout, so this now always\n * reports the store's initial DISCONNECTED; the host connection banners\n * render `status()` (the cloud-v2 runtime) instead. Kept, with the backing\n * connection store, for the engine-side legacy-surface removal (issue #3392).\n */\n legacyWebsocketStatus: (): WebSocketStatus => useConnectionStore.getState().status,\n /** Subscribe to legacy websocket status changes; fires only when it changes. Returns an unsubscribe. */\n onLegacyWebsocketStatus: (cb: (status: WebSocketStatus) => void): (() => void) => {\n let last = useConnectionStore.getState().status\n return useConnectionStore.subscribe((state) => {\n if (state.status === last) return\n last = state.status\n cb(state.status)\n })\n },\n\n}\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export declare const settings: {
|
|
2
|
+
/** Read a setting by key (the current value, or its default; object/array values
|
|
3
|
+
* are shallow copies). */
|
|
4
|
+
get: <T = unknown>(key: string) => T | undefined;
|
|
5
|
+
/**
|
|
6
|
+
* Write a setting. `syncToServer` (default true) also pushes the change to the
|
|
7
|
+
* backend; pass false for device-local-only writes.
|
|
8
|
+
*/
|
|
9
|
+
set: <T = unknown>(key: string, value: T, syncToServer?: boolean) => import("typesafe-ts").AsyncResult<void, Error>;
|
|
10
|
+
/** Subscribe to changes for one key; returns an unsubscribe. */
|
|
11
|
+
onChanged: <T = unknown>(key: string, cb: (value: T | undefined) => void) => (() => void);
|
|
12
|
+
/** The schema descriptor for a key (type, default, options…), or undefined. */
|
|
13
|
+
descriptor: (key: string) => import("../stores/settings").Setting;
|
|
14
|
+
/** All known setting keys. */
|
|
15
|
+
keys: () => string[];
|
|
16
|
+
/**
|
|
17
|
+
* Reset every setting to its default on THIS device only (no server sync) —
|
|
18
|
+
* the logout path. Server-side settings are untouched.
|
|
19
|
+
*/
|
|
20
|
+
resetAllLocal: () => void;
|
|
21
|
+
/**
|
|
22
|
+
* Hydrate the settings store from device storage — the host-boot step (fire
|
|
23
|
+
* once at app start, before UI reads settings). Single-flighted internally.
|
|
24
|
+
*/
|
|
25
|
+
loadAll: () => import("typesafe-ts").AsyncResult<void, Error>;
|
|
26
|
+
/**
|
|
27
|
+
* Every EXPLICITLY-SET setting (shallow copy; keys never written are absent —
|
|
28
|
+
* use get() for default-resolved reads). The data-export surface.
|
|
29
|
+
*/
|
|
30
|
+
getAll: () => Record<string, unknown>;
|
|
31
|
+
/**
|
|
32
|
+
* Bulk device-local write without server sync — seeding the store from a
|
|
33
|
+
* backend settings payload.
|
|
34
|
+
*/
|
|
35
|
+
setManyLocal: (values: Record<string, unknown>) => import("typesafe-ts").AsyncResult<void, Error>;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/facades/settings.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,QAAQ;IACnB;8BAC0B;UACpB,CAAC,iBAAiB,MAAM,KAAG,CAAC,GAAG,SAAS;IAE9C;;;OAGG;UACG,CAAC,iBAAiB,MAAM,SAAS,CAAC;IAExC,gEAAgE;gBACpD,CAAC,iBAAiB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC;IAEvF,+EAA+E;sBAC7D,MAAM;IACxB,8BAA8B;gBACpB,MAAM,EAAE;IAClB;;;OAGG;yBACgB,IAAI;IACvB;;;OAGG;;IAEH;;;OAGG;kBACS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnC;;;OAGG;2BACoB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAC/C,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* settings facade — `engine.settings`: the typed keyed user-settings surface over
|
|
3
|
+
* the engine-owned settings store. This is the (A) OEM contract; the raw store at
|
|
4
|
+
* `engine.stores.settings` is the Mentra-app escape hatch.
|
|
5
|
+
*
|
|
6
|
+
* Keys + their schema live in `SETTINGS` (theme, devMode, metric/twelveHourTime,
|
|
7
|
+
* notifications, onboarding flags, …); `descriptor(key)`/`keys()` expose them.
|
|
8
|
+
*/
|
|
9
|
+
import { useSettingsStore, SETTINGS } from "../stores/settings";
|
|
10
|
+
// Copy: object/array-valued settings must not hand callers a mutable reference
|
|
11
|
+
// into the store (mutations would silently corrupt store state, bypassing set()).
|
|
12
|
+
function copySettingValue(value) {
|
|
13
|
+
if (Array.isArray(value))
|
|
14
|
+
return [...value];
|
|
15
|
+
if (value && typeof value === "object")
|
|
16
|
+
return { ...value };
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
export const settings = {
|
|
20
|
+
/** Read a setting by key (the current value, or its default; object/array values
|
|
21
|
+
* are shallow copies). */
|
|
22
|
+
get: (key) => copySettingValue(useSettingsStore.getState().getSetting(key)),
|
|
23
|
+
/**
|
|
24
|
+
* Write a setting. `syncToServer` (default true) also pushes the change to the
|
|
25
|
+
* backend; pass false for device-local-only writes.
|
|
26
|
+
*/
|
|
27
|
+
set: (key, value, syncToServer = true) => useSettingsStore.getState().setSetting(key, value, syncToServer),
|
|
28
|
+
/** Subscribe to changes for one key; returns an unsubscribe. */
|
|
29
|
+
onChanged: (key, cb) => useSettingsStore.subscribe((s) => s.getSetting(key), cb),
|
|
30
|
+
/** The schema descriptor for a key (type, default, options…), or undefined. */
|
|
31
|
+
descriptor: (key) => SETTINGS[key],
|
|
32
|
+
/** All known setting keys. */
|
|
33
|
+
keys: () => Object.keys(SETTINGS),
|
|
34
|
+
/**
|
|
35
|
+
* Reset every setting to its default on THIS device only (no server sync) —
|
|
36
|
+
* the logout path. Server-side settings are untouched.
|
|
37
|
+
*/
|
|
38
|
+
resetAllLocal: () => useSettingsStore.getState().resetAllSettingsLocally(),
|
|
39
|
+
/**
|
|
40
|
+
* Hydrate the settings store from device storage — the host-boot step (fire
|
|
41
|
+
* once at app start, before UI reads settings). Single-flighted internally.
|
|
42
|
+
*/
|
|
43
|
+
loadAll: () => useSettingsStore.getState().loadAllSettings(),
|
|
44
|
+
/**
|
|
45
|
+
* Every EXPLICITLY-SET setting (shallow copy; keys never written are absent —
|
|
46
|
+
* use get() for default-resolved reads). The data-export surface.
|
|
47
|
+
*/
|
|
48
|
+
getAll: () => ({ ...useSettingsStore.getState().settings }),
|
|
49
|
+
/**
|
|
50
|
+
* Bulk device-local write without server sync — seeding the store from a
|
|
51
|
+
* backend settings payload.
|
|
52
|
+
*/
|
|
53
|
+
setManyLocal: (values) => useSettingsStore.getState().setManyLocally(values),
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/facades/settings.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAC,gBAAgB,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAA;AAE7D,+EAA+E;AAC/E,kFAAkF;AAClF,SAAS,gBAAgB,CAAI,KAAQ;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,KAAK,CAAM,CAAA;IAChD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAC,GAAI,KAAgB,EAAM,CAAA;IAC1E,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB;8BAC0B;IAC1B,GAAG,EAAE,CAAc,GAAW,EAAiB,EAAE,CAC/C,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,CAAkB,CAAC;IAChF;;;OAGG;IACH,GAAG,EAAE,CAAc,GAAW,EAAE,KAAQ,EAAE,YAAY,GAAG,IAAI,EAAE,EAAE,CAC/D,gBAAgB,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,CAAC;IAClE,gEAAgE;IAChE,SAAS,EAAE,CAAc,GAAW,EAAE,EAAkC,EAAgB,EAAE,CACxF,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAkB,EAAE,EAAE,CAAC;IAC3E,+EAA+E;IAC/E,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC1C,8BAA8B;IAC9B,IAAI,EAAE,GAAa,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3C;;;OAGG;IACH,aAAa,EAAE,GAAS,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,uBAAuB,EAAE;IAChF;;;OAGG;IACH,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,eAAe,EAAE;IAC5D;;;OAGG;IACH,MAAM,EAAE,GAA4B,EAAE,CAAC,CAAC,EAAC,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAC,CAAC;IAClF;;;OAGG;IACH,YAAY,EAAE,CAAC,MAA+B,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;CACtG,CAAA","sourcesContent":["/**\n * settings facade — `engine.settings`: the typed keyed user-settings surface over\n * the engine-owned settings store. This is the (A) OEM contract; the raw store at\n * `engine.stores.settings` is the Mentra-app escape hatch.\n *\n * Keys + their schema live in `SETTINGS` (theme, devMode, metric/twelveHourTime,\n * notifications, onboarding flags, …); `descriptor(key)`/`keys()` expose them.\n */\nimport {useSettingsStore, SETTINGS} from \"../stores/settings\"\n\n// Copy: object/array-valued settings must not hand callers a mutable reference\n// into the store (mutations would silently corrupt store state, bypassing set()).\nfunction copySettingValue<T>(value: T): T {\n if (Array.isArray(value)) return [...value] as T\n if (value && typeof value === \"object\") return {...(value as object)} as T\n return value\n}\n\nexport const settings = {\n /** Read a setting by key (the current value, or its default; object/array values\n * are shallow copies). */\n get: <T = unknown>(key: string): T | undefined =>\n copySettingValue(useSettingsStore.getState().getSetting(key) as T | undefined),\n /**\n * Write a setting. `syncToServer` (default true) also pushes the change to the\n * backend; pass false for device-local-only writes.\n */\n set: <T = unknown>(key: string, value: T, syncToServer = true) =>\n useSettingsStore.getState().setSetting(key, value, syncToServer),\n /** Subscribe to changes for one key; returns an unsubscribe. */\n onChanged: <T = unknown>(key: string, cb: (value: T | undefined) => void): (() => void) =>\n useSettingsStore.subscribe((s) => s.getSetting(key) as T | undefined, cb),\n /** The schema descriptor for a key (type, default, options…), or undefined. */\n descriptor: (key: string) => SETTINGS[key],\n /** All known setting keys. */\n keys: (): string[] => Object.keys(SETTINGS),\n /**\n * Reset every setting to its default on THIS device only (no server sync) —\n * the logout path. Server-side settings are untouched.\n */\n resetAllLocal: (): void => useSettingsStore.getState().resetAllSettingsLocally(),\n /**\n * Hydrate the settings store from device storage — the host-boot step (fire\n * once at app start, before UI reads settings). Single-flighted internally.\n */\n loadAll: () => useSettingsStore.getState().loadAllSettings(),\n /**\n * Every EXPLICITLY-SET setting (shallow copy; keys never written are absent —\n * use get() for default-resolved reads). The data-export surface.\n */\n getAll: (): Record<string, unknown> => ({...useSettingsStore.getState().settings}),\n /**\n * Bulk device-local write without server sync — seeding the store from a\n * backend settings payload.\n */\n setManyLocal: (values: Record<string, unknown>) => useSettingsStore.getState().setManyLocally(values),\n}\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import sttModelManager from "../services/STTModelManager";
|
|
2
|
+
import ttsModelManager from "../services/TTSModelManager";
|
|
3
|
+
import offlineSpeechModelService from "../services/OfflineSpeechModelService";
|
|
4
|
+
export declare const speech: {
|
|
5
|
+
/** Restart the glasses' on-device transcriber (e.g. after switching STT language). */
|
|
6
|
+
restartTranscriber: () => Promise<void>;
|
|
7
|
+
stt: {
|
|
8
|
+
currentLanguage: () => string;
|
|
9
|
+
languages: () => import("../internal").SttLanguageConfig[];
|
|
10
|
+
languageInfo: () => Promise<import("../internal").SttLanguageInfo[]>;
|
|
11
|
+
download: (code?: string | undefined, onProgress?: ((progress: import("../internal").SttDownloadProgress) => void) | undefined, onExtractionProgress?: ((progress: import("../internal").SttExtractionProgress) => void) | undefined) => Promise<void>;
|
|
12
|
+
activate: (code: string) => void;
|
|
13
|
+
cancelDownload: () => Promise<void>;
|
|
14
|
+
deleteModel: (code?: string | undefined) => Promise<void>;
|
|
15
|
+
/** Current auto-download status of the offline STT model. */
|
|
16
|
+
status: () => import("../internal").OfflineModelDownloadStatus | null;
|
|
17
|
+
/** Subscribe to auto-download status changes; returns an unsubscribe. */
|
|
18
|
+
onStatusChanged: (listener: (status: import("../internal").OfflineModelDownloadStatus | null) => void) => () => void;
|
|
19
|
+
};
|
|
20
|
+
tts: {
|
|
21
|
+
currentLanguage: () => string;
|
|
22
|
+
languages: () => import("../services/TTSModelManager").TTSLanguageConfig[];
|
|
23
|
+
languageInfo: () => Promise<import("../services/TTSModelManager").TTSLanguageInfo[]>;
|
|
24
|
+
download: (code?: string | undefined, onProgress?: ((progress: import("../services/TTSModelManager").TTSDownloadProgress) => void) | undefined, onExtractionProgress?: ((progress: import("../services/TTSModelManager").TTSExtractionProgress) => void) | undefined) => Promise<void>;
|
|
25
|
+
activate: (code: string) => void;
|
|
26
|
+
cancelDownload: () => Promise<void>;
|
|
27
|
+
deleteModel: (_code?: string | undefined) => Promise<void>;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=speech.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speech.d.ts","sourceRoot":"","sources":["../../src/facades/speech.ts"],"names":[],"mappings":"AAOA,OAAO,eAAe,MAAM,6BAA6B,CAAA;AACzD,OAAO,eAAe,MAAM,6BAA6B,CAAA;AACzD,OAAO,yBAAyB,MAAM,uCAAuC,CAAA;AAE7E,eAAO,MAAM,MAAM;IACjB,sFAAsF;8BAC9D,OAAO,CAAC,IAAI,CAAC;;;;;;yBAMlB,MAAM;;;QAGvB,6DAA6D;;QAE7D,yEAAyE;;;;;;;;yBASxD,MAAM;;;;CAI1B,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* speech facade — `engine.speech.{stt,tts}`: on-device STT/TTS model management,
|
|
3
|
+
* wrapping the in-engine model managers. Thin passthrough (args forwarded with
|
|
4
|
+
* exact types via Parameters<>), so the facade never drifts from the managers.
|
|
5
|
+
* STT additionally exposes the auto-download status stream (the TTS path has none).
|
|
6
|
+
*/
|
|
7
|
+
import BluetoothSdk from "@mentra/bluetooth-sdk/internal";
|
|
8
|
+
import sttModelManager from "../services/STTModelManager";
|
|
9
|
+
import ttsModelManager from "../services/TTSModelManager";
|
|
10
|
+
import offlineSpeechModelService from "../services/OfflineSpeechModelService";
|
|
11
|
+
export const speech = {
|
|
12
|
+
/** Restart the glasses' on-device transcriber (e.g. after switching STT language). */
|
|
13
|
+
restartTranscriber: () => BluetoothSdk.restartTranscriber(),
|
|
14
|
+
stt: {
|
|
15
|
+
currentLanguage: () => sttModelManager.getCurrentLanguage(),
|
|
16
|
+
languages: () => sttModelManager.getAvailableLanguages(),
|
|
17
|
+
languageInfo: () => sttModelManager.getAllLanguageInfo(),
|
|
18
|
+
download: (...args) => sttModelManager.downloadModel(...args),
|
|
19
|
+
activate: (code) => sttModelManager.setCurrentLanguage(code),
|
|
20
|
+
cancelDownload: () => sttModelManager.cancelDownload(),
|
|
21
|
+
deleteModel: (...args) => sttModelManager.deleteModel(...args),
|
|
22
|
+
/** Current auto-download status of the offline STT model. */
|
|
23
|
+
status: () => offlineSpeechModelService.getStatus(),
|
|
24
|
+
/** Subscribe to auto-download status changes; returns an unsubscribe. */
|
|
25
|
+
onStatusChanged: (...args) => offlineSpeechModelService.subscribe(...args),
|
|
26
|
+
},
|
|
27
|
+
tts: {
|
|
28
|
+
currentLanguage: () => ttsModelManager.getCurrentLanguage(),
|
|
29
|
+
languages: () => ttsModelManager.getAvailableLanguages(),
|
|
30
|
+
languageInfo: () => ttsModelManager.getAllLanguageInfo(),
|
|
31
|
+
download: (...args) => ttsModelManager.downloadModel(...args),
|
|
32
|
+
activate: (code) => ttsModelManager.setCurrentLanguage(code),
|
|
33
|
+
cancelDownload: () => ttsModelManager.cancelDownload(),
|
|
34
|
+
deleteModel: (...args) => ttsModelManager.deleteModel(...args),
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=speech.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"speech.js","sourceRoot":"","sources":["../../src/facades/speech.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,YAAY,MAAM,gCAAgC,CAAA;AACzD,OAAO,eAAe,MAAM,6BAA6B,CAAA;AACzD,OAAO,eAAe,MAAM,6BAA6B,CAAA;AACzD,OAAO,yBAAyB,MAAM,uCAAuC,CAAA;AAE7E,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,sFAAsF;IACtF,kBAAkB,EAAE,GAAkB,EAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE;IAC1E,GAAG,EAAE;QACH,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,kBAAkB,EAAE;QAC3D,SAAS,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,qBAAqB,EAAE;QACxD,YAAY,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,kBAAkB,EAAE;QACxD,QAAQ,EAAE,CAAC,GAAG,IAAsD,EAAE,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;QAC/G,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC;QACpE,cAAc,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,cAAc,EAAE;QACtD,WAAW,EAAE,CAAC,GAAG,IAAoD,EAAE,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;QAC9G,6DAA6D;QAC7D,MAAM,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,SAAS,EAAE;QACnD,yEAAyE;QACzE,eAAe,EAAE,CAAC,GAAG,IAA4D,EAAE,EAAE,CACnF,yBAAyB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;KAC/C;IACD,GAAG,EAAE;QACH,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,kBAAkB,EAAE;QAC3D,SAAS,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,qBAAqB,EAAE;QACxD,YAAY,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,kBAAkB,EAAE;QACxD,QAAQ,EAAE,CAAC,GAAG,IAAsD,EAAE,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;QAC/G,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC;QACpE,cAAc,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,cAAc,EAAE;QACtD,WAAW,EAAE,CAAC,GAAG,IAAoD,EAAE,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;KAC/G;CACF,CAAA","sourcesContent":["/**\n * speech facade — `engine.speech.{stt,tts}`: on-device STT/TTS model management,\n * wrapping the in-engine model managers. Thin passthrough (args forwarded with\n * exact types via Parameters<>), so the facade never drifts from the managers.\n * STT additionally exposes the auto-download status stream (the TTS path has none).\n */\nimport BluetoothSdk from \"@mentra/bluetooth-sdk/internal\"\nimport sttModelManager from \"../services/STTModelManager\"\nimport ttsModelManager from \"../services/TTSModelManager\"\nimport offlineSpeechModelService from \"../services/OfflineSpeechModelService\"\n\nexport const speech = {\n /** Restart the glasses' on-device transcriber (e.g. after switching STT language). */\n restartTranscriber: (): Promise<void> => BluetoothSdk.restartTranscriber(),\n stt: {\n currentLanguage: () => sttModelManager.getCurrentLanguage(),\n languages: () => sttModelManager.getAvailableLanguages(),\n languageInfo: () => sttModelManager.getAllLanguageInfo(),\n download: (...args: Parameters<typeof sttModelManager.downloadModel>) => sttModelManager.downloadModel(...args),\n activate: (code: string) => sttModelManager.setCurrentLanguage(code),\n cancelDownload: () => sttModelManager.cancelDownload(),\n deleteModel: (...args: Parameters<typeof sttModelManager.deleteModel>) => sttModelManager.deleteModel(...args),\n /** Current auto-download status of the offline STT model. */\n status: () => offlineSpeechModelService.getStatus(),\n /** Subscribe to auto-download status changes; returns an unsubscribe. */\n onStatusChanged: (...args: Parameters<typeof offlineSpeechModelService.subscribe>) =>\n offlineSpeechModelService.subscribe(...args),\n },\n tts: {\n currentLanguage: () => ttsModelManager.getCurrentLanguage(),\n languages: () => ttsModelManager.getAvailableLanguages(),\n languageInfo: () => ttsModelManager.getAllLanguageInfo(),\n download: (...args: Parameters<typeof ttsModelManager.downloadModel>) => ttsModelManager.downloadModel(...args),\n activate: (code: string) => ttsModelManager.setCurrentLanguage(code),\n cancelDownload: () => ttsModelManager.cancelDownload(),\n deleteModel: (...args: Parameters<typeof ttsModelManager.deleteModel>) => ttsModelManager.deleteModel(...args),\n },\n}\n"]}
|
package/build/index.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@mentra/engine` — the OEM-facing main entry.
|
|
3
|
+
*
|
|
4
|
+
* The `engine` namespace (configure/start/stop + typed domain facades), the
|
|
5
|
+
* public contract/read-model types, and the pure helpers host UI legitimately
|
|
6
|
+
* renders with (decision functions, sort/order helpers, policy constants,
|
|
7
|
+
* capability tables, timers). Judgment rule: read models, commands, pure
|
|
8
|
+
* functions and types belong here; anything that mutates runtime state or
|
|
9
|
+
* exposes a raw store/service lives on `@mentra/engine/internal`
|
|
10
|
+
* (migration-era surface) or `@mentra/engine/devtools` (debug-only) instead.
|
|
11
|
+
* See cloud-v2/docs/issues/020-glasses-status-boundary/integration-review.md §D.
|
|
12
|
+
*/
|
|
13
|
+
export { engine } from "./engine";
|
|
14
|
+
export type { ReportAttachmentInput, ReportContext, ReportDetails, ReportStatus, ReportTrigger, ReportSubmitResult, EngineSubmitReportInput, } from "./facades/reports";
|
|
15
|
+
export type { IslandNotification, IslandNotificationKind } from "./facades/notifications";
|
|
16
|
+
export type { WifiSearchResult } from "./facades/glassesWifi";
|
|
17
|
+
export type { IdentitySnapshot } from "./services/PairingIdentity";
|
|
18
|
+
export type { DisplayMirrorEvent } from "./facades/displayMirror";
|
|
19
|
+
export type { IslandConfigureOptions, IslandAuth, IslandConfigValues, IslandAnalytics, IslandUiSeams, SubjectTokenType, } from "./runtime/bootstrap";
|
|
20
|
+
export { SETTINGS, useSetting } from "./stores/settings";
|
|
21
|
+
export { MENTRA_LIVE_SETTING_KEYS, getBluetoothSettingKeysForDevice } from "./stores/bluetoothSettingKeys";
|
|
22
|
+
export { ISLAND_SETTINGS_KEYS } from "./runtime/config";
|
|
23
|
+
export type { CloudClientStatusSnapshot, MiniappAuthToken, InteropAuditEvent, TtsSynthesisResult, } from "./runtime/config";
|
|
24
|
+
export { isGlassesConnected, isGlassesReady, isGlassesLinkLayerBusy, waitForGlassesReady, type GlassesConnectionStatus, type WaitForGlassesReadyOptions, } from "./services/GlassesReadiness";
|
|
25
|
+
export { decideReconnect, decideConnectButtonAction, type ReconnectDecision, type ReconnectDecisionInput, type ConnectButtonAction, } from "./services/ConnectionCoordinator";
|
|
26
|
+
export type { VersionInfo, MtkPatch, BesFirmware, VersionJson, OtaCheckResult, OtaCheckCurrentGlassesResult, OtaCheckCurrentGlassesOptions, } from "./services/OtaUpdateCheckService";
|
|
27
|
+
export { MINIMUM_OTA_STATUS_BUILD, MAX_RETRIES, RETRY_INTERVAL_MS, PROGRESS_TIMEOUT_MS, DOWNLOAD_STUCK_TIMEOUT_MS, MTK_INSTALL_TIMEOUT_MS, GLOBAL_OTA_TIMEOUT_MS, POST_APK_OTA_START_DELAY_MS, PING_INTERVAL_MS, QUERY_REPLY_TIMEOUT_MS, OtaProgressMessages, } from "./services/otaInstallPolicy";
|
|
28
|
+
export { deriveDisplayState } from "./services/otaDisplayState";
|
|
29
|
+
export type { DisplayState } from "./services/otaDisplayState";
|
|
30
|
+
export type { OtaProgress, OtaProgressStatus, OtaStatus, OtaUpdateInfo, OtaSnapshot, OtaInstallSnapshot, } from "./facades/ota";
|
|
31
|
+
export type { GalleryNotice, GalleryNoticeCode } from "./services/asg/galleryNotices";
|
|
32
|
+
export { MediaLibraryPermissions } from "./utils/permissions/MediaLibraryPermissions";
|
|
33
|
+
export { deriveGalleryDisplayName } from "./utils/permissions/galleryDisplayName";
|
|
34
|
+
export type { PhotoInfo, CaptureFile, CaptureGroup, GalleryResponse, ServerStatus, HealthResponse, GalleryEvent } from "./types/asg";
|
|
35
|
+
export type { PairFailureEvent, GlassesNotReadyEvent } from "@mentra/bluetooth-sdk/internal";
|
|
36
|
+
export { WebSocketStatus } from "./stores/connection";
|
|
37
|
+
export { DUMMY_APPLET, saveAppsOrder, getAppsOrder, sortAppsByPackageNamePriority, saveLastOpenTime, getLastOpenTime, sortAppsByLastOpenTime, useApps, useStart, useStop, useSetForeground, useClearForeground, useRefresh, useStopAll, useInstall, useUninstall, useActiveApps, useActiveBackgroundApps, useBackgroundApps, useActiveForegroundApp, useForegroundApp, useActiveBackgroundAppsCount, useLocalMiniApps, type StartOptions, type OrderMap, } from "./stores/apps";
|
|
38
|
+
export { decideDevLaunchRoute, type DevLaunchResult, type DevManifest } from "./utils/devMiniappLaunch";
|
|
39
|
+
export { HardwareCompatibility, type CompatibilityResult } from "./utils/hardware";
|
|
40
|
+
export { BgTimer, throttle, debounce } from "./utils/timers";
|
|
41
|
+
export { HardwareType, HardwareRequirementLevel, DeviceTypes, ControllerTypes, HARDWARE_CAPABILITIES, getModelCapabilities, simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, vuzixZ100, mentraDisplay, } from "./types";
|
|
42
|
+
export type { HardwareRequirement, CameraCapabilities, DisplayCapabilities, MicrophoneCapabilities, SpeakerCapabilities, IMUCapabilities, ButtonCapabilities, LightCapabilities, PowerCapabilities, Capabilities, AppletType, AppPermissionType, AppletPermission, AppletInterface, ClientApp, } from "./types";
|
|
43
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/index.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@mentra/engine` — the OEM-facing main entry.
|
|
3
|
+
*
|
|
4
|
+
* The `engine` namespace (configure/start/stop + typed domain facades), the
|
|
5
|
+
* public contract/read-model types, and the pure helpers host UI legitimately
|
|
6
|
+
* renders with (decision functions, sort/order helpers, policy constants,
|
|
7
|
+
* capability tables, timers). Judgment rule: read models, commands, pure
|
|
8
|
+
* functions and types belong here; anything that mutates runtime state or
|
|
9
|
+
* exposes a raw store/service lives on `@mentra/engine/internal`
|
|
10
|
+
* (migration-era surface) or `@mentra/engine/devtools` (debug-only) instead.
|
|
11
|
+
* See cloud-v2/docs/issues/020-glasses-status-boundary/integration-review.md §D.
|
|
12
|
+
*/
|
|
13
|
+
// The namespaced OEM-facing engine API (the "(A) host API"). See ./engine.
|
|
14
|
+
export { engine } from "./engine";
|
|
15
|
+
// Settings contract: the typed key registry (schema descriptors — the same
|
|
16
|
+
// surface engine.settings.descriptor()/keys() reads), the per-key React hook
|
|
17
|
+
// (the hook layer, same precedent as the apps hooks below), and the pure
|
|
18
|
+
// device-model key helpers. The raw useSettingsStore stays internal;
|
|
19
|
+
// imperative access goes through engine.settings.
|
|
20
|
+
export { SETTINGS, useSetting } from "./stores/settings";
|
|
21
|
+
export { MENTRA_LIVE_SETTING_KEYS, getBluetoothSettingKeysForDevice } from "./stores/bluetoothSettingKeys";
|
|
22
|
+
// Runtime-shared constants and contract DTOs.
|
|
23
|
+
export { ISLAND_SETTINGS_KEYS } from "./runtime/config";
|
|
24
|
+
// Pure readiness predicates over glasses connection state.
|
|
25
|
+
export { isGlassesConnected, isGlassesReady, isGlassesLinkLayerBusy, waitForGlassesReady, } from "./services/GlassesReadiness";
|
|
26
|
+
// Pure connect/reconnect decision helpers (host UI renders the outcome).
|
|
27
|
+
export { decideReconnect, decideConnectButtonAction, } from "./services/ConnectionCoordinator";
|
|
28
|
+
// OTA install policy (watchdog timings + failure copy) + display-state
|
|
29
|
+
// derivation, consumed by the OTA screens and their tests.
|
|
30
|
+
export { MINIMUM_OTA_STATUS_BUILD, MAX_RETRIES, RETRY_INTERVAL_MS, PROGRESS_TIMEOUT_MS, DOWNLOAD_STUCK_TIMEOUT_MS, MTK_INSTALL_TIMEOUT_MS, GLOBAL_OTA_TIMEOUT_MS, POST_APK_OTA_START_DELAY_MS, PING_INTERVAL_MS, QUERY_REPLY_TIMEOUT_MS, OtaProgressMessages, } from "./services/otaInstallPolicy";
|
|
31
|
+
export { deriveDisplayState } from "./services/otaDisplayState";
|
|
32
|
+
export { MediaLibraryPermissions } from "./utils/permissions/MediaLibraryPermissions";
|
|
33
|
+
export { deriveGalleryDisplayName } from "./utils/permissions/galleryDisplayName";
|
|
34
|
+
// Cloud connection status enum (read model; the connection store is internal).
|
|
35
|
+
export { WebSocketStatus } from "./stores/connection";
|
|
36
|
+
// App-list hook layer + pure list helpers (the raw useAppStatusStore and
|
|
37
|
+
// installAppStoreHooks wiring are internal).
|
|
38
|
+
export { DUMMY_APPLET, saveAppsOrder, getAppsOrder, sortAppsByPackageNamePriority, saveLastOpenTime, getLastOpenTime, sortAppsByLastOpenTime, useApps, useStart, useStop, useSetForeground, useClearForeground, useRefresh, useStopAll, useInstall, useUninstall, useActiveApps, useActiveBackgroundApps, useBackgroundApps, useActiveForegroundApp, useForegroundApp, useActiveBackgroundAppsCount, useLocalMiniApps, } from "./stores/apps";
|
|
39
|
+
// Pure dev-miniapp launch-route decision (registration itself is internal).
|
|
40
|
+
export { decideDevLaunchRoute } from "./utils/devMiniappLaunch";
|
|
41
|
+
export { HardwareCompatibility } from "./utils/hardware";
|
|
42
|
+
export { BgTimer, throttle, debounce } from "./utils/timers";
|
|
43
|
+
// Types (copied from @mentra/types — keep in sync with cloud/packages/types/src)
|
|
44
|
+
export { HardwareType, HardwareRequirementLevel, DeviceTypes, ControllerTypes, HARDWARE_CAPABILITIES, getModelCapabilities, simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, vuzixZ100, mentraDisplay, } from "./types";
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,2EAA2E;AAC3E,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAuB/B,2EAA2E;AAC3E,6EAA6E;AAC7E,yEAAyE;AACzE,qEAAqE;AACrE,kDAAkD;AAClD,OAAO,EAAC,QAAQ,EAAE,UAAU,EAAC,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAC,wBAAwB,EAAE,gCAAgC,EAAC,MAAM,+BAA+B,CAAA;AAExG,8CAA8C;AAC9C,OAAO,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAA;AAQrD,2DAA2D;AAC3D,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,GAGpB,MAAM,6BAA6B,CAAA;AACpC,yEAAyE;AACzE,OAAO,EACL,eAAe,EACf,yBAAyB,GAI1B,MAAM,kCAAkC,CAAA;AAazC,uEAAuE;AACvE,2DAA2D;AAC3D,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAA;AAe7D,OAAO,EAAC,uBAAuB,EAAC,MAAM,6CAA6C,CAAA;AACnF,OAAO,EAAC,wBAAwB,EAAC,MAAM,wCAAwC,CAAA;AAO/E,+EAA+E;AAC/E,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAA;AAEnD,yEAAyE;AACzE,6CAA6C;AAC7C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,6BAA6B,EAC7B,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,OAAO,EACP,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,4BAA4B,EAC5B,gBAAgB,GAGjB,MAAM,eAAe,CAAA;AAEtB,4EAA4E;AAC5E,OAAO,EAAC,oBAAoB,EAAyC,MAAM,0BAA0B,CAAA;AACrG,OAAO,EAAC,qBAAqB,EAA2B,MAAM,kBAAkB,CAAA;AAChF,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAE1D,iFAAiF;AACjF,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,UAAU,EACV,SAAS,EACT,aAAa,GACd,MAAM,SAAS,CAAA","sourcesContent":["/**\n * `@mentra/engine` — the OEM-facing main entry.\n *\n * The `engine` namespace (configure/start/stop + typed domain facades), the\n * public contract/read-model types, and the pure helpers host UI legitimately\n * renders with (decision functions, sort/order helpers, policy constants,\n * capability tables, timers). Judgment rule: read models, commands, pure\n * functions and types belong here; anything that mutates runtime state or\n * exposes a raw store/service lives on `@mentra/engine/internal`\n * (migration-era surface) or `@mentra/engine/devtools` (debug-only) instead.\n * See cloud-v2/docs/issues/020-glasses-status-boundary/integration-review.md §D.\n */\n\n// The namespaced OEM-facing engine API (the \"(A) host API\"). See ./engine.\nexport {engine} from \"./engine\"\nexport type {\n ReportAttachmentInput,\n ReportContext,\n ReportDetails,\n ReportStatus,\n ReportTrigger,\n ReportSubmitResult,\n EngineSubmitReportInput,\n} from \"./facades/reports\"\nexport type {IslandNotification, IslandNotificationKind} from \"./facades/notifications\"\nexport type {WifiSearchResult} from \"./facades/glassesWifi\"\nexport type {IdentitySnapshot} from \"./services/PairingIdentity\"\nexport type {DisplayMirrorEvent} from \"./facades/displayMirror\"\nexport type {\n IslandConfigureOptions,\n IslandAuth,\n IslandConfigValues,\n IslandAnalytics,\n IslandUiSeams,\n SubjectTokenType,\n} from \"./runtime/bootstrap\"\n\n// Settings contract: the typed key registry (schema descriptors — the same\n// surface engine.settings.descriptor()/keys() reads), the per-key React hook\n// (the hook layer, same precedent as the apps hooks below), and the pure\n// device-model key helpers. The raw useSettingsStore stays internal;\n// imperative access goes through engine.settings.\nexport {SETTINGS, useSetting} from \"./stores/settings\"\nexport {MENTRA_LIVE_SETTING_KEYS, getBluetoothSettingKeysForDevice} from \"./stores/bluetoothSettingKeys\"\n\n// Runtime-shared constants and contract DTOs.\nexport {ISLAND_SETTINGS_KEYS} from \"./runtime/config\"\nexport type {\n CloudClientStatusSnapshot,\n MiniappAuthToken,\n InteropAuditEvent,\n TtsSynthesisResult,\n} from \"./runtime/config\"\n\n// Pure readiness predicates over glasses connection state.\nexport {\n isGlassesConnected,\n isGlassesReady,\n isGlassesLinkLayerBusy,\n waitForGlassesReady,\n type GlassesConnectionStatus,\n type WaitForGlassesReadyOptions,\n} from \"./services/GlassesReadiness\"\n// Pure connect/reconnect decision helpers (host UI renders the outcome).\nexport {\n decideReconnect,\n decideConnectButtonAction,\n type ReconnectDecision,\n type ReconnectDecisionInput,\n type ConnectButtonAction,\n} from \"./services/ConnectionCoordinator\"\n\n// OTA read-model types for host OTA UI (progress screen, error mapping,\n// progress section) — the check/install machinery itself is internal.\nexport type {\n VersionInfo,\n MtkPatch,\n BesFirmware,\n VersionJson,\n OtaCheckResult,\n OtaCheckCurrentGlassesResult,\n OtaCheckCurrentGlassesOptions,\n} from \"./services/OtaUpdateCheckService\"\n// OTA install policy (watchdog timings + failure copy) + display-state\n// derivation, consumed by the OTA screens and their tests.\nexport {\n MINIMUM_OTA_STATUS_BUILD,\n MAX_RETRIES,\n RETRY_INTERVAL_MS,\n PROGRESS_TIMEOUT_MS,\n DOWNLOAD_STUCK_TIMEOUT_MS,\n MTK_INSTALL_TIMEOUT_MS,\n GLOBAL_OTA_TIMEOUT_MS,\n POST_APK_OTA_START_DELAY_MS,\n PING_INTERVAL_MS,\n QUERY_REPLY_TIMEOUT_MS,\n OtaProgressMessages,\n} from \"./services/otaInstallPolicy\"\nexport {deriveDisplayState} from \"./services/otaDisplayState\"\nexport type {DisplayState} from \"./services/otaDisplayState\"\nexport type {\n OtaProgress,\n OtaProgressStatus,\n OtaStatus,\n OtaUpdateInfo,\n OtaSnapshot,\n OtaInstallSnapshot,\n} from \"./facades/ota\"\n\n// Gallery read models: engine.gallery.onNotice payload types, the media\n// permission helper + display-name derivation host gallery UI uses, and the\n// glasses-camera DTO types (re-exported through the host @/types/asg shim).\nexport type {GalleryNotice, GalleryNoticeCode} from \"./services/asg/galleryNotices\"\nexport {MediaLibraryPermissions} from \"./utils/permissions/MediaLibraryPermissions\"\nexport {deriveGalleryDisplayName} from \"./utils/permissions/galleryDisplayName\"\nexport type {PhotoInfo, CaptureFile, CaptureGroup, GalleryResponse, ServerStatus, HealthResponse, GalleryEvent} from \"./types/asg\"\n\n// Bluetooth SDK event types host UI subscribes to via engine facades (the\n// BluetoothSdk singleton passthrough itself is internal).\nexport type {PairFailureEvent, GlassesNotReadyEvent} from \"@mentra/bluetooth-sdk/internal\"\n\n// Cloud connection status enum (read model; the connection store is internal).\nexport {WebSocketStatus} from \"./stores/connection\"\n\n// App-list hook layer + pure list helpers (the raw useAppStatusStore and\n// installAppStoreHooks wiring are internal).\nexport {\n DUMMY_APPLET,\n saveAppsOrder,\n getAppsOrder,\n sortAppsByPackageNamePriority,\n saveLastOpenTime,\n getLastOpenTime,\n sortAppsByLastOpenTime,\n useApps,\n useStart,\n useStop,\n useSetForeground,\n useClearForeground,\n useRefresh,\n useStopAll,\n useInstall,\n useUninstall,\n useActiveApps,\n useActiveBackgroundApps,\n useBackgroundApps,\n useActiveForegroundApp,\n useForegroundApp,\n useActiveBackgroundAppsCount,\n useLocalMiniApps,\n type StartOptions,\n type OrderMap,\n} from \"./stores/apps\"\n\n// Pure dev-miniapp launch-route decision (registration itself is internal).\nexport {decideDevLaunchRoute, type DevLaunchResult, type DevManifest} from \"./utils/devMiniappLaunch\"\nexport {HardwareCompatibility, type CompatibilityResult} from \"./utils/hardware\"\nexport {BgTimer, throttle, debounce} from \"./utils/timers\"\n\n// Types (copied from @mentra/types — keep in sync with cloud/packages/types/src)\nexport {\n HardwareType,\n HardwareRequirementLevel,\n DeviceTypes,\n ControllerTypes,\n HARDWARE_CAPABILITIES,\n getModelCapabilities,\n simulatedGlasses,\n evenRealitiesG1,\n evenRealitiesG2,\n mentraLive,\n vuzixZ100,\n mentraDisplay,\n} from \"./types\"\nexport type {\n HardwareRequirement,\n CameraCapabilities,\n DisplayCapabilities,\n MicrophoneCapabilities,\n SpeakerCapabilities,\n IMUCapabilities,\n ButtonCapabilities,\n LightCapabilities,\n PowerCapabilities,\n Capabilities,\n AppletType,\n AppPermissionType,\n AppletPermission,\n AppletInterface,\n ClientApp,\n} from \"./types\"\n"]}
|