@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,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine notifications emitter — the engine→host alert channel behind
|
|
3
|
+
* `engine.notifications`. Engine-detected conditions the host should surface
|
|
4
|
+
* (miniapp crashloop, version-incompatible miniapp, persistent connection loss)
|
|
5
|
+
* are pushed here; the facade fans them out to host subscribers.
|
|
6
|
+
*
|
|
7
|
+
* A plain listener set (not Node's EventEmitter) to avoid the `events` typings
|
|
8
|
+
* gap in engine's standalone build.
|
|
9
|
+
*/
|
|
10
|
+
export type IslandNotificationKind = "miniapp_crashloop" | "version_incompatible" | "missing_speech_model" | "connection_failed_persistent";
|
|
11
|
+
export interface IslandNotification {
|
|
12
|
+
kind: IslandNotificationKind;
|
|
13
|
+
/** The miniapp this concerns, when applicable. */
|
|
14
|
+
packageName?: string;
|
|
15
|
+
/** Epoch millis when raised. */
|
|
16
|
+
timestamp: number;
|
|
17
|
+
/** Human-readable summary the host can show. */
|
|
18
|
+
reason: string;
|
|
19
|
+
/** Kind-specific extras (versions, attempt counts, …). */
|
|
20
|
+
metadata?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
export declare const islandNotifications: {
|
|
23
|
+
/** Raise a notification to all host subscribers. */
|
|
24
|
+
emit(notification: IslandNotification): void;
|
|
25
|
+
/** Subscribe to engine notifications; returns an unsubscribe. */
|
|
26
|
+
subscribe(cb: (n: IslandNotification) => void): () => void;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=NotificationsEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotificationsEmitter.d.ts","sourceRoot":"","sources":["../../src/services/NotificationsEmitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAC9B,mBAAmB,GACnB,sBAAsB,GACtB,sBAAsB,GACtB,8BAA8B,CAAA;AAElC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAA;IAC5B,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAA;IACd,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAID,eAAO,MAAM,mBAAmB;IAC9B,oDAAoD;uBACjC,kBAAkB,GAAG,IAAI;IAS5C,iEAAiE;kBACnD,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,GAAG,MAAM,IAAI;CAM3D,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const listeners = new Set();
|
|
2
|
+
export const islandNotifications = {
|
|
3
|
+
/** Raise a notification to all host subscribers. */
|
|
4
|
+
emit(notification) {
|
|
5
|
+
for (const l of listeners) {
|
|
6
|
+
try {
|
|
7
|
+
l(notification);
|
|
8
|
+
}
|
|
9
|
+
catch (err) {
|
|
10
|
+
console.warn(`islandNotifications: listener threw: ${err?.message ?? err}`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
/** Subscribe to engine notifications; returns an unsubscribe. */
|
|
15
|
+
subscribe(cb) {
|
|
16
|
+
listeners.add(cb);
|
|
17
|
+
return () => {
|
|
18
|
+
listeners.delete(cb);
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=NotificationsEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotificationsEmitter.js","sourceRoot":"","sources":["../../src/services/NotificationsEmitter.ts"],"names":[],"mappings":"AA2BA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmC,CAAA;AAE5D,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,oDAAoD;IACpD,IAAI,CAAC,YAAgC;QACnC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,CAAC,CAAC,YAAY,CAAC,CAAA;YACjB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,wCAAyC,GAAa,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC,CAAA;YACxF,CAAC;QACH,CAAC;IACH,CAAC;IACD,iEAAiE;IACjE,SAAS,CAAC,EAAmC;QAC3C,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjB,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACtB,CAAC,CAAA;IACH,CAAC;CACF,CAAA","sourcesContent":["/**\n * Engine notifications emitter — the engine→host alert channel behind\n * `engine.notifications`. Engine-detected conditions the host should surface\n * (miniapp crashloop, version-incompatible miniapp, persistent connection loss)\n * are pushed here; the facade fans them out to host subscribers.\n *\n * A plain listener set (not Node's EventEmitter) to avoid the `events` typings\n * gap in engine's standalone build.\n */\nexport type IslandNotificationKind =\n | \"miniapp_crashloop\"\n | \"version_incompatible\"\n | \"missing_speech_model\"\n | \"connection_failed_persistent\"\n\nexport interface IslandNotification {\n kind: IslandNotificationKind\n /** The miniapp this concerns, when applicable. */\n packageName?: string\n /** Epoch millis when raised. */\n timestamp: number\n /** Human-readable summary the host can show. */\n reason: string\n /** Kind-specific extras (versions, attempt counts, …). */\n metadata?: Record<string, unknown>\n}\n\nconst listeners = new Set<(n: IslandNotification) => void>()\n\nexport const islandNotifications = {\n /** Raise a notification to all host subscribers. */\n emit(notification: IslandNotification): void {\n for (const l of listeners) {\n try {\n l(notification)\n } catch (err) {\n console.warn(`islandNotifications: listener threw: ${(err as Error)?.message ?? err}`)\n }\n }\n },\n /** Subscribe to engine notifications; returns an unsubscribe. */\n subscribe(cb: (n: IslandNotification) => void): () => void {\n listeners.add(cb)\n return () => {\n listeners.delete(cb)\n }\n },\n}\n"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type DownloadStage = "idle" | "downloading" | "extracting" | "complete" | "failed";
|
|
2
|
+
export interface DownloadStatus {
|
|
3
|
+
kind: "stt" | "tts";
|
|
4
|
+
languageCode: string;
|
|
5
|
+
stage: DownloadStage;
|
|
6
|
+
/** 0–100, only meaningful while stage is "downloading" or "extracting". */
|
|
7
|
+
percent: number;
|
|
8
|
+
}
|
|
9
|
+
type StatusListener = (status: DownloadStatus | null) => void;
|
|
10
|
+
declare class OfflineSpeechModelService {
|
|
11
|
+
private static instance;
|
|
12
|
+
private started;
|
|
13
|
+
private sttPromise;
|
|
14
|
+
private ttsPromise;
|
|
15
|
+
private currentStatus;
|
|
16
|
+
private listeners;
|
|
17
|
+
private constructor();
|
|
18
|
+
static getInstance(): OfflineSpeechModelService;
|
|
19
|
+
startBackgroundDownloads(): void;
|
|
20
|
+
/** Subscribe to background-download status changes. Fires immediately with current status. */
|
|
21
|
+
subscribe(listener: StatusListener): () => void;
|
|
22
|
+
getStatus(): DownloadStatus | null;
|
|
23
|
+
private setStatus;
|
|
24
|
+
ensureDefaultModels(): Promise<void>;
|
|
25
|
+
ensureSttModel(): Promise<void>;
|
|
26
|
+
ensureTtsModel(): Promise<void>;
|
|
27
|
+
private ensureSttModelInner;
|
|
28
|
+
private ensureTtsModelInner;
|
|
29
|
+
}
|
|
30
|
+
declare const offlineSpeechModelService: OfflineSpeechModelService;
|
|
31
|
+
export { OfflineSpeechModelService };
|
|
32
|
+
export default offlineSpeechModelService;
|
|
33
|
+
//# sourceMappingURL=OfflineSpeechModelService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OfflineSpeechModelService.d.ts","sourceRoot":"","sources":["../../src/services/OfflineSpeechModelService.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,aAAa,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAA;AAEzF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,KAAK,GAAG,KAAK,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,aAAa,CAAA;IACpB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAA;AAE7D,cAAM,yBAAyB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2B;IAClD,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,UAAU,CAA6B;IAE/C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,SAAS,CAA4B;IAE7C,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,yBAAyB;IAO/C,wBAAwB,IAAI,IAAI;IAoBhC,8FAA8F;IAC9F,SAAS,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,IAAI;IAQ/C,SAAS,IAAI,cAAc,GAAG,IAAI;IAIlC,OAAO,CAAC,SAAS;IAWX,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAepC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;YAQvB,mBAAmB;YA2BnB,mBAAmB;CA0BlC;AAED,QAAA,MAAM,yBAAyB,2BAA0C,CAAA;AACzE,OAAO,EAAC,yBAAyB,EAAC,CAAA;AAClC,eAAe,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
// import NetInfo from "@react-native-community/netinfo"
|
|
2
|
+
import STTModelManager from "./STTModelManager";
|
|
3
|
+
import TTSModelManager from "./TTSModelManager";
|
|
4
|
+
class OfflineSpeechModelService {
|
|
5
|
+
static instance;
|
|
6
|
+
started = false;
|
|
7
|
+
sttPromise = null;
|
|
8
|
+
ttsPromise = null;
|
|
9
|
+
currentStatus = null;
|
|
10
|
+
listeners = new Set();
|
|
11
|
+
constructor() { }
|
|
12
|
+
static getInstance() {
|
|
13
|
+
if (!OfflineSpeechModelService.instance) {
|
|
14
|
+
OfflineSpeechModelService.instance = new OfflineSpeechModelService();
|
|
15
|
+
}
|
|
16
|
+
return OfflineSpeechModelService.instance;
|
|
17
|
+
}
|
|
18
|
+
startBackgroundDownloads() {
|
|
19
|
+
if (this.started)
|
|
20
|
+
return;
|
|
21
|
+
this.started = true;
|
|
22
|
+
// Wi-Fi gate (currently disabled — uncomment to skip background downloads on cellular):
|
|
23
|
+
// NetInfo.fetch().then((state) => {
|
|
24
|
+
// if (state.type !== "wifi") {
|
|
25
|
+
// console.log("OFFLINE_MODELS: skipping background download — not on Wi-Fi")
|
|
26
|
+
// return
|
|
27
|
+
// }
|
|
28
|
+
// void this.ensureDefaultModels().catch((error) => {
|
|
29
|
+
// console.warn("OFFLINE_MODELS: background model setup failed:", error)
|
|
30
|
+
// })
|
|
31
|
+
// })
|
|
32
|
+
void this.ensureDefaultModels().catch((error) => {
|
|
33
|
+
console.warn("OFFLINE_MODELS: background model setup failed:", error);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/** Subscribe to background-download status changes. Fires immediately with current status. */
|
|
37
|
+
subscribe(listener) {
|
|
38
|
+
this.listeners.add(listener);
|
|
39
|
+
listener(this.currentStatus);
|
|
40
|
+
return () => {
|
|
41
|
+
this.listeners.delete(listener);
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
getStatus() {
|
|
45
|
+
return this.currentStatus;
|
|
46
|
+
}
|
|
47
|
+
setStatus(status) {
|
|
48
|
+
this.currentStatus = status;
|
|
49
|
+
for (const listener of this.listeners) {
|
|
50
|
+
try {
|
|
51
|
+
listener(status);
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
console.warn("OFFLINE_MODELS: status listener threw:", e);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async ensureDefaultModels() {
|
|
59
|
+
// Sequence STT then TTS so the home-screen banner shows one coherent
|
|
60
|
+
// progress at a time. STT first because it's the primary use case.
|
|
61
|
+
try {
|
|
62
|
+
await this.ensureSttModel();
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
console.warn("OFFLINE_MODELS: STT model setup failed:", error);
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
await this.ensureTtsModel();
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
console.warn("OFFLINE_MODELS: TTS model setup failed:", error);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async ensureSttModel() {
|
|
75
|
+
if (this.sttPromise)
|
|
76
|
+
return this.sttPromise;
|
|
77
|
+
this.sttPromise = this.ensureSttModelInner().finally(() => {
|
|
78
|
+
this.sttPromise = null;
|
|
79
|
+
});
|
|
80
|
+
return this.sttPromise;
|
|
81
|
+
}
|
|
82
|
+
async ensureTtsModel() {
|
|
83
|
+
if (this.ttsPromise)
|
|
84
|
+
return this.ttsPromise;
|
|
85
|
+
this.ttsPromise = this.ensureTtsModelInner().finally(() => {
|
|
86
|
+
this.ttsPromise = null;
|
|
87
|
+
});
|
|
88
|
+
return this.ttsPromise;
|
|
89
|
+
}
|
|
90
|
+
async ensureSttModelInner() {
|
|
91
|
+
const preferred = await STTModelManager.getCurrentLanguageFromPreferences();
|
|
92
|
+
const code = preferred || STTModelManager.getCurrentLanguage();
|
|
93
|
+
if (await STTModelManager.isModelAvailable(code)) {
|
|
94
|
+
await STTModelManager.activateLanguage(code);
|
|
95
|
+
console.log(`OFFLINE_MODELS: STT model ready: ${code}`);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
console.log(`OFFLINE_MODELS: downloading STT model in background: ${code}`);
|
|
99
|
+
this.setStatus({ kind: "stt", languageCode: code, stage: "downloading", percent: 0 });
|
|
100
|
+
try {
|
|
101
|
+
await STTModelManager.downloadModel(code, (p) => this.setStatus({ kind: "stt", languageCode: code, stage: "downloading", percent: p.percentage }), (p) => this.setStatus({ kind: "stt", languageCode: code, stage: "extracting", percent: p.percentage }));
|
|
102
|
+
await STTModelManager.activateLanguage(code);
|
|
103
|
+
this.setStatus({ kind: "stt", languageCode: code, stage: "complete", percent: 100 });
|
|
104
|
+
console.log(`OFFLINE_MODELS: STT model downloaded: ${code}`);
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
this.setStatus({ kind: "stt", languageCode: code, stage: "failed", percent: 0 });
|
|
108
|
+
throw error;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async ensureTtsModelInner() {
|
|
112
|
+
const preferred = await TTSModelManager.getCurrentLanguageFromPreferences();
|
|
113
|
+
const code = preferred || TTSModelManager.getCurrentLanguage();
|
|
114
|
+
if (await TTSModelManager.isModelAvailable(code)) {
|
|
115
|
+
await TTSModelManager.activateLanguage(code);
|
|
116
|
+
console.log(`OFFLINE_MODELS: TTS model ready: ${code}`);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
console.log(`OFFLINE_MODELS: downloading TTS model in background: ${code}`);
|
|
120
|
+
this.setStatus({ kind: "tts", languageCode: code, stage: "downloading", percent: 0 });
|
|
121
|
+
try {
|
|
122
|
+
await TTSModelManager.downloadModel(code, (p) => this.setStatus({ kind: "tts", languageCode: code, stage: "downloading", percent: p.percentage }), (p) => this.setStatus({ kind: "tts", languageCode: code, stage: "extracting", percent: p.percentage }));
|
|
123
|
+
await TTSModelManager.activateLanguage(code);
|
|
124
|
+
this.setStatus({ kind: "tts", languageCode: code, stage: "complete", percent: 100 });
|
|
125
|
+
console.log(`OFFLINE_MODELS: TTS model downloaded: ${code}`);
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
this.setStatus({ kind: "tts", languageCode: code, stage: "failed", percent: 0 });
|
|
129
|
+
throw error;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
const offlineSpeechModelService = OfflineSpeechModelService.getInstance();
|
|
134
|
+
export { OfflineSpeechModelService };
|
|
135
|
+
export default offlineSpeechModelService;
|
|
136
|
+
//# sourceMappingURL=OfflineSpeechModelService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OfflineSpeechModelService.js","sourceRoot":"","sources":["../../src/services/OfflineSpeechModelService.ts"],"names":[],"mappings":"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","sourcesContent":["// import NetInfo from \"@react-native-community/netinfo\"\n\nimport STTModelManager from \"./STTModelManager\"\nimport TTSModelManager from \"./TTSModelManager\"\n\nexport type DownloadStage = \"idle\" | \"downloading\" | \"extracting\" | \"complete\" | \"failed\"\n\nexport interface DownloadStatus {\n kind: \"stt\" | \"tts\"\n languageCode: string\n stage: DownloadStage\n /** 0–100, only meaningful while stage is \"downloading\" or \"extracting\". */\n percent: number\n}\n\ntype StatusListener = (status: DownloadStatus | null) => void\n\nclass OfflineSpeechModelService {\n private static instance: OfflineSpeechModelService\n private started = false\n private sttPromise: Promise<void> | null = null\n private ttsPromise: Promise<void> | null = null\n\n private currentStatus: DownloadStatus | null = null\n private listeners = new Set<StatusListener>()\n\n private constructor() {}\n\n static getInstance(): OfflineSpeechModelService {\n if (!OfflineSpeechModelService.instance) {\n OfflineSpeechModelService.instance = new OfflineSpeechModelService()\n }\n return OfflineSpeechModelService.instance\n }\n\n startBackgroundDownloads(): void {\n if (this.started) return\n this.started = true\n\n // Wi-Fi gate (currently disabled — uncomment to skip background downloads on cellular):\n // NetInfo.fetch().then((state) => {\n // if (state.type !== \"wifi\") {\n // console.log(\"OFFLINE_MODELS: skipping background download — not on Wi-Fi\")\n // return\n // }\n // void this.ensureDefaultModels().catch((error) => {\n // console.warn(\"OFFLINE_MODELS: background model setup failed:\", error)\n // })\n // })\n\n void this.ensureDefaultModels().catch((error) => {\n console.warn(\"OFFLINE_MODELS: background model setup failed:\", error)\n })\n }\n\n /** Subscribe to background-download status changes. Fires immediately with current status. */\n subscribe(listener: StatusListener): () => void {\n this.listeners.add(listener)\n listener(this.currentStatus)\n return () => {\n this.listeners.delete(listener)\n }\n }\n\n getStatus(): DownloadStatus | null {\n return this.currentStatus\n }\n\n private setStatus(status: DownloadStatus | null): void {\n this.currentStatus = status\n for (const listener of this.listeners) {\n try {\n listener(status)\n } catch (e) {\n console.warn(\"OFFLINE_MODELS: status listener threw:\", e)\n }\n }\n }\n\n async ensureDefaultModels(): Promise<void> {\n // Sequence STT then TTS so the home-screen banner shows one coherent\n // progress at a time. STT first because it's the primary use case.\n try {\n await this.ensureSttModel()\n } catch (error) {\n console.warn(\"OFFLINE_MODELS: STT model setup failed:\", error)\n }\n try {\n await this.ensureTtsModel()\n } catch (error) {\n console.warn(\"OFFLINE_MODELS: TTS model setup failed:\", error)\n }\n }\n\n async ensureSttModel(): Promise<void> {\n if (this.sttPromise) return this.sttPromise\n this.sttPromise = this.ensureSttModelInner().finally(() => {\n this.sttPromise = null\n })\n return this.sttPromise\n }\n\n async ensureTtsModel(): Promise<void> {\n if (this.ttsPromise) return this.ttsPromise\n this.ttsPromise = this.ensureTtsModelInner().finally(() => {\n this.ttsPromise = null\n })\n return this.ttsPromise\n }\n\n private async ensureSttModelInner(): Promise<void> {\n const preferred = await STTModelManager.getCurrentLanguageFromPreferences()\n const code = preferred || STTModelManager.getCurrentLanguage()\n\n if (await STTModelManager.isModelAvailable(code)) {\n await STTModelManager.activateLanguage(code)\n console.log(`OFFLINE_MODELS: STT model ready: ${code}`)\n return\n }\n\n console.log(`OFFLINE_MODELS: downloading STT model in background: ${code}`)\n this.setStatus({kind: \"stt\", languageCode: code, stage: \"downloading\", percent: 0})\n try {\n await STTModelManager.downloadModel(\n code,\n (p) => this.setStatus({kind: \"stt\", languageCode: code, stage: \"downloading\", percent: p.percentage}),\n (p) => this.setStatus({kind: \"stt\", languageCode: code, stage: \"extracting\", percent: p.percentage}),\n )\n await STTModelManager.activateLanguage(code)\n this.setStatus({kind: \"stt\", languageCode: code, stage: \"complete\", percent: 100})\n console.log(`OFFLINE_MODELS: STT model downloaded: ${code}`)\n } catch (error) {\n this.setStatus({kind: \"stt\", languageCode: code, stage: \"failed\", percent: 0})\n throw error\n }\n }\n\n private async ensureTtsModelInner(): Promise<void> {\n const preferred = await TTSModelManager.getCurrentLanguageFromPreferences()\n const code = preferred || TTSModelManager.getCurrentLanguage()\n\n if (await TTSModelManager.isModelAvailable(code)) {\n await TTSModelManager.activateLanguage(code)\n console.log(`OFFLINE_MODELS: TTS model ready: ${code}`)\n return\n }\n\n console.log(`OFFLINE_MODELS: downloading TTS model in background: ${code}`)\n this.setStatus({kind: \"tts\", languageCode: code, stage: \"downloading\", percent: 0})\n try {\n await TTSModelManager.downloadModel(\n code,\n (p) => this.setStatus({kind: \"tts\", languageCode: code, stage: \"downloading\", percent: p.percentage}),\n (p) => this.setStatus({kind: \"tts\", languageCode: code, stage: \"extracting\", percent: p.percentage}),\n )\n await TTSModelManager.activateLanguage(code)\n this.setStatus({kind: \"tts\", languageCode: code, stage: \"complete\", percent: 100})\n console.log(`OFFLINE_MODELS: TTS model downloaded: ${code}`)\n } catch (error) {\n this.setStatus({kind: \"tts\", languageCode: code, stage: \"failed\", percent: 0})\n throw error\n }\n }\n}\n\nconst offlineSpeechModelService = OfflineSpeechModelService.getInstance()\nexport {OfflineSpeechModelService}\nexport default offlineSpeechModelService\n"]}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import type { OtaProgress, OtaStatus } from "@mentra/bluetooth-sdk/internal";
|
|
2
|
+
import { type DisplayState } from "./otaDisplayState";
|
|
3
|
+
/** Read model the host progress screen renders from. */
|
|
4
|
+
export interface OtaInstallSnapshot {
|
|
5
|
+
displayState: DisplayState;
|
|
6
|
+
errorMsg: string;
|
|
7
|
+
continueButtonDisabled: boolean;
|
|
8
|
+
connected: boolean;
|
|
9
|
+
otaStatus: OtaStatus | null;
|
|
10
|
+
otaProgress: OtaProgress | null;
|
|
11
|
+
/**
|
|
12
|
+
* Display-only simulated percent for legacy (< 37) MTK install stalls (WP 8C-e), or
|
|
13
|
+
* null. The MTK system install goes quiet around 49-50%; the legacy screen simulated
|
|
14
|
+
* +1% ticks up to 60% purely to reassure the user. Render max(real, simulated).
|
|
15
|
+
*/
|
|
16
|
+
mtkInstallStallSimulatedPercent: number | null;
|
|
17
|
+
}
|
|
18
|
+
declare class OtaInstallCoordinator {
|
|
19
|
+
private attached;
|
|
20
|
+
private errorMsg;
|
|
21
|
+
private sawReconnectEdge;
|
|
22
|
+
private continueButtonDisabled;
|
|
23
|
+
private apkStepSeen;
|
|
24
|
+
private prevConnected;
|
|
25
|
+
private initialBuildNumber;
|
|
26
|
+
private apkExpectedInSession;
|
|
27
|
+
private apkCompletedViaBuildIncrease;
|
|
28
|
+
private legacyApkSettleHold;
|
|
29
|
+
private mtkSimulatedPercent;
|
|
30
|
+
private lastRealMtkProgress;
|
|
31
|
+
private globalTimeout;
|
|
32
|
+
private globalTimeoutStarted;
|
|
33
|
+
private retryTimeout;
|
|
34
|
+
private stuckTimeout;
|
|
35
|
+
private progressTimeout;
|
|
36
|
+
private postApkDelay;
|
|
37
|
+
private pingInterval;
|
|
38
|
+
private queryReplyTimeout;
|
|
39
|
+
private continueLockoutTimer;
|
|
40
|
+
private legacyApkSettleTimer;
|
|
41
|
+
private mtkStallDetectTimer;
|
|
42
|
+
private mtkSimTickTimer;
|
|
43
|
+
private hasReceivedAck;
|
|
44
|
+
private hasFirstActivity;
|
|
45
|
+
private hasFirstNonZeroProgress;
|
|
46
|
+
private retryCount;
|
|
47
|
+
private prevDisplayState;
|
|
48
|
+
private lastConnected;
|
|
49
|
+
private lastOtaStatus;
|
|
50
|
+
private lastOtaProgress;
|
|
51
|
+
private lastBuildNumber;
|
|
52
|
+
private lastDisplayState;
|
|
53
|
+
private lastStallSig;
|
|
54
|
+
private reacting;
|
|
55
|
+
private reactQueued;
|
|
56
|
+
private storeUnsubscribe;
|
|
57
|
+
private snapshotCheckers;
|
|
58
|
+
/**
|
|
59
|
+
* Bind the state machine to a mounted progress screen. Idempotent per
|
|
60
|
+
* attach/detach cycle. Runs the initial-mount arbitration (send ota_start
|
|
61
|
+
* when connected with no session; otherwise ota_query_status + reply
|
|
62
|
+
* fallback) and starts reacting to store changes + BLE OTA events.
|
|
63
|
+
*/
|
|
64
|
+
attach(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Unbind on screen unmount: clears ALL timers/subscriptions/listeners and
|
|
67
|
+
* resets the session-local state (the old component state died with the
|
|
68
|
+
* component) so a re-attach is a fresh session.
|
|
69
|
+
*/
|
|
70
|
+
detach(): void;
|
|
71
|
+
/** Retry after a failure: clear state and re-send ota_start (if connected). */
|
|
72
|
+
retry(): void;
|
|
73
|
+
/**
|
|
74
|
+
* Terminal-state cleanup half of the old Continue/Done handlers (navigation
|
|
75
|
+
* stays in the screen): clear the selected update, and after an APK step
|
|
76
|
+
* clear the stale build number so the next check re-reads version_info.
|
|
77
|
+
*/
|
|
78
|
+
finish(): void;
|
|
79
|
+
/**
|
|
80
|
+
* Abandon an interrupted session (the super-mode skip): terminal cleanup
|
|
81
|
+
* plus dropping the session's status/progress read-state, so
|
|
82
|
+
* deriveDisplayState doesn't resurrect the stale install when the host
|
|
83
|
+
* navigates away and back through /ota routes.
|
|
84
|
+
*/
|
|
85
|
+
discard(): void;
|
|
86
|
+
snapshot(): OtaInstallSnapshot;
|
|
87
|
+
/**
|
|
88
|
+
* Subscribe to install snapshot changes, deduped on the projected JSON.
|
|
89
|
+
* Fires on glasses-store changes AND coordinator-internal state changes
|
|
90
|
+
* (errorMsg / reconnect edge / continue lockout). Returns an unsubscribe.
|
|
91
|
+
*/
|
|
92
|
+
onSnapshot(cb: (snapshot: OtaInstallSnapshot) => void): () => void;
|
|
93
|
+
private resetSessionState;
|
|
94
|
+
/** Notify snapshot subscribers of a coordinator-internal state change. */
|
|
95
|
+
private emitInternalChange;
|
|
96
|
+
private setErrorMsg;
|
|
97
|
+
private setSawReconnectEdge;
|
|
98
|
+
private setContinueButtonDisabled;
|
|
99
|
+
private setApkCompletedViaBuildIncrease;
|
|
100
|
+
private setLegacyApkSettleHold;
|
|
101
|
+
/** Display-only (WP 8C-e): notifies snapshot subscribers but never queues a reaction pass. */
|
|
102
|
+
private setMtkSimulatedPercent;
|
|
103
|
+
/**
|
|
104
|
+
* Legacy-session shape (WP 8C): event shape wins once events exist; before any event
|
|
105
|
+
* only the session-start build number can tell (falls back to the live build number
|
|
106
|
+
* until it is captured). Old builds get the LEGACY_* padded policy durations.
|
|
107
|
+
*/
|
|
108
|
+
private isLegacySessionShapeNow;
|
|
109
|
+
private react;
|
|
110
|
+
/**
|
|
111
|
+
* One reaction pass = one render + its changed-dep effects of the old
|
|
112
|
+
* component, in the old declaration order.
|
|
113
|
+
*/
|
|
114
|
+
private runPass;
|
|
115
|
+
private runConnectEdge;
|
|
116
|
+
private readonly handleAck;
|
|
117
|
+
private readonly handleMtkComplete;
|
|
118
|
+
/**
|
|
119
|
+
* Reacts to a NEW legacy-shaped install-phase "complete" (an old build's
|
|
120
|
+
* `install FINISHED`). Two ports from the legacy screen:
|
|
121
|
+
* - last-write-wins: completion arriving after a watchdog failure overrides it
|
|
122
|
+
* (the old screen completed from "failed" too);
|
|
123
|
+
* - apk settle window: an apk install FINISHED observed in flight is held out of
|
|
124
|
+
* "complete" for LEGACY_APK_COMPLETION_SETTLE_MS so the ASG process restart
|
|
125
|
+
* settles (and fresh version_info lands) before the user can continue. From
|
|
126
|
+
* starting/failed (post-reboot explicit signal) completion is immediate.
|
|
127
|
+
*/
|
|
128
|
+
private handleLegacyInstallCompleteEdge;
|
|
129
|
+
/**
|
|
130
|
+
* Legacy MTK install stall simulation (WP 8C-e), ported verbatim: the MTK system
|
|
131
|
+
* install typically stalls around 49-50%. Every real event restarts stall detection;
|
|
132
|
+
* after LEGACY_MTK_STALL_DETECT_MS of silence inside the [45, 55) zone, simulate +1%
|
|
133
|
+
* every LEGACY_MTK_SIM_TICK_MS from max(stall+1, 51), capped at 60. Real progress
|
|
134
|
+
* beyond the simulated value clears it. Display-only by construction: the timers call
|
|
135
|
+
* only {@link setMtkSimulatedPercent}, which never queues a reaction pass.
|
|
136
|
+
*/
|
|
137
|
+
private runMtkStallSimulationPass;
|
|
138
|
+
/**
|
|
139
|
+
* Read the current derived display state from the store + internal state
|
|
140
|
+
* synchronously — used inside setTimeout callbacks.
|
|
141
|
+
*/
|
|
142
|
+
private computeDisplayStateNow;
|
|
143
|
+
/**
|
|
144
|
+
* "Glasses are talking to us" — clears the no-ack retry watchdog only.
|
|
145
|
+
* Important: this does NOT clear the stuck-at-zero watchdog; that one fires
|
|
146
|
+
* on real progress > 0% (see {@link onFirstNonZeroProgress}).
|
|
147
|
+
*/
|
|
148
|
+
private onFirstActivity;
|
|
149
|
+
/**
|
|
150
|
+
* "Real download progress arrived" — clears the stuck-at-zero watchdog. We
|
|
151
|
+
* deliberately wait for non-zero progress before clearing this so that an
|
|
152
|
+
* ota_status reply with stepPercent: 0 (which is "first activity" but not
|
|
153
|
+
* "real progress") doesn't disable the only watchdog that catches a wedged
|
|
154
|
+
* download.
|
|
155
|
+
*/
|
|
156
|
+
private onFirstNonZeroProgress;
|
|
157
|
+
private maybeStartGlobalTimeout;
|
|
158
|
+
private armAckAndStuckWatchdogsOnly;
|
|
159
|
+
private sendOtaStartWithWatchdogs;
|
|
160
|
+
/**
|
|
161
|
+
* After sending ota_query_status, wait QUERY_REPLY_TIMEOUT_MS for the glasses
|
|
162
|
+
* to reply with a useful ota_status. If nothing arrives (e.g. the glasses'
|
|
163
|
+
* OTA session was wiped between mount and reconnect), or the glasses reply
|
|
164
|
+
* with an explicit "idle" status (no session), fall back to ota_start so the
|
|
165
|
+
* user doesn't sit on a spinner forever.
|
|
166
|
+
*
|
|
167
|
+
* Cleared as soon as a non-idle otaStatus or any otaProgress lands in the
|
|
168
|
+
* store (see the reaction block above). An idle reply intentionally does NOT
|
|
169
|
+
* cancel the fallback, so reconnects against a wiped/lost session still recover.
|
|
170
|
+
*/
|
|
171
|
+
private armQueryReplyFallback;
|
|
172
|
+
private clearProgressTimeout;
|
|
173
|
+
private clearRetryTimeout;
|
|
174
|
+
private clearStuckTimeout;
|
|
175
|
+
private clearGlobalTimeout;
|
|
176
|
+
private clearPostApkDelay;
|
|
177
|
+
private clearPingInterval;
|
|
178
|
+
private clearQueryReplyTimeout;
|
|
179
|
+
private clearContinueLockoutTimer;
|
|
180
|
+
private clearLegacyApkSettleTimer;
|
|
181
|
+
private clearMtkSimulationTimers;
|
|
182
|
+
/**
|
|
183
|
+
* NOTE (WP 8C): the legacy apk settle timer and the MTK stall simulation timers are
|
|
184
|
+
* deliberately NOT per-step watchdogs — a per-step failure must not kill them (the
|
|
185
|
+
* legacy screen kept the simulation ticking through a watchdog failure, and the
|
|
186
|
+
* settle latch resolves completion, not liveness). They are cleared on detach,
|
|
187
|
+
* retry(), global timeout, and their own supersession paths.
|
|
188
|
+
*/
|
|
189
|
+
private clearPerStepTimers;
|
|
190
|
+
private clearAllOtaTimers;
|
|
191
|
+
}
|
|
192
|
+
/** Singleton — one install session machine per app process (matches the single progress screen). */
|
|
193
|
+
export declare const otaInstallCoordinator: OtaInstallCoordinator;
|
|
194
|
+
export {};
|
|
195
|
+
//# sourceMappingURL=OtaInstallCoordinator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OtaInstallCoordinator.d.ts","sourceRoot":"","sources":["../../src/services/OtaInstallCoordinator.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAC,WAAW,EAAE,SAAS,EAAC,MAAM,gCAAgC,CAAA;AAI1E,OAAO,EAAqB,KAAK,YAAY,EAAC,MAAM,mBAAmB,CAAA;AA+FvE,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,YAAY,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,sBAAsB,EAAE,OAAO,CAAA;IAC/B,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B;;;;OAIG;IACH,+BAA+B,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/C;AAED,cAAM,qBAAqB;IACzB,OAAO,CAAC,QAAQ,CAAQ;IAGxB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,sBAAsB,CAAQ;IAItC,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,aAAa,CAAQ;IAK7B,OAAO,CAAC,kBAAkB,CAAsB;IAEhD,OAAO,CAAC,oBAAoB,CAAQ;IAEpC,OAAO,CAAC,4BAA4B,CAAQ;IAE5C,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,mBAAmB,CAAI;IAG/B,OAAO,CAAC,aAAa,CAA6C;IAClE,OAAO,CAAC,oBAAoB,CAAQ;IACpC,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,eAAe,CAA6C;IACpE,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,iBAAiB,CAA6C;IACtE,OAAO,CAAC,oBAAoB,CAA6C;IACzE,OAAO,CAAC,oBAAoB,CAA6C;IACzE,OAAO,CAAC,mBAAmB,CAA6C;IACxE,OAAO,CAAC,eAAe,CAA8C;IAGrE,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,gBAAgB,CAAQ;IAGhC,OAAO,CAAC,uBAAuB,CAAQ;IACvC,OAAO,CAAC,UAAU,CAAI;IAGtB,OAAO,CAAC,gBAAgB,CAA4B;IAGpD,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,YAAY,CAAK;IAIzB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,WAAW,CAAQ;IAE3B,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,gBAAgB,CAAwB;IAIhD;;;;;OAKG;IACH,MAAM,IAAI,IAAI;IAoBd;;;;OAIG;IACH,MAAM,IAAI,IAAI;IAcd,+EAA+E;IAC/E,KAAK,IAAI,IAAI;IA+Bb;;;;OAIG;IACH,MAAM,IAAI,IAAI;IAQd;;;;;OAKG;IACH,OAAO,IAAI,IAAI;IAOf,QAAQ,IAAI,kBAAkB;IAyB9B;;;;OAIG;IACH,UAAU,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,GAAG,MAAM,IAAI;IAmBlE,OAAO,CAAC,iBAAiB;IA2BzB,0EAA0E;IAC1E,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,+BAA+B;IAOvC,OAAO,CAAC,sBAAsB;IAO9B,8FAA8F;IAC9F,OAAO,CAAC,sBAAsB;IAM9B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,KAAK;IAiBb;;;OAGG;IACH,OAAO,CAAC,OAAO;IA2Pf,OAAO,CAAC,cAAc;IAgFtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAKzB;IAED,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAOjC;IAID;;;;;;;;;OASG;IACH,OAAO,CAAC,+BAA+B;IAgCvC;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;IAqDjC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAMvB;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,uBAAuB;IAsB/B,OAAO,CAAC,2BAA2B;YA8CrB,yBAAyB;IA6BvC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,qBAAqB;IAgC7B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,wBAAwB;IAWhC;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,iBAAiB;CAO1B;AAED,oGAAoG;AACpG,eAAO,MAAM,qBAAqB,uBAA8B,CAAA"}
|