@glassly/engine 0.1.0-dev.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 +96 -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 +336 -0
- package/build/engine.d.ts.map +1 -0
- package/build/engine.js +198 -0
- package/build/engine.js.map +1 -0
- package/build/facades/dev.d.ts +69 -0
- package/build/facades/dev.d.ts.map +1 -0
- package/build/facades/dev.js +204 -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 +142 -0
- package/build/facades/glasses.d.ts.map +1 -0
- package/build/facades/glasses.js +214 -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 +55 -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/maps.d.ts +18 -0
- package/build/facades/maps.d.ts.map +1 -0
- package/build/facades/maps.js +13 -0
- package/build/facades/maps.js.map +1 -0
- package/build/facades/memory.d.ts +38 -0
- package/build/facades/memory.d.ts.map +1 -0
- package/build/facades/memory.js +33 -0
- package/build/facades/memory.js.map +1 -0
- package/build/facades/miniapps.d.ts +47 -0
- package/build/facades/miniapps.d.ts.map +1 -0
- package/build/facades/miniapps.js +54 -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 +106 -0
- package/build/facades/ota.d.ts.map +1 -0
- package/build/facades/ota.js +159 -0
- package/build/facades/ota.js.map +1 -0
- package/build/facades/pairing.d.ts +115 -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 +17 -0
- package/build/facades/phoneNotifications.d.ts.map +1 -0
- package/build/facades/phoneNotifications.js +41 -0
- package/build/facades/phoneNotifications.js.map +1 -0
- package/build/facades/providerKeys.d.ts +26 -0
- package/build/facades/providerKeys.d.ts.map +1 -0
- package/build/facades/providerKeys.js +26 -0
- package/build/facades/providerKeys.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/speakers.d.ts +41 -0
- package/build/facades/speakers.d.ts.map +1 -0
- package/build/facades/speakers.js +139 -0
- package/build/facades/speakers.js.map +1 -0
- package/build/facades/speech.d.ts +44 -0
- package/build/facades/speech.d.ts.map +1 -0
- package/build/facades/speech.js +46 -0
- package/build/facades/speech.js.map +1 -0
- package/build/index.d.ts +48 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +49 -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 +115 -0
- package/build/runtime/bootstrap.d.ts.map +1 -0
- package/build/runtime/bootstrap.js +73 -0
- package/build/runtime/bootstrap.js.map +1 -0
- package/build/runtime/config.d.ts +152 -0
- package/build/runtime/config.d.ts.map +1 -0
- package/build/runtime/config.js +19 -0
- package/build/runtime/config.js.map +1 -0
- package/build/runtime/scanQrSeam.d.ts +7 -0
- package/build/runtime/scanQrSeam.d.ts.map +1 -0
- package/build/runtime/scanQrSeam.js +16 -0
- package/build/runtime/scanQrSeam.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/AiTierResolution.d.ts +61 -0
- package/build/services/AiTierResolution.d.ts.map +1 -0
- package/build/services/AiTierResolution.js +83 -0
- package/build/services/AiTierResolution.js.map +1 -0
- package/build/services/AppRegistry.d.ts +303 -0
- package/build/services/AppRegistry.d.ts.map +1 -0
- package/build/services/AppRegistry.js +1108 -0
- package/build/services/AppRegistry.js.map +1 -0
- package/build/services/AudioCloudUplink.d.ts +15 -0
- package/build/services/AudioCloudUplink.d.ts.map +1 -0
- package/build/services/AudioCloudUplink.js +54 -0
- package/build/services/AudioCloudUplink.js.map +1 -0
- package/build/services/AudioPlaybackService.d.ts +183 -0
- package/build/services/AudioPlaybackService.d.ts.map +1 -0
- package/build/services/AudioPlaybackService.js +750 -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 +106 -0
- package/build/services/BlobStore.d.ts.map +1 -0
- package/build/services/BlobStore.js +741 -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 +51 -0
- package/build/services/CloudAudioSubscriptionSync.js.map +1 -0
- package/build/services/CloudClientService.d.ts +293 -0
- package/build/services/CloudClientService.d.ts.map +1 -0
- package/build/services/CloudClientService.js +965 -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 +296 -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 +214 -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/ForegroundLocationPermission.d.ts +13 -0
- package/build/services/ForegroundLocationPermission.d.ts.map +1 -0
- package/build/services/ForegroundLocationPermission.js +12 -0
- package/build/services/ForegroundLocationPermission.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 +127 -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 +33 -0
- package/build/services/HeadingService.d.ts.map +1 -0
- package/build/services/HeadingService.js +123 -0
- package/build/services/HeadingService.js.map +1 -0
- package/build/services/HotspotOtaTransport.d.ts +29 -0
- package/build/services/HotspotOtaTransport.d.ts.map +1 -0
- package/build/services/HotspotOtaTransport.js +146 -0
- package/build/services/HotspotOtaTransport.js.map +1 -0
- package/build/services/HotspotShutdown.d.ts +17 -0
- package/build/services/HotspotShutdown.d.ts.map +1 -0
- package/build/services/HotspotShutdown.js +29 -0
- package/build/services/HotspotShutdown.js.map +1 -0
- package/build/services/JSCrashController.d.ts +97 -0
- package/build/services/JSCrashController.d.ts.map +1 -0
- package/build/services/JSCrashController.js +138 -0
- package/build/services/JSCrashController.js.map +1 -0
- package/build/services/JSCrashloopReportService.d.ts +9 -0
- package/build/services/JSCrashloopReportService.d.ts.map +1 -0
- package/build/services/JSCrashloopReportService.js +54 -0
- package/build/services/JSCrashloopReportService.js.map +1 -0
- package/build/services/JSLogPipeline.d.ts +87 -0
- package/build/services/JSLogPipeline.d.ts.map +1 -0
- package/build/services/JSLogPipeline.js +137 -0
- package/build/services/JSLogPipeline.js.map +1 -0
- package/build/services/JSRouter.d.ts +203 -0
- package/build/services/JSRouter.d.ts.map +1 -0
- package/build/services/JSRouter.js +482 -0
- package/build/services/JSRouter.js.map +1 -0
- package/build/services/LocalDisplayManager.d.ts +162 -0
- package/build/services/LocalDisplayManager.d.ts.map +1 -0
- package/build/services/LocalDisplayManager.js +687 -0
- package/build/services/LocalDisplayManager.js.map +1 -0
- package/build/services/LocalMiniappDataMigration.d.ts +46 -0
- package/build/services/LocalMiniappDataMigration.d.ts.map +1 -0
- package/build/services/LocalMiniappDataMigration.js +78 -0
- package/build/services/LocalMiniappDataMigration.js.map +1 -0
- package/build/services/LocalMiniappRuntime.d.ts +677 -0
- package/build/services/LocalMiniappRuntime.d.ts.map +1 -0
- package/build/services/LocalMiniappRuntime.js +5068 -0
- package/build/services/LocalMiniappRuntime.js.map +1 -0
- package/build/services/LocalMiniappStorage.d.ts +32 -0
- package/build/services/LocalMiniappStorage.d.ts.map +1 -0
- package/build/services/LocalMiniappStorage.js +66 -0
- package/build/services/LocalMiniappStorage.js.map +1 -0
- package/build/services/LocalMiniappUserIdentity.d.ts +41 -0
- package/build/services/LocalMiniappUserIdentity.d.ts.map +1 -0
- package/build/services/LocalMiniappUserIdentity.js +73 -0
- package/build/services/LocalMiniappUserIdentity.js.map +1 -0
- package/build/services/LocalSttFallbackCoordinator.d.ts +101 -0
- package/build/services/LocalSttFallbackCoordinator.d.ts.map +1 -0
- package/build/services/LocalSttFallbackCoordinator.js +210 -0
- package/build/services/LocalSttFallbackCoordinator.js.map +1 -0
- package/build/services/MapboxTokenService.d.ts +33 -0
- package/build/services/MapboxTokenService.d.ts.map +1 -0
- package/build/services/MapboxTokenService.js +115 -0
- package/build/services/MapboxTokenService.js.map +1 -0
- package/build/services/MemoryCapture.d.ts +40 -0
- package/build/services/MemoryCapture.d.ts.map +1 -0
- package/build/services/MemoryCapture.js +42 -0
- package/build/services/MemoryCapture.js.map +1 -0
- package/build/services/MemoryStore.d.ts +184 -0
- package/build/services/MemoryStore.d.ts.map +1 -0
- package/build/services/MemoryStore.js +541 -0
- package/build/services/MemoryStore.js.map +1 -0
- package/build/services/MicStateCoordinator.d.ts +78 -0
- package/build/services/MicStateCoordinator.d.ts.map +1 -0
- package/build/services/MicStateCoordinator.js +219 -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 +127 -0
- package/build/services/MiniappLauncher.d.ts.map +1 -0
- package/build/services/MiniappLauncher.js +309 -0
- package/build/services/MiniappLauncher.js.map +1 -0
- package/build/services/MiniappLiveness.d.ts +12 -0
- package/build/services/MiniappLiveness.d.ts.map +1 -0
- package/build/services/MiniappLiveness.js +16 -0
- package/build/services/MiniappLiveness.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/NativeNavigationService.d.ts +51 -0
- package/build/services/NativeNavigationService.d.ts.map +1 -0
- package/build/services/NativeNavigationService.js +154 -0
- package/build/services/NativeNavigationService.js.map +1 -0
- package/build/services/NavigationHandlers.d.ts +107 -0
- package/build/services/NavigationHandlers.d.ts.map +1 -0
- package/build/services/NavigationHandlers.js +479 -0
- package/build/services/NavigationHandlers.js.map +1 -0
- package/build/services/NavigationService.d.ts +283 -0
- package/build/services/NavigationService.d.ts.map +1 -0
- package/build/services/NavigationService.js +696 -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/OtaArtifactDownloader.d.ts +65 -0
- package/build/services/OtaArtifactDownloader.d.ts.map +1 -0
- package/build/services/OtaArtifactDownloader.js +226 -0
- package/build/services/OtaArtifactDownloader.js.map +1 -0
- package/build/services/OtaInstallCoordinator.d.ts +275 -0
- package/build/services/OtaInstallCoordinator.d.ts.map +1 -0
- package/build/services/OtaInstallCoordinator.js +1491 -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 +72 -0
- package/build/services/OtaService.js.map +1 -0
- package/build/services/OtaUpdateCheckService.d.ts +100 -0
- package/build/services/OtaUpdateCheckService.d.ts.map +1 -0
- package/build/services/OtaUpdateCheckService.js +380 -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 +45 -0
- package/build/services/PhoneCalendarService.js.map +1 -0
- package/build/services/PhoneCameraFovCoordinator.d.ts +30 -0
- package/build/services/PhoneCameraFovCoordinator.d.ts.map +1 -0
- package/build/services/PhoneCameraFovCoordinator.js +194 -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 +37 -0
- package/build/services/PhoneNotificationsSync.js.map +1 -0
- package/build/services/PhonePhotoCoordinator.d.ts +110 -0
- package/build/services/PhonePhotoCoordinator.d.ts.map +1 -0
- package/build/services/PhonePhotoCoordinator.js +344 -0
- package/build/services/PhonePhotoCoordinator.js.map +1 -0
- package/build/services/PhoneStreamCoordinator.d.ts +175 -0
- package/build/services/PhoneStreamCoordinator.d.ts.map +1 -0
- package/build/services/PhoneStreamCoordinator.js +740 -0
- package/build/services/PhoneStreamCoordinator.js.map +1 -0
- package/build/services/PhoneVideoCoordinator.d.ts +52 -0
- package/build/services/PhoneVideoCoordinator.d.ts.map +1 -0
- package/build/services/PhoneVideoCoordinator.js +157 -0
- package/build/services/PhoneVideoCoordinator.js.map +1 -0
- package/build/services/ProviderKeyValidation.d.ts +27 -0
- package/build/services/ProviderKeyValidation.d.ts.map +1 -0
- package/build/services/ProviderKeyValidation.js +42 -0
- package/build/services/ProviderKeyValidation.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 +366 -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 +274 -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/SpeakerIdModelManager.d.ts +36 -0
- package/build/services/SpeakerIdModelManager.d.ts.map +1 -0
- package/build/services/SpeakerIdModelManager.js +132 -0
- package/build/services/SpeakerIdModelManager.js.map +1 -0
- package/build/services/SpeakerIdSync.d.ts +14 -0
- package/build/services/SpeakerIdSync.d.ts.map +1 -0
- package/build/services/SpeakerIdSync.js +62 -0
- package/build/services/SpeakerIdSync.js.map +1 -0
- package/build/services/SpeakerLabelResolver.d.ts +80 -0
- package/build/services/SpeakerLabelResolver.d.ts.map +1 -0
- package/build/services/SpeakerLabelResolver.js +108 -0
- package/build/services/SpeakerLabelResolver.js.map +1 -0
- package/build/services/SpeakerProfileStore.d.ts +90 -0
- package/build/services/SpeakerProfileStore.d.ts.map +1 -0
- package/build/services/SpeakerProfileStore.js +213 -0
- package/build/services/SpeakerProfileStore.js.map +1 -0
- package/build/services/SpeakerSegmentResolver.d.ts +87 -0
- package/build/services/SpeakerSegmentResolver.d.ts.map +1 -0
- package/build/services/SpeakerSegmentResolver.js +137 -0
- package/build/services/SpeakerSegmentResolver.js.map +1 -0
- package/build/services/StreamLifecycleController.d.ts +63 -0
- package/build/services/StreamLifecycleController.d.ts.map +1 -0
- package/build/services/StreamLifecycleController.js +148 -0
- package/build/services/StreamLifecycleController.js.map +1 -0
- package/build/services/SupportProfileSync.d.ts +22 -0
- package/build/services/SupportProfileSync.d.ts.map +1 -0
- package/build/services/SupportProfileSync.js +213 -0
- package/build/services/SupportProfileSync.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 +22 -0
- package/build/services/TranscriptionRouting.d.ts.map +1 -0
- package/build/services/TranscriptionRouting.js +34 -0
- package/build/services/TranscriptionRouting.js.map +1 -0
- package/build/services/TtsTextSanitizer.d.ts +5 -0
- package/build/services/TtsTextSanitizer.d.ts.map +1 -0
- package/build/services/TtsTextSanitizer.js +61 -0
- package/build/services/TtsTextSanitizer.js.map +1 -0
- package/build/services/UIRouter.d.ts +137 -0
- package/build/services/UIRouter.d.ts.map +1 -0
- package/build/services/UIRouter.js +210 -0
- package/build/services/UIRouter.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/WifiAdbRequest.d.ts +17 -0
- package/build/services/WifiAdbRequest.d.ts.map +1 -0
- package/build/services/WifiAdbRequest.js +35 -0
- package/build/services/WifiAdbRequest.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 +208 -0
- package/build/services/asg/asgCameraApi.d.ts.map +1 -0
- package/build/services/asg/asgCameraApi.js +1480 -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 +1945 -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/audioPlaybackAssets.d.ts +8 -0
- package/build/services/audioPlaybackAssets.d.ts.map +1 -0
- package/build/services/audioPlaybackAssets.js +7 -0
- package/build/services/audioPlaybackAssets.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/effectiveCapabilities.d.ts +8 -0
- package/build/services/effectiveCapabilities.d.ts.map +1 -0
- package/build/services/effectiveCapabilities.js +23 -0
- package/build/services/effectiveCapabilities.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/manifestActions.d.ts +31 -0
- package/build/services/manifestActions.d.ts.map +1 -0
- package/build/services/manifestActions.js +54 -0
- package/build/services/manifestActions.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/memoryStoreInstance.d.ts +19 -0
- package/build/services/memoryStoreInstance.d.ts.map +1 -0
- package/build/services/memoryStoreInstance.js +65 -0
- package/build/services/memoryStoreInstance.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 +87 -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 +53 -0
- package/build/services/otaDisplayState.d.ts.map +1 -0
- package/build/services/otaDisplayState.js +114 -0
- package/build/services/otaDisplayState.js.map +1 -0
- package/build/services/otaInstallPolicy.d.ts +93 -0
- package/build/services/otaInstallPolicy.d.ts.map +1 -0
- package/build/services/otaInstallPolicy.js +117 -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/otaManifestUrl.d.ts +2 -0
- package/build/services/otaManifestUrl.d.ts.map +1 -0
- package/build/services/otaManifestUrl.js +46 -0
- package/build/services/otaManifestUrl.js.map +1 -0
- package/build/services/slimStreamStatus.d.ts +18 -0
- package/build/services/slimStreamStatus.d.ts.map +1 -0
- package/build/services/slimStreamStatus.js +36 -0
- package/build/services/slimStreamStatus.js.map +1 -0
- package/build/services/soniox/SonioxDirectService.d.ts +109 -0
- package/build/services/soniox/SonioxDirectService.d.ts.map +1 -0
- package/build/services/soniox/SonioxDirectService.js +449 -0
- package/build/services/soniox/SonioxDirectService.js.map +1 -0
- package/build/services/soniox/SonioxRealtimeClient.d.ts +121 -0
- package/build/services/soniox/SonioxRealtimeClient.d.ts.map +1 -0
- package/build/services/soniox/SonioxRealtimeClient.js +301 -0
- package/build/services/soniox/SonioxRealtimeClient.js.map +1 -0
- package/build/services/soniox/SonioxTokenAssembler.d.ts +98 -0
- package/build/services/soniox/SonioxTokenAssembler.d.ts.map +1 -0
- package/build/services/soniox/SonioxTokenAssembler.js +394 -0
- package/build/services/soniox/SonioxTokenAssembler.js.map +1 -0
- package/build/services/speakerProfileStoreInstance.d.ts +8 -0
- package/build/services/speakerProfileStoreInstance.d.ts.map +1 -0
- package/build/services/speakerProfileStoreInstance.js +24 -0
- package/build/services/speakerProfileStoreInstance.js.map +1 -0
- package/build/services/uiShim.d.ts +38 -0
- package/build/services/uiShim.d.ts.map +1 -0
- package/build/services/uiShim.js +369 -0
- package/build/services/uiShim.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 +503 -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 +33 -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 +103 -0
- package/build/stores/gallerySync.d.ts.map +1 -0
- package/build/stores/gallerySync.js +219 -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 +208 -0
- package/build/stores/glasses.js.map +1 -0
- package/build/stores/settings.d.ts +54 -0
- package/build/stores/settings.d.ts.map +1 -0
- package/build/stores/settings.js +1200 -0
- package/build/stores/settings.js.map +1 -0
- package/build/stores/transcriptionDebug.d.ts +25 -0
- package/build/stores/transcriptionDebug.d.ts.map +1 -0
- package/build/stores/transcriptionDebug.js +0 -0
- package/build/stores/transcriptionDebug.js.map +1 -0
- package/build/types/applet.d.ts +101 -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 +57 -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 +83 -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 +65 -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 +94 -0
- package/build/types/capabilities/mentra-live.js.map +1 -0
- package/build/types/capabilities/nimo.d.ts +13 -0
- package/build/types/capabilities/nimo.d.ts.map +1 -0
- package/build/types/capabilities/nimo.js +72 -0
- package/build/types/capabilities/nimo.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 +67 -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 +82 -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 +54 -0
- package/build/types/capabilities/vuzix-z100.js.map +1 -0
- package/build/types/enums.d.ts +22 -0
- package/build/types/enums.d.ts.map +1 -0
- package/build/types/enums.js +27 -0
- package/build/types/enums.js.map +1 -0
- package/build/types/hardware.d.ts +155 -0
- package/build/types/hardware.d.ts.map +1 -0
- package/build/types/hardware.js +52 -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 +11 -0
- package/build/utils/GlobalEventEmitter.d.ts.map +1 -0
- package/build/utils/GlobalEventEmitter.js +14 -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/configuredDevHost.d.ts +6 -0
- package/build/utils/configuredDevHost.d.ts.map +1 -0
- package/build/utils/configuredDevHost.js +19 -0
- package/build/utils/configuredDevHost.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 +55 -0
- package/build/utils/devMiniappLaunch.d.ts.map +1 -0
- package/build/utils/devMiniappLaunch.js +175 -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 +122 -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 +188 -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/anchor.d.ts +17 -0
- package/build/utils/display/scene/anchor.d.ts.map +1 -0
- package/build/utils/display/scene/anchor.js +33 -0
- package/build/utils/display/scene/anchor.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 +11 -0
- package/build/utils/display/scene/index.d.ts.map +1 -0
- package/build/utils/display/scene/index.js +7 -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 +201 -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 +139 -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 +131 -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/memory/search.d.ts +72 -0
- package/build/utils/memory/search.d.ts.map +1 -0
- package/build/utils/memory/search.js +178 -0
- package/build/utils/memory/search.js.map +1 -0
- package/build/utils/miniappDiagnostics.d.ts +64 -0
- package/build/utils/miniappDiagnostics.d.ts.map +1 -0
- package/build/utils/miniappDiagnostics.js +173 -0
- package/build/utils/miniappDiagnostics.js.map +1 -0
- package/build/utils/miniappGlobals.d.ts +59 -0
- package/build/utils/miniappGlobals.d.ts.map +1 -0
- package/build/utils/miniappGlobals.js +223 -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/speakerEmbedding.d.ts +8 -0
- package/build/utils/speakerEmbedding.d.ts.map +1 -0
- package/build/utils/speakerEmbedding.js +63 -0
- package/build/utils/speakerEmbedding.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 +142 -0
- package/build/utils/timers/timers.js.map +1 -0
- package/package.json +122 -0
- package/src/assets/silence.wav +0 -0
- package/src/devtools.ts +13 -0
- package/src/engine.ts +198 -0
- package/src/facades/dev.ts +213 -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 +219 -0
- package/src/facades/glassesSettings.ts +57 -0
- package/src/facades/glassesWifi.ts +68 -0
- package/src/facades/maps.ts +13 -0
- package/src/facades/memory.ts +46 -0
- package/src/facades/miniapps.ts +62 -0
- package/src/facades/notifications.ts +14 -0
- package/src/facades/ota.ts +177 -0
- package/src/facades/pairing.ts +329 -0
- package/src/facades/permissions.ts +165 -0
- package/src/facades/phoneNotifications.ts +41 -0
- package/src/facades/providerKeys.ts +31 -0
- package/src/facades/reports.ts +180 -0
- package/src/facades/session.ts +54 -0
- package/src/facades/settings.ts +57 -0
- package/src/facades/speakers.ts +152 -0
- package/src/facades/speech.ts +49 -0
- package/src/index.ts +214 -0
- package/src/internal.ts +155 -0
- package/src/runtime/bootstrap.ts +159 -0
- package/src/runtime/config.ts +155 -0
- package/src/runtime/scanQrSeam.ts +20 -0
- package/src/runtime/streamConfig.ts +34 -0
- package/src/services/AiTierResolution.ts +106 -0
- package/src/services/AppRegistry.ts +1245 -0
- package/src/services/AudioCloudUplink.ts +56 -0
- package/src/services/AudioPlaybackService.ts +873 -0
- package/src/services/AutomaticReportResult.ts +50 -0
- package/src/services/BlobStore.ts +823 -0
- package/src/services/CaptionsTesterReportService.ts +107 -0
- package/src/services/CloudAudioSubscriptionSync.ts +53 -0
- package/src/services/CloudClientService.ts +1031 -0
- package/src/services/CloudTranscriptE2EMetrics.ts +27 -0
- package/src/services/ConnectionCoordinator.ts +65 -0
- package/src/services/DevServerBridge.ts +334 -0
- package/src/services/DeviceEventRouter.ts +266 -0
- package/src/services/DeviceStoreHydration.ts +130 -0
- package/src/services/DisplayProcessor.ts +775 -0
- package/src/services/ForegroundLocationPermission.ts +24 -0
- package/src/services/GlassesReadiness.ts +103 -0
- package/src/services/GlassesSettingsSync.ts +140 -0
- package/src/services/GlassesStatusProjection.ts +73 -0
- package/src/services/HeadingService.ts +122 -0
- package/src/services/HotspotOtaTransport.ts +184 -0
- package/src/services/HotspotShutdown.ts +41 -0
- package/src/services/JSCrashController.ts +189 -0
- package/src/services/JSCrashloopReportService.ts +66 -0
- package/src/services/JSLogPipeline.ts +166 -0
- package/src/services/JSRouter.ts +555 -0
- package/src/services/LocalDisplayManager.ts +815 -0
- package/src/services/LocalMiniappDataMigration.ts +102 -0
- package/src/services/LocalMiniappRuntime.ts +5747 -0
- package/src/services/LocalMiniappStorage.ts +82 -0
- package/src/services/LocalMiniappUserIdentity.ts +79 -0
- package/src/services/LocalSttFallbackCoordinator.ts +247 -0
- package/src/services/MapboxTokenService.ts +118 -0
- package/src/services/MemoryCapture.ts +61 -0
- package/src/services/MemoryStore.ts +633 -0
- package/src/services/MicStateCoordinator.ts +259 -0
- package/src/services/MiniappEngine.ts +143 -0
- package/src/services/MiniappLauncher.ts +365 -0
- package/src/services/MiniappLiveness.ts +24 -0
- package/src/services/MiniappRunningRegistry.ts +57 -0
- package/src/services/NativeHttpResponse.ts +6 -0
- package/src/services/NativeNavigationService.ts +176 -0
- package/src/services/NavigationHandlers.ts +527 -0
- package/src/services/NavigationService.ts +926 -0
- package/src/services/NotificationsEmitter.ts +49 -0
- package/src/services/OfflineSpeechModelService.ts +168 -0
- package/src/services/OtaArtifactDownloader.ts +312 -0
- package/src/services/OtaInstallCoordinator.ts +1707 -0
- package/src/services/OtaService.ts +89 -0
- package/src/services/OtaUpdateCheckService.ts +550 -0
- package/src/services/PairingIdentity.ts +154 -0
- package/src/services/PhoneCalendarHelpers.ts +212 -0
- package/src/services/PhoneCalendarService.ts +61 -0
- package/src/services/PhoneCameraFovCoordinator.ts +210 -0
- package/src/services/PhoneLocationService.ts +120 -0
- package/src/services/PhoneNotificationsSync.ts +46 -0
- package/src/services/PhonePhotoCoordinator.ts +435 -0
- package/src/services/PhoneStreamCoordinator.ts +874 -0
- package/src/services/PhoneVideoCoordinator.ts +203 -0
- package/src/services/ProviderKeyValidation.ts +57 -0
- package/src/services/STTModelManager.ts +434 -0
- package/src/services/SceneRenderer.ts +320 -0
- package/src/services/SentenceTtsPipeline.ts +106 -0
- package/src/services/SpeakerIdModelManager.ts +151 -0
- package/src/services/SpeakerIdSync.ts +79 -0
- package/src/services/SpeakerLabelResolver.ts +140 -0
- package/src/services/SpeakerProfileStore.ts +265 -0
- package/src/services/SpeakerSegmentResolver.ts +194 -0
- package/src/services/StreamLifecycleController.ts +203 -0
- package/src/services/SupportProfileSync.ts +218 -0
- package/src/services/TTSModelManager.ts +466 -0
- package/src/services/TranscriptionRouting.ts +47 -0
- package/src/services/TtsTextSanitizer.ts +66 -0
- package/src/services/UIRouter.ts +250 -0
- package/src/services/WebviewBridge.ts +50 -0
- package/src/services/WifiAdbRequest.ts +53 -0
- package/src/services/asg/GalleryMediaIntegrityReportService.ts +72 -0
- package/src/services/asg/asgCameraApi.ts +1786 -0
- package/src/services/asg/cameraRollExportCoordinator.ts +627 -0
- package/src/services/asg/cameraRollExportLedger.ts +122 -0
- package/src/services/asg/galleryMediaValidation.ts +185 -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 +235 -0
- package/src/services/asg/gallerySyncService.ts +2278 -0
- package/src/services/asg/galleryTransferLedger.ts +312 -0
- package/src/services/asg/localNetworkTransport.ts +169 -0
- package/src/services/asg/localStorageService.ts +652 -0
- package/src/services/asg/mediaProcessingQueue.ts +518 -0
- package/src/services/audioPlaybackAssets.ts +8 -0
- package/src/services/blobPaths.ts +86 -0
- package/src/services/cloudStreamApi.ts +142 -0
- package/src/services/effectiveCapabilities.ts +27 -0
- package/src/services/gallerySyncClock.ts +39 -0
- package/src/services/glassesClockSync.ts +115 -0
- package/src/services/manifestActions.ts +80 -0
- package/src/services/manifestVersionGate.ts +43 -0
- package/src/services/memoryStoreInstance.ts +70 -0
- package/src/services/navigation/roadNameResolver.ts +103 -0
- package/src/services/navigation/routesApiCodec.ts +69 -0
- package/src/services/otaDisplayState.ts +156 -0
- package/src/services/otaInstallPolicy.ts +132 -0
- package/src/services/otaLegacyMapping.ts +71 -0
- package/src/services/otaManifestUrl.ts +53 -0
- package/src/services/slimStreamStatus.ts +39 -0
- package/src/services/soniox/SonioxDirectService.ts +517 -0
- package/src/services/soniox/SonioxRealtimeClient.ts +349 -0
- package/src/services/soniox/SonioxTokenAssembler.ts +451 -0
- package/src/services/speakerProfileStoreInstance.ts +25 -0
- package/src/services/uiShim.ts +375 -0
- package/src/stores/apps.ts +626 -0
- package/src/stores/bluetoothSettingKeys.ts +35 -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 +384 -0
- package/src/stores/glasses.ts +314 -0
- package/src/stores/settings.ts +1299 -0
- package/src/stores/transcriptionDebug.ts +0 -0
- package/src/types/applet.ts +121 -0
- package/src/types/asg.ts +58 -0
- package/src/types/capabilities/even-realities-g1.ts +70 -0
- package/src/types/capabilities/even-realities-g2.ts +98 -0
- package/src/types/capabilities/mentra-display.ts +78 -0
- package/src/types/capabilities/mentra-live.ts +106 -0
- package/src/types/capabilities/nimo.ts +84 -0
- package/src/types/capabilities/none.ts +79 -0
- package/src/types/capabilities/simulated-glasses.ts +95 -0
- package/src/types/capabilities/vuzix-z100.ts +67 -0
- package/src/types/enums.ts +27 -0
- package/src/types/hardware.ts +220 -0
- package/src/types/index.ts +38 -0
- package/src/utils/GlobalEventEmitter.ts +15 -0
- package/src/utils/cloudClient/RnUdpAdapter.ts +47 -0
- package/src/utils/cloudClient/cloudSecureStore.ts +28 -0
- package/src/utils/configuredDevHost.ts +17 -0
- package/src/utils/debouncedPatch.ts +28 -0
- package/src/utils/devLogging.ts +140 -0
- package/src/utils/devMiniappLaunch.ts +196 -0
- package/src/utils/diagnosticContext.ts +159 -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 +409 -0
- package/src/utils/display/helpers/ScrollView.ts +326 -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/anchor.ts +39 -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 +24 -0
- package/src/utils/display/scene/process.ts +228 -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 +171 -0
- package/src/utils/hardware/index.ts +1 -0
- package/src/utils/memory/search.ts +204 -0
- package/src/utils/miniappDiagnostics.ts +226 -0
- package/src/utils/miniappGlobals.ts +259 -0
- package/src/utils/permissions/MediaLibraryPermissions.ts +161 -0
- package/src/utils/permissions/galleryDisplayName.ts +28 -0
- package/src/utils/speakerEmbedding.ts +58 -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 +175 -0
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dev facade — `engine.dev`: developer/debug surface over engine-owned state.
|
|
3
|
+
* Backend/cloud URL overrides read+write the engine settings store; the cloud
|
|
4
|
+
* URL setters reconnect the engine-owned cloud client onto the new endpoints;
|
|
5
|
+
*
|
|
6
|
+
* NOTE: the dev-time endpoint *resolution* (Metro-host auto-detect, env defaults)
|
|
7
|
+
* still lives host-side in `@/services/cloudClient` during the migration; this
|
|
8
|
+
* facade manages the explicit overrides + reconnect.
|
|
9
|
+
*/
|
|
10
|
+
import BluetoothSdk from "@glassly/bluetooth-sdk/internal"
|
|
11
|
+
import {isGlassesReady} from "../services/GlassesReadiness"
|
|
12
|
+
import {useCloudClientStatusStore} from "../stores/cloudClientStatus"
|
|
13
|
+
import {useConnectionStore} from "../stores/connection"
|
|
14
|
+
import {useCoreStore} from "../stores/core"
|
|
15
|
+
import {useGlassesStore} from "../stores/glasses"
|
|
16
|
+
import {useSettingsStore, SETTINGS} from "../stores/settings"
|
|
17
|
+
import {useTranscriptionDebugStore} from "../stores/transcriptionDebug"
|
|
18
|
+
import {cloudClientService} from "../services/CloudClientService"
|
|
19
|
+
import {getConfigValues} from "../runtime/bootstrap"
|
|
20
|
+
import {decideDevLaunchRoute} from "../utils/devMiniappLaunch"
|
|
21
|
+
import {deriveDevPackageId, registerDevApp, DEV_APP_PACKAGE_NAME, type DevAppRecord} from "../services/AppRegistry"
|
|
22
|
+
import {useAppStatusStore} from "../stores/apps"
|
|
23
|
+
|
|
24
|
+
type CloudUrlOverrides = {core?: string; runtime?: string}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Reconnect the cloud client onto the current cloud-URL overrides. Explicit
|
|
28
|
+
* partial overrides merge over the boot-resolved config (which carries the
|
|
29
|
+
* host's Metro/env URL resolution); both empty clears the live override.
|
|
30
|
+
*/
|
|
31
|
+
function applyCloudUrlReconnect(urls: CloudUrlOverrides = currentCloudUrlOverrides()): void {
|
|
32
|
+
const resolved = resolveCloudUrlReconnectTarget(urls)
|
|
33
|
+
if (resolved === undefined) {
|
|
34
|
+
cloudClientService.reconnect(null)
|
|
35
|
+
} else if (resolved) {
|
|
36
|
+
cloudClientService.reconnect(resolved)
|
|
37
|
+
} else {
|
|
38
|
+
console.warn("engine.dev.setCloudUrls: partial cloud override missing boot-resolved sibling endpoint")
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function currentCloudUrlOverrides(): CloudUrlOverrides {
|
|
43
|
+
const s = useSettingsStore.getState()
|
|
44
|
+
return {
|
|
45
|
+
core: trimSetting(s.getSetting(SETTINGS.cloud_core_url.key)),
|
|
46
|
+
runtime: trimSetting(s.getSetting(SETTINGS.cloud_runtime_url.key)),
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function resolveCloudUrlReconnectTarget(urls: CloudUrlOverrides): {core: string; runtime: string} | null | undefined {
|
|
51
|
+
const core = trimSetting(urls.core)
|
|
52
|
+
const runtime = trimSetting(urls.runtime)
|
|
53
|
+
if (!core && !runtime) return undefined
|
|
54
|
+
|
|
55
|
+
const config = getConfigValues()
|
|
56
|
+
const resolvedCore = core || config.coreUrl?.trim()
|
|
57
|
+
const resolvedRuntime = runtime || config.runtimeUrl?.trim()
|
|
58
|
+
return resolvedCore && resolvedRuntime ? {core: resolvedCore, runtime: resolvedRuntime} : null
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function trimSetting(value: unknown): string | undefined {
|
|
62
|
+
return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function projectRuntimeStatus() {
|
|
66
|
+
const core = useCoreStore.getState()
|
|
67
|
+
const glasses = useGlassesStore.getState()
|
|
68
|
+
const connection = useConnectionStore.getState()
|
|
69
|
+
const cloudClient = useCloudClientStatusStore.getState()
|
|
70
|
+
const transcriptionDebug = useTranscriptionDebugStore.getState()
|
|
71
|
+
return {
|
|
72
|
+
searching: core.searching,
|
|
73
|
+
// Copy: the snapshot must not hand callers a mutable reference into the store.
|
|
74
|
+
micRanking: [...core.micRanking],
|
|
75
|
+
currentMic: core.currentMic,
|
|
76
|
+
systemMicUnavailable: core.systemMicUnavailable,
|
|
77
|
+
glassesConnected: glasses.connection.state === "connected",
|
|
78
|
+
glassesFullyBooted: isGlassesReady(glasses.connection),
|
|
79
|
+
bluetoothClassicConnected: glasses.bluetoothClassicConnected,
|
|
80
|
+
coreStatus: connection.status,
|
|
81
|
+
cloudClientStatus: cloudClient.status,
|
|
82
|
+
cloudClientAudioTransport: cloudClient.audioTransport,
|
|
83
|
+
transcriptionSubscribers: [...transcriptionDebug.transcriptionSubscribers],
|
|
84
|
+
translationSubscribers: [...transcriptionDebug.translationSubscribers],
|
|
85
|
+
recentTranscriptSources: {...transcriptionDebug.recentTranscriptSources},
|
|
86
|
+
cloudAudioSubscriptionWrite: {...transcriptionDebug.cloudAudioSubscriptionWrite},
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export type DevRuntimeStatusSnapshot = ReturnType<typeof projectRuntimeStatus>
|
|
91
|
+
|
|
92
|
+
export const dev = {
|
|
93
|
+
/** The cloud-v2 core/runtime URL overrides. */
|
|
94
|
+
cloudUrls: (): {core?: string; runtime?: string} => {
|
|
95
|
+
const s = useSettingsStore.getState()
|
|
96
|
+
return {core: s.getSetting(SETTINGS.cloud_core_url.key), runtime: s.getSetting(SETTINGS.cloud_runtime_url.key)}
|
|
97
|
+
},
|
|
98
|
+
/** Override the cloud-v2 URLs and reconnect the live client onto them. */
|
|
99
|
+
setCloudUrls: (urls: {core?: string; runtime?: string}) => {
|
|
100
|
+
const next = {...currentCloudUrlOverrides(), ...urls}
|
|
101
|
+
const resolved = resolveCloudUrlReconnectTarget(next)
|
|
102
|
+
if (resolved === null) {
|
|
103
|
+
console.warn("engine.dev.setCloudUrls: ignoring partial cloud override without a resolvable sibling endpoint")
|
|
104
|
+
return
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const s = useSettingsStore.getState()
|
|
108
|
+
if (urls.core !== undefined) s.setSetting(SETTINGS.cloud_core_url.key, urls.core)
|
|
109
|
+
if (urls.runtime !== undefined) s.setSetting(SETTINGS.cloud_runtime_url.key, urls.runtime)
|
|
110
|
+
if (resolved === undefined) {
|
|
111
|
+
cloudClientService.reconnect(null)
|
|
112
|
+
} else {
|
|
113
|
+
cloudClientService.reconnect(resolved)
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
|
|
117
|
+
/** Tear down + rebuild the live cloud client (the dev "reconnect" button). */
|
|
118
|
+
reconnectCloud: (): void => applyCloudUrlReconnect(),
|
|
119
|
+
|
|
120
|
+
/** Current native (BLE-process) memory usage in MB — a dev/diagnostics gauge. */
|
|
121
|
+
getMemoryMB: (): number => BluetoothSdk.getMemoryMB(),
|
|
122
|
+
/**
|
|
123
|
+
* Phone-side bluetooth runtime snapshot (the core store read-model: scan/mic/
|
|
124
|
+
* search state) — the diagnostics/data-export surface. Shallow copy.
|
|
125
|
+
*/
|
|
126
|
+
bluetoothStatus: (): Record<string, unknown> => {
|
|
127
|
+
const {setCoreInfo: _setCoreInfo, reset: _reset, ...state} = useCoreStore.getState()
|
|
128
|
+
return {...state}
|
|
129
|
+
},
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Side-load a miniapp being served from a dev machine (the `glassly dev` / CLI
|
|
133
|
+
* flow) by its URL: probes `<url>/miniapp.json`, and on a reachable manifest
|
|
134
|
+
* registers it under its manifest package so it appears in `engine.miniapps`
|
|
135
|
+
* and can coexist with other dev miniapps. This is the OEM-host equivalent
|
|
136
|
+
* of the first-party
|
|
137
|
+
* developer-URL screen — the registration itself is engine-internal, so a
|
|
138
|
+
* host reaches it here rather than the internal registry. Rendering still
|
|
139
|
+
* flows through the normal display path once the miniapp is started.
|
|
140
|
+
*/
|
|
141
|
+
loadDevMiniapp: async (
|
|
142
|
+
url: string,
|
|
143
|
+
name?: string,
|
|
144
|
+
): Promise<{ok: true; packageName: string; name: string} | {ok: false; error: string}> => {
|
|
145
|
+
const devUrl = url.trim().replace(/\/+$/, "")
|
|
146
|
+
if (!devUrl) return {ok: false, error: "empty url"}
|
|
147
|
+
const result = await decideDevLaunchRoute("", devUrl)
|
|
148
|
+
if (result.decision !== "live") {
|
|
149
|
+
return {ok: false, error: "dev server unreachable, or no miniapp.json served there"}
|
|
150
|
+
}
|
|
151
|
+
const manifest = result.manifest
|
|
152
|
+
const appName = name ?? manifest.name ?? "Dev Miniapp"
|
|
153
|
+
const packageName = (manifest.packageName as string | undefined) ?? DEV_APP_PACKAGE_NAME
|
|
154
|
+
// Persist the host that answered — not the stale input IP — so home-tile
|
|
155
|
+
// relaunches skip a dead LAN address after mDNS/Metro failover.
|
|
156
|
+
const resolvedUrl = result.resolvedUrl || devUrl
|
|
157
|
+
// The `glassly-miniapp dev` server puts the hot-reload/log sidecar on the
|
|
158
|
+
// user port PLUS ONE — same convention as the first-party developer-URL
|
|
159
|
+
// screen's deriveDevPort.
|
|
160
|
+
let devPort: number | undefined
|
|
161
|
+
try {
|
|
162
|
+
const parsed = Number(new URL(resolvedUrl).port)
|
|
163
|
+
devPort = Number.isFinite(parsed) && parsed > 0 ? parsed + 1 : undefined
|
|
164
|
+
} catch {
|
|
165
|
+
devPort = undefined
|
|
166
|
+
}
|
|
167
|
+
// The record is stored under a namespaced dev id (deriveDevPackageId) so
|
|
168
|
+
// it survives release installs of the manifest package — stop/refresh and
|
|
169
|
+
// the returned packageName must use that id, which registerDevApp returns.
|
|
170
|
+
const devPackageId = deriveDevPackageId(packageName)
|
|
171
|
+
const existing = useAppStatusStore.getState().apps.find((app) => app.packageName === devPackageId)
|
|
172
|
+
if (existing?.running) await useAppStatusStore.getState().stop(devPackageId)
|
|
173
|
+
const record = await registerDevApp({
|
|
174
|
+
packageName,
|
|
175
|
+
name: appName,
|
|
176
|
+
iconUrl: manifest.icon ? new URL(manifest.icon, `${resolvedUrl}/`).toString() : `${resolvedUrl}/icon.png`,
|
|
177
|
+
// Persist the host that answered — not the stale input IP.
|
|
178
|
+
devUrl: resolvedUrl,
|
|
179
|
+
devPort,
|
|
180
|
+
type: manifest.type as DevAppRecord["type"],
|
|
181
|
+
permissions: manifest.permissions as DevAppRecord["permissions"],
|
|
182
|
+
hardwareRequirements: manifest.hardwareRequirements as DevAppRecord["hardwareRequirements"],
|
|
183
|
+
actions: manifest.actions as DevAppRecord["actions"],
|
|
184
|
+
})
|
|
185
|
+
await useAppStatusStore.getState().refresh()
|
|
186
|
+
return {ok: true, packageName: record.packageName, name: appName}
|
|
187
|
+
},
|
|
188
|
+
|
|
189
|
+
/** Current engine runtime status for engine-owned debug surfaces. */
|
|
190
|
+
runtimeStatus: (): DevRuntimeStatusSnapshot => projectRuntimeStatus(),
|
|
191
|
+
|
|
192
|
+
/** Subscribe to the projected engine runtime status; returns an unsubscribe. */
|
|
193
|
+
onRuntimeStatus: (cb: (status: DevRuntimeStatusSnapshot) => void): (() => void) => {
|
|
194
|
+
let last = JSON.stringify(projectRuntimeStatus())
|
|
195
|
+
const notify = () => {
|
|
196
|
+
const snap = projectRuntimeStatus()
|
|
197
|
+
const key = JSON.stringify(snap)
|
|
198
|
+
if (key === last) return
|
|
199
|
+
last = key
|
|
200
|
+
cb(snap)
|
|
201
|
+
}
|
|
202
|
+
const unsubscribers = [
|
|
203
|
+
useCoreStore.subscribe(notify),
|
|
204
|
+
useGlassesStore.subscribe(notify),
|
|
205
|
+
useConnectionStore.subscribe(notify),
|
|
206
|
+
useCloudClientStatusStore.subscribe(notify),
|
|
207
|
+
useTranscriptionDebugStore.subscribe(notify),
|
|
208
|
+
]
|
|
209
|
+
return () => {
|
|
210
|
+
unsubscribers.forEach((unsubscribe) => unsubscribe())
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* display facade — `engine.display`: the host/OEM display surface. `mirror`
|
|
3
|
+
* exposes the mirrored-view read-model; `text`/`clear` are raw passthroughs to the
|
|
4
|
+
* glasses display for dev tools and escape-hatch use (normal rendering goes through
|
|
5
|
+
* the engine DisplayProcessor / layout system, not these).
|
|
6
|
+
*/
|
|
7
|
+
import BluetoothSdk from "@glassly/bluetooth-sdk/internal"
|
|
8
|
+
import {displayMirror} from "./displayMirror"
|
|
9
|
+
|
|
10
|
+
export const display = {
|
|
11
|
+
/** Mirrored-view read-model (current/onMirror/view/setView). */
|
|
12
|
+
mirror: displayMirror,
|
|
13
|
+
/** Write raw text to the glasses display at (x, y) with a font size. */
|
|
14
|
+
text: (...args: Parameters<typeof BluetoothSdk.displayText>) => BluetoothSdk.displayText(...args),
|
|
15
|
+
/** Clear the glasses display. */
|
|
16
|
+
clear: (): Promise<void> => BluetoothSdk.clearDisplay(),
|
|
17
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* glasses display mirror — the typed read facade over the (now engine-owned)
|
|
3
|
+
* display store, for a phone-side preview of the glasses screen
|
|
4
|
+
* (`engine.display.mirror`). The store is fed by the display paths
|
|
5
|
+
* (LocalDisplayManager + the cloud path) via `setDisplayEvent`; this facade is the
|
|
6
|
+
* read side: `current()` (snapshot) + `onMirror(cb)` (subscribe). The raw store is
|
|
7
|
+
* also exposed as `engine.displayStore` (the Glassly-app escape hatch).
|
|
8
|
+
*/
|
|
9
|
+
import {useDisplayStore} from "../stores/display"
|
|
10
|
+
|
|
11
|
+
export type DisplayMirrorEvent = Record<string, unknown> & {view?: string; layout?: any}
|
|
12
|
+
|
|
13
|
+
export const displayMirror = {
|
|
14
|
+
/** The display event currently shown on the previewed view (snapshot). */
|
|
15
|
+
current(): DisplayMirrorEvent {
|
|
16
|
+
// Copy: the snapshot must not hand callers a mutable reference into the store.
|
|
17
|
+
return {...useDisplayStore.getState().currentEvent}
|
|
18
|
+
},
|
|
19
|
+
|
|
20
|
+
/** Subscribe to changes of the previewed display event; returns an unsubscribe. */
|
|
21
|
+
onMirror(cb: (event: DisplayMirrorEvent) => void): () => void {
|
|
22
|
+
return useDisplayStore.subscribe((s) => s.currentEvent, cb)
|
|
23
|
+
},
|
|
24
|
+
|
|
25
|
+
/** Which view is previewed — the main screen or the dashboard. */
|
|
26
|
+
view(): string {
|
|
27
|
+
return useDisplayStore.getState().view
|
|
28
|
+
},
|
|
29
|
+
/** Switch the previewed view between `"main"` and `"dashboard"`. */
|
|
30
|
+
setView(view: "main" | "dashboard"): void {
|
|
31
|
+
useDisplayStore.getState().setView(view)
|
|
32
|
+
},
|
|
33
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* gallery facade — `engine.gallery`: the OEM-facing gallery-sync surface. Engine's
|
|
3
|
+
* gallerySyncService orchestrates the sync (hotspot → wifi → HTTP fetch → process →
|
|
4
|
+
* store); this facade exposes the projected status + the structured notices the host
|
|
5
|
+
* renders its own UI from, plus the sync/cancel actions. No host-injected UI — the host
|
|
6
|
+
* owns all alerts/navigation/i18n (it renders them off `onNotice`).
|
|
7
|
+
*/
|
|
8
|
+
import {
|
|
9
|
+
useGallerySyncStore,
|
|
10
|
+
selectSyncProgress,
|
|
11
|
+
selectIssyncing,
|
|
12
|
+
selectGlassesGalleryStatus,
|
|
13
|
+
} from "../stores/gallerySync"
|
|
14
|
+
import {gallerySyncService} from "../services/asg/gallerySyncService"
|
|
15
|
+
import {onGalleryNotice, type GalleryNotice} from "../services/asg/galleryNotices"
|
|
16
|
+
|
|
17
|
+
function projectStatus() {
|
|
18
|
+
const s = useGallerySyncStore.getState()
|
|
19
|
+
const progress = selectSyncProgress(s)
|
|
20
|
+
return {
|
|
21
|
+
...progress,
|
|
22
|
+
processingFiles: Array.from(progress.processingFiles),
|
|
23
|
+
processedFiles: s.processedFiles,
|
|
24
|
+
isSyncing: selectIssyncing(s),
|
|
25
|
+
isStarting: s.syncStarting,
|
|
26
|
+
glassesGallery: selectGlassesGalleryStatus(s),
|
|
27
|
+
// Copy: the snapshot must not hand callers a mutable reference into the store
|
|
28
|
+
// (each queue item is copied too — callers must not mutate them in place).
|
|
29
|
+
queue: s.queue.map((item) => ({...item})),
|
|
30
|
+
queueLength: s.queue.length,
|
|
31
|
+
queueIndex: s.queueIndex,
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export type GallerySyncStatus = ReturnType<typeof projectStatus>
|
|
36
|
+
|
|
37
|
+
export const gallery = {
|
|
38
|
+
/** Snapshot of the current sync state + progress. */
|
|
39
|
+
status: (): GallerySyncStatus => projectStatus(),
|
|
40
|
+
/** Subscribe to sync-state changes; returns an unsubscribe. Deduped on the projected
|
|
41
|
+
* status (the gallerySync store mutates many unrelated fields during a sync), so the
|
|
42
|
+
* host only re-renders when the projection actually changes — matches the other
|
|
43
|
+
* read-model facades. */
|
|
44
|
+
onStatus: (cb: (status: GallerySyncStatus) => void): (() => void) => {
|
|
45
|
+
let last = JSON.stringify(projectStatus())
|
|
46
|
+
return useGallerySyncStore.subscribe(() => {
|
|
47
|
+
const status = projectStatus()
|
|
48
|
+
const serialized = JSON.stringify(status)
|
|
49
|
+
if (serialized === last) return
|
|
50
|
+
last = serialized
|
|
51
|
+
cb(status)
|
|
52
|
+
})
|
|
53
|
+
},
|
|
54
|
+
/** Subscribe to user-actionable notices (host renders alerts / settings deep-links). */
|
|
55
|
+
onNotice: (cb: (notice: GalleryNotice) => void): (() => void) => onGalleryNotice(cb),
|
|
56
|
+
|
|
57
|
+
/** Start a gallery sync (the host gates connectivity/permissions first). */
|
|
58
|
+
sync: (): Promise<void> => gallerySyncService.startSync(),
|
|
59
|
+
/** Cancel an in-progress sync. */
|
|
60
|
+
cancel: (): Promise<void> => gallerySyncService.cancelSync(),
|
|
61
|
+
/** Ask glasses to refresh their gallery summary counts. */
|
|
62
|
+
refreshStatus: (): Promise<void> => gallerySyncService.queryGlassesGalleryStatus(),
|
|
63
|
+
/** Remove local files from the current gallery queue after host-owned deletion UI completes. */
|
|
64
|
+
removeFilesFromQueue: (fileNames: string[]): void => useGallerySyncStore.getState().removeFilesFromQueue(fileNames),
|
|
65
|
+
/** Clear the current gallery sync queue after host-owned bulk deletion completes. */
|
|
66
|
+
clearQueue: (): void => useGallerySyncStore.getState().clearQueue(),
|
|
67
|
+
/** Clear the cached glasses gallery summary when product UI observes disconnect. */
|
|
68
|
+
clearGlassesGalleryStatus: (): void => useGallerySyncStore.getState().clearGlassesGalleryStatus(),
|
|
69
|
+
}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* glasses facade — the core `engine.glasses.*` surface: connection actions (over
|
|
3
|
+
* the bluetooth-sdk passthrough), a curated status/info read-model (projected from
|
|
4
|
+
* the engine-owned glasses store), capabilities (from the model table), and the
|
|
5
|
+
* discrete input events. The `wifi` sub-facade is nested here.
|
|
6
|
+
*
|
|
7
|
+
* Read-models project the raw glasses store into the stable shape OEM UIs consume,
|
|
8
|
+
* so the device store's field layout doesn't leak into every screen.
|
|
9
|
+
*/
|
|
10
|
+
// Internal btsdk surface — connectSimulated/reconnect/controller live on the full
|
|
11
|
+
// surface, not the public entry. Relative path (the alias doesn't resolve in engine's
|
|
12
|
+
// standalone build); jest moduleNameMapper + tsconfig both resolve it.
|
|
13
|
+
import BluetoothSdk from "@glassly/bluetooth-sdk/internal"
|
|
14
|
+
import type {ButtonPressEvent, TouchEvent} from "@glassly/bluetooth-sdk/internal"
|
|
15
|
+
import {useGlassesStore} from "../stores/glasses"
|
|
16
|
+
import {useSettingsStore, SETTINGS} from "../stores/settings"
|
|
17
|
+
import {hasDefaultDevice} from "../services/DeviceStoreHydration"
|
|
18
|
+
import {projectPairingIdentity} from "../services/PairingIdentity"
|
|
19
|
+
import {isGlassesConnected, isGlassesReady} from "../services/GlassesReadiness"
|
|
20
|
+
import {pushAllBluetoothSettings} from "../services/GlassesSettingsSync"
|
|
21
|
+
import {recordSupportProfileConnectionFailure} from "../services/SupportProfileSync"
|
|
22
|
+
import {getModelCapabilities, type DeviceTypes} from "../types"
|
|
23
|
+
import {glassesWifi} from "./glassesWifi"
|
|
24
|
+
import {glassesSettings} from "./glassesSettings"
|
|
25
|
+
|
|
26
|
+
function projectStatus() {
|
|
27
|
+
const s = useGlassesStore.getState()
|
|
28
|
+
return {
|
|
29
|
+
state: s.connection.state,
|
|
30
|
+
fullyBooted: isGlassesReady(s.connection),
|
|
31
|
+
battery: s.batteryLevel,
|
|
32
|
+
charging: s.charging,
|
|
33
|
+
case: {battery: s.caseBatteryLevel, charging: s.caseCharging, open: s.caseOpen, removed: s.caseRemoved},
|
|
34
|
+
signal: s.signalStrength,
|
|
35
|
+
micEnabled: s.micEnabled,
|
|
36
|
+
vadEnabled: s.voiceActivityDetectionEnabled,
|
|
37
|
+
btClassic: s.bluetoothClassicConnected,
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function projectControllerStatus() {
|
|
42
|
+
const s = useGlassesStore.getState()
|
|
43
|
+
return {
|
|
44
|
+
connected: s.controllerConnected,
|
|
45
|
+
fullyBooted: s.controllerFullyBooted,
|
|
46
|
+
battery: s.controllerBatteryLevel,
|
|
47
|
+
signal: s.controllerSignalStrength,
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function projectInfo() {
|
|
52
|
+
const s = useGlassesStore.getState()
|
|
53
|
+
return {
|
|
54
|
+
model: s.deviceModel,
|
|
55
|
+
style: s.style,
|
|
56
|
+
color: s.color,
|
|
57
|
+
bluetoothName: s.bluetoothName,
|
|
58
|
+
firmwareVersion: s.firmwareVersion,
|
|
59
|
+
mtkFirmware: s.mtkFirmwareVersion,
|
|
60
|
+
besFirmware: s.besFirmwareVersion,
|
|
61
|
+
appVersion: s.appVersion,
|
|
62
|
+
androidVersion: s.androidVersion,
|
|
63
|
+
serialNumber: s.serialNumber,
|
|
64
|
+
buildNumber: s.buildNumber,
|
|
65
|
+
btMac: s.bluetoothMacAddress,
|
|
66
|
+
wifiMac: s.wifiMacAddress,
|
|
67
|
+
leftMac: s.leftMacAddress,
|
|
68
|
+
rightMac: s.rightMacAddress,
|
|
69
|
+
// Copy: the snapshot must not hand callers a mutable reference into the store.
|
|
70
|
+
wifi: {...s.wifi},
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export type GlassesStatusSnapshot = ReturnType<typeof projectStatus>
|
|
75
|
+
export type ControllerStatusSnapshot = ReturnType<typeof projectControllerStatus>
|
|
76
|
+
export type GlassesInfoSnapshot = ReturnType<typeof projectInfo>
|
|
77
|
+
|
|
78
|
+
export const glasses = {
|
|
79
|
+
// --- connection (bluetooth-sdk passthrough) ---
|
|
80
|
+
/**
|
|
81
|
+
* Reconnect the default wearable. Seeds the phone's current device settings to
|
|
82
|
+
* native first, so they're primed before the connect handshake replays them to
|
|
83
|
+
* the glasses (this used to be a host-side step before `connectDefault`).
|
|
84
|
+
*/
|
|
85
|
+
connectDefault: async (): Promise<void> => {
|
|
86
|
+
try {
|
|
87
|
+
await pushAllBluetoothSettings()
|
|
88
|
+
await BluetoothSdk.connectDefault()
|
|
89
|
+
} catch (error) {
|
|
90
|
+
recordSupportProfileConnectionFailure(error, "connect_default")
|
|
91
|
+
throw error
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
disconnect: (): Promise<void> => BluetoothSdk.disconnect(),
|
|
95
|
+
forget: (): Promise<void> => BluetoothSdk.forget(),
|
|
96
|
+
/** Connect to a specific (discovered) device. */
|
|
97
|
+
connect: async (...args: Parameters<typeof BluetoothSdk.connect>): Promise<void> => {
|
|
98
|
+
try {
|
|
99
|
+
await pushAllBluetoothSettings()
|
|
100
|
+
await BluetoothSdk.connect(...args)
|
|
101
|
+
} catch (error) {
|
|
102
|
+
recordSupportProfileConnectionFailure(error, "connect")
|
|
103
|
+
throw error
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
/** Connect the built-in simulated glasses (dev/testing). */
|
|
107
|
+
connectSimulated: (): Promise<void> => BluetoothSdk.connectSimulated(),
|
|
108
|
+
/** Set a device as the `connectDefault()` target. */
|
|
109
|
+
setDefault: (...args: Parameters<typeof BluetoothSdk.setDefaultDevice>) => BluetoothSdk.setDefaultDevice(...args),
|
|
110
|
+
/**
|
|
111
|
+
* Reconnect to the saved default glasses. Resolves `false` when there's nothing to
|
|
112
|
+
* reconnect to (no default paired) or the connect attempt fails (e.g. BLE powered
|
|
113
|
+
* off), `true` when already connected or after kicking off the connect. Never
|
|
114
|
+
* rejects — the boolean contract holds. The host gates connectivity/permissions
|
|
115
|
+
* (its UI) before calling.
|
|
116
|
+
*/
|
|
117
|
+
reconnect: async (): Promise<boolean> => {
|
|
118
|
+
const defaultWearable = useSettingsStore.getState().getSetting(SETTINGS.default_wearable.key)
|
|
119
|
+
if (!defaultWearable) return false
|
|
120
|
+
if (isGlassesConnected(useGlassesStore.getState().connection)) return true
|
|
121
|
+
try {
|
|
122
|
+
await pushAllBluetoothSettings()
|
|
123
|
+
await BluetoothSdk.connectDefault()
|
|
124
|
+
} catch (error) {
|
|
125
|
+
recordSupportProfileConnectionFailure(error, "reconnect")
|
|
126
|
+
console.warn("engine.glasses.reconnect failed:", error)
|
|
127
|
+
return false
|
|
128
|
+
}
|
|
129
|
+
return true
|
|
130
|
+
},
|
|
131
|
+
/** True when no glasses has ever been paired NOR selected (the pairing-identity
|
|
132
|
+
* lifecycle is in its `none` state) — e.g. to route a first-run host into the
|
|
133
|
+
* pairing/onboarding flow. A pending selection is not "first" — the host should
|
|
134
|
+
* offer finish-pairing (see `engine.pairing.identity()`). */
|
|
135
|
+
isFirstPairing: (): boolean => projectPairingIdentity().kind === "none",
|
|
136
|
+
/**
|
|
137
|
+
* True when the SDK has an actual default DEVICE to reconnect to. Distinct from
|
|
138
|
+
* `default_wearable` (a model string that a pending or orphaned selection can
|
|
139
|
+
* hold without any paired device): connectDefault() throws without a device, so
|
|
140
|
+
* hosts should route to the pairing flow when this is false.
|
|
141
|
+
*
|
|
142
|
+
* Hydration-aware: awaits the device-store seed internally, so a cold-start
|
|
143
|
+
* read can't see a false "absent" for genuinely-paired users. Rejects if
|
|
144
|
+
* hydration failed — callers guarding destructive or routing decisions must
|
|
145
|
+
* fail open (treat as "has a device").
|
|
146
|
+
*/
|
|
147
|
+
hasDefaultDevice: (): Promise<boolean> => hasDefaultDevice(),
|
|
148
|
+
|
|
149
|
+
// --- read-model (projected from the engine-owned glasses store) ---
|
|
150
|
+
status: (): GlassesStatusSnapshot => projectStatus(),
|
|
151
|
+
onStatus: (cb: (status: GlassesStatusSnapshot) => void): (() => void) => {
|
|
152
|
+
// Dedupe: the glasses store updates on many fields; only fire when the
|
|
153
|
+
// projected status snapshot actually changes.
|
|
154
|
+
let last = JSON.stringify(projectStatus())
|
|
155
|
+
return useGlassesStore.subscribe(() => {
|
|
156
|
+
const snap = projectStatus()
|
|
157
|
+
const key = JSON.stringify(snap)
|
|
158
|
+
if (key === last) return
|
|
159
|
+
last = key
|
|
160
|
+
cb(snap)
|
|
161
|
+
})
|
|
162
|
+
},
|
|
163
|
+
info: (): GlassesInfoSnapshot => projectInfo(),
|
|
164
|
+
onInfo: (cb: (info: GlassesInfoSnapshot) => void): (() => void) => {
|
|
165
|
+
let last = JSON.stringify(projectInfo())
|
|
166
|
+
return useGlassesStore.subscribe(() => {
|
|
167
|
+
const snap = projectInfo()
|
|
168
|
+
const key = JSON.stringify(snap)
|
|
169
|
+
if (key === last) return
|
|
170
|
+
last = key
|
|
171
|
+
cb(snap)
|
|
172
|
+
})
|
|
173
|
+
},
|
|
174
|
+
capabilities: () => getModelCapabilities(useGlassesStore.getState().deviceModel as DeviceTypes),
|
|
175
|
+
/** Ask the glasses to report fresh firmware/version info (updates the store). */
|
|
176
|
+
requestVersionInfo: () => BluetoothSdk.requestVersionInfo(),
|
|
177
|
+
|
|
178
|
+
// --- discrete input events (passthrough listeners) ---
|
|
179
|
+
onButtonPress: (cb: (event: ButtonPressEvent) => void): (() => void) => {
|
|
180
|
+
const sub = BluetoothSdk.addListener("button_press", cb)
|
|
181
|
+
return () => sub.remove()
|
|
182
|
+
},
|
|
183
|
+
onTouchGesture: (cb: (event: TouchEvent) => void): (() => void) => {
|
|
184
|
+
const sub = BluetoothSdk.addListener("touch_event", cb)
|
|
185
|
+
return () => sub.remove()
|
|
186
|
+
},
|
|
187
|
+
|
|
188
|
+
// --- ring controller (optional input device) ---
|
|
189
|
+
controller: {
|
|
190
|
+
connectDefault: (): Promise<void> => BluetoothSdk.connectDefaultController(),
|
|
191
|
+
disconnect: (): Promise<void> => BluetoothSdk.disconnectController(),
|
|
192
|
+
forget: (): Promise<void> => BluetoothSdk.forgetController(),
|
|
193
|
+
status: (): ControllerStatusSnapshot => projectControllerStatus(),
|
|
194
|
+
onStatus: (cb: (status: ControllerStatusSnapshot) => void): (() => void) => {
|
|
195
|
+
let last = JSON.stringify(projectControllerStatus())
|
|
196
|
+
return useGlassesStore.subscribe(() => {
|
|
197
|
+
const snap = projectControllerStatus()
|
|
198
|
+
const key = JSON.stringify(snap)
|
|
199
|
+
if (key === last) return
|
|
200
|
+
last = key
|
|
201
|
+
cb(snap)
|
|
202
|
+
})
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
|
|
206
|
+
// --- audio (glasses media-volume + own-app playback hint) ---
|
|
207
|
+
audio: {
|
|
208
|
+
/** Read the glasses' current media volume. */
|
|
209
|
+
getMediaVolume: () => BluetoothSdk.getGlassesMediaVolume(),
|
|
210
|
+
/** Set the glasses' media volume. */
|
|
211
|
+
setMediaVolume: (level: number) => BluetoothSdk.setGlassesMediaVolume(level),
|
|
212
|
+
/** Tell native whether THIS app is currently playing audio (for ducking). */
|
|
213
|
+
setOwnAppPlaying: (playing: boolean): Promise<void> => BluetoothSdk.setOwnAppAudioPlaying(playing),
|
|
214
|
+
},
|
|
215
|
+
|
|
216
|
+
// --- sub-facades ---
|
|
217
|
+
wifi: glassesWifi,
|
|
218
|
+
settings: glassesSettings,
|
|
219
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* glasses.settings facade — `engine.glasses.settings`: the keyed DEVICE-settings
|
|
3
|
+
* surface (brightness, head-up angle, dashboard, camera/button, sensing, …). These
|
|
4
|
+
* are the settings the engine store auto-syncs to the glasses over the bluetooth-sdk
|
|
5
|
+
* (`BLUETOOTH_SETTING_KEYS`), so `set()` both persists and pushes to the device.
|
|
6
|
+
*
|
|
7
|
+
* Distinct from `engine.settings` (user/app prefs): this is scoped to the
|
|
8
|
+
* hardware-facing keys, minus the internal sync keys (auth/token) that aren't
|
|
9
|
+
* user-tunable device settings.
|
|
10
|
+
*/
|
|
11
|
+
import {useSettingsStore, SETTINGS, BLUETOOTH_SETTING_KEYS} from "../stores/settings"
|
|
12
|
+
|
|
13
|
+
// Keys carried on BLUETOOTH_SETTING_KEYS for the device handshake that are NOT
|
|
14
|
+
// user-tunable settings — auth, device/controller IDENTITY (set by pairing), and
|
|
15
|
+
// internal RUNTIME flags. Kept out of the OEM-facing `available()` surface.
|
|
16
|
+
const INTERNAL_KEYS = new Set<string>([
|
|
17
|
+
// auth
|
|
18
|
+
SETTINGS.core_token.key,
|
|
19
|
+
SETTINGS.auth_email.key,
|
|
20
|
+
// glasses + controller identity (managed by pairing, not the user)
|
|
21
|
+
SETTINGS.pending_wearable.key,
|
|
22
|
+
SETTINGS.default_wearable.key,
|
|
23
|
+
SETTINGS.device_name.key,
|
|
24
|
+
SETTINGS.device_address.key,
|
|
25
|
+
SETTINGS.project_name.key,
|
|
26
|
+
SETTINGS.pending_controller.key,
|
|
27
|
+
SETTINGS.default_controller.key,
|
|
28
|
+
SETTINGS.controller_device_name.key,
|
|
29
|
+
SETTINGS.controller_address.key,
|
|
30
|
+
// internal runtime flags
|
|
31
|
+
SETTINGS.local_stt_fallback_active.key,
|
|
32
|
+
])
|
|
33
|
+
const DEVICE_KEYS = BLUETOOTH_SETTING_KEYS.filter((k) => !INTERNAL_KEYS.has(k))
|
|
34
|
+
|
|
35
|
+
// Copy: object/array-valued settings must not hand callers a mutable reference
|
|
36
|
+
// into the store (mutations would bypass persistence + Bluetooth sync).
|
|
37
|
+
function copySettingValue<T>(value: T): T {
|
|
38
|
+
if (Array.isArray(value)) return [...value] as T
|
|
39
|
+
if (value && typeof value === "object") return {...(value as object)} as T
|
|
40
|
+
return value
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export const glassesSettings = {
|
|
44
|
+
/** Read a device setting by key (object/array values are shallow copies). */
|
|
45
|
+
get: <T = unknown>(key: string): T | undefined =>
|
|
46
|
+
copySettingValue(useSettingsStore.getState().getSetting(key) as T | undefined),
|
|
47
|
+
/** Write a device setting — persists and auto-syncs to the connected glasses. */
|
|
48
|
+
set: <T = unknown>(key: string, value: T) => useSettingsStore.getState().setSetting(key, value),
|
|
49
|
+
/** Subscribe to changes for one device-setting key; returns an unsubscribe. */
|
|
50
|
+
onChanged: <T = unknown>(key: string, cb: (value: T | undefined) => void): (() => void) =>
|
|
51
|
+
useSettingsStore.subscribe((s) => s.getSetting(key) as T | undefined, cb),
|
|
52
|
+
/** The schema descriptor for a key (type, default, options…), or undefined. */
|
|
53
|
+
descriptor: (key: string) => SETTINGS[key],
|
|
54
|
+
/** The device-setting keys synced to the glasses (excludes internal sync keys). */
|
|
55
|
+
// Copy: callers must not be able to mutate the module-level key list.
|
|
56
|
+
available: (): string[] => [...DEVICE_KEYS],
|
|
57
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* glasses.wifi facade — the first typed engine facade over the bluetooth-sdk
|
|
3
|
+
* passthrough, and the reference pattern the rest of the (A) host API copies.
|
|
4
|
+
*
|
|
5
|
+
* A facade wraps the raw `@glassly/bluetooth-sdk` surface into a small, typed,
|
|
6
|
+
* device-agnostic API (the `doX()` action shape here; `getX()`/`onX()` read-models
|
|
7
|
+
* come with domains that own their state). The host UI calls `engine.glasses.wifi.*`
|
|
8
|
+
* instead of importing bluetooth-sdk directly — that's the native-import boundary
|
|
9
|
+
* the engine is built around.
|
|
10
|
+
*
|
|
11
|
+
* `connect()` propagates bluetooth-sdk's coded errors unchanged so callers keep
|
|
12
|
+
* their existing error mapping. The `status()`/`onStatus()` read-model reads the
|
|
13
|
+
* glasses-state store engine now owns (wifi status is derived there from the
|
|
14
|
+
* device's connection info).
|
|
15
|
+
*/
|
|
16
|
+
import BluetoothSdk from "@glassly/bluetooth-sdk"
|
|
17
|
+
import type {WifiSearchResult, WifiStatus} from "@glassly/bluetooth-sdk"
|
|
18
|
+
import {useGlassesStore} from "../stores/glasses"
|
|
19
|
+
|
|
20
|
+
export type {WifiSearchResult, WifiStatus}
|
|
21
|
+
|
|
22
|
+
export const glassesWifi = {
|
|
23
|
+
/** Scan for nearby wifi networks. Request/response — resolves with the results. */
|
|
24
|
+
scan(): Promise<WifiSearchResult[]> {
|
|
25
|
+
return BluetoothSdk.requestWifiScan()
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Subscribe to streamed scan results: the glasses report networks one by one
|
|
30
|
+
* while a scan runs, so callers can render them as they arrive instead of
|
|
31
|
+
* waiting for the final `scan()` result. Returns an unsubscribe.
|
|
32
|
+
*/
|
|
33
|
+
onScanResult(cb: (networks: WifiSearchResult[]) => void): () => void {
|
|
34
|
+
const sub = BluetoothSdk.addListener("wifi_scan_result", (event) => {
|
|
35
|
+
cb(event.networks)
|
|
36
|
+
})
|
|
37
|
+
return () => sub.remove()
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Send wifi credentials to the glasses. Resolves on success; rejects with the
|
|
42
|
+
* bluetooth-sdk coded error (`bluetooth_powered_off`, `request_timeout`, …) on
|
|
43
|
+
* failure, propagated unchanged for the caller to map.
|
|
44
|
+
*/
|
|
45
|
+
async connect(ssid: string, password: string): Promise<void> {
|
|
46
|
+
await BluetoothSdk.sendWifiCredentials(ssid, password)
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
/** Forget a saved network on the glasses. */
|
|
50
|
+
async forget(ssid: string): Promise<void> {
|
|
51
|
+
await BluetoothSdk.forgetWifiNetwork(ssid)
|
|
52
|
+
},
|
|
53
|
+
|
|
54
|
+
/** The glasses' current wifi connection status (snapshot). */
|
|
55
|
+
status(): WifiStatus {
|
|
56
|
+
// Copy: the snapshot must not hand callers a mutable reference into the store.
|
|
57
|
+
return {...useGlassesStore.getState().wifi}
|
|
58
|
+
},
|
|
59
|
+
|
|
60
|
+
/** Subscribe to wifi-status changes (current, previous); returns an unsubscribe. */
|
|
61
|
+
onStatus(cb: (status: WifiStatus, previous: WifiStatus) => void): () => void {
|
|
62
|
+
// Copy: like status(), never publish the store's live wifi objects to listeners.
|
|
63
|
+
return useGlassesStore.subscribe(
|
|
64
|
+
(s) => s.wifi,
|
|
65
|
+
(wifi, previous) => cb({...wifi}, {...previous}),
|
|
66
|
+
)
|
|
67
|
+
},
|
|
68
|
+
}
|