@glassly/engine 0.1.0-dev.99 → 0.2.8-dev.445
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 +28 -0
- package/build/engine.d.ts +32 -10
- package/build/engine.d.ts.map +1 -1
- package/build/engine.js +24 -16
- package/build/engine.js.map +1 -1
- package/build/facades/dev.d.ts +9 -0
- package/build/facades/dev.d.ts.map +1 -1
- package/build/facades/dev.js +9 -0
- package/build/facades/dev.js.map +1 -1
- package/build/facades/display.d.ts +10 -3
- package/build/facades/display.d.ts.map +1 -1
- package/build/facades/display.js +22 -8
- package/build/facades/display.js.map +1 -1
- package/build/facades/displayMirror.d.ts +11 -0
- package/build/facades/displayMirror.d.ts.map +1 -1
- package/build/facades/displayMirror.js +22 -0
- package/build/facades/displayMirror.js.map +1 -1
- package/build/facades/glasses.d.ts +31 -1
- package/build/facades/glasses.d.ts.map +1 -1
- package/build/facades/glasses.js +51 -0
- package/build/facades/glasses.js.map +1 -1
- package/build/facades/memory.d.ts +0 -6
- package/build/facades/memory.d.ts.map +1 -1
- package/build/facades/memory.js +1 -9
- package/build/facades/memory.js.map +1 -1
- package/build/facades/miniapps.d.ts +3 -1
- package/build/facades/miniapps.d.ts.map +1 -1
- package/build/facades/miniapps.js +3 -1
- package/build/facades/miniapps.js.map +1 -1
- package/build/facades/pairing.d.ts.map +1 -1
- package/build/facades/pairing.js +5 -4
- package/build/facades/pairing.js.map +1 -1
- package/build/facades/permissions.d.ts +2 -0
- package/build/facades/permissions.d.ts.map +1 -1
- package/build/facades/permissions.js +48 -0
- package/build/facades/permissions.js.map +1 -1
- package/build/facades/phoneNotifications.d.ts +20 -9
- package/build/facades/phoneNotifications.d.ts.map +1 -1
- package/build/facades/phoneNotifications.js +33 -26
- package/build/facades/phoneNotifications.js.map +1 -1
- package/build/facades/settings.d.ts.map +1 -1
- package/build/facades/settings.js +1 -2
- package/build/facades/settings.js.map +1 -1
- package/build/generated/releaseMetadata.js +4 -4
- package/build/generated/releaseMetadata.js.map +1 -1
- package/build/index.d.ts +6 -4
- package/build/index.d.ts.map +1 -1
- package/build/index.js +5 -4
- package/build/index.js.map +1 -1
- package/build/react/MentraLiveOtaFlow.js +2 -2
- package/build/react/MentraLiveOtaFlow.js.map +1 -1
- package/build/react/useMentraLiveOta.d.ts.map +1 -1
- package/build/react/useMentraLiveOta.js +8 -7
- package/build/react/useMentraLiveOta.js.map +1 -1
- package/build/runtime/config.d.ts +1 -1
- package/build/runtime/config.d.ts.map +1 -1
- package/build/runtime/config.js.map +1 -1
- package/build/services/AppRegistry.d.ts +4 -1
- package/build/services/AppRegistry.d.ts.map +1 -1
- package/build/services/AppRegistry.js +21 -1
- package/build/services/AppRegistry.js.map +1 -1
- package/build/services/BlobStore.d.ts +2 -2
- package/build/services/BlobStore.js +3 -3
- package/build/services/BlobStore.js.map +1 -1
- package/build/services/CloudClientService.d.ts +7 -3
- package/build/services/CloudClientService.d.ts.map +1 -1
- package/build/services/CloudClientService.js +34 -9
- package/build/services/CloudClientService.js.map +1 -1
- package/build/services/DevServerBridge.d.ts +1 -18
- package/build/services/DevServerBridge.d.ts.map +1 -1
- package/build/services/DevServerBridge.js +9 -8
- package/build/services/DevServerBridge.js.map +1 -1
- package/build/services/DeviceEventRouter.d.ts.map +1 -1
- package/build/services/DeviceEventRouter.js +58 -71
- package/build/services/DeviceEventRouter.js.map +1 -1
- package/build/services/DisplayDiagnostics.d.ts +5 -0
- package/build/services/DisplayDiagnostics.d.ts.map +1 -0
- package/build/services/DisplayDiagnostics.js +105 -0
- package/build/services/DisplayDiagnostics.js.map +1 -0
- package/build/services/DisplayProcessor.d.ts +6 -7
- package/build/services/DisplayProcessor.d.ts.map +1 -1
- package/build/services/DisplayProcessor.js +17 -45
- package/build/services/DisplayProcessor.js.map +1 -1
- package/build/services/GestureDotsService.d.ts +10 -4
- package/build/services/GestureDotsService.d.ts.map +1 -1
- package/build/services/GestureDotsService.js +70 -16
- package/build/services/GestureDotsService.js.map +1 -1
- package/build/services/GlassesKeyboardInput.d.ts +77 -0
- package/build/services/GlassesKeyboardInput.d.ts.map +1 -0
- package/build/services/GlassesKeyboardInput.js +261 -0
- package/build/services/GlassesKeyboardInput.js.map +1 -0
- package/build/services/GlassesSensorService.d.ts +47 -0
- package/build/services/GlassesSensorService.d.ts.map +1 -0
- package/build/services/GlassesSensorService.js +242 -0
- package/build/services/GlassesSensorService.js.map +1 -0
- package/build/services/GlassesTouchInput.d.ts +14 -0
- package/build/services/GlassesTouchInput.d.ts.map +1 -0
- package/build/services/GlassesTouchInput.js +107 -0
- package/build/services/GlassesTouchInput.js.map +1 -0
- package/build/services/HeadingService.d.ts +0 -6
- package/build/services/HeadingService.d.ts.map +1 -1
- package/build/services/HeadingService.js +0 -27
- package/build/services/HeadingService.js.map +1 -1
- package/build/services/HotspotShutdown.d.ts.map +1 -1
- package/build/services/HotspotShutdown.js +2 -1
- package/build/services/HotspotShutdown.js.map +1 -1
- package/build/services/JSCrashloopReportService.js +2 -2
- package/build/services/JSCrashloopReportService.js.map +1 -1
- package/build/services/JSRouter.d.ts +6 -4
- package/build/services/JSRouter.d.ts.map +1 -1
- package/build/services/JSRouter.js +15 -13
- package/build/services/JSRouter.js.map +1 -1
- package/build/services/LocalDisplayManager.d.ts +35 -7
- package/build/services/LocalDisplayManager.d.ts.map +1 -1
- package/build/services/LocalDisplayManager.js +105 -27
- package/build/services/LocalDisplayManager.js.map +1 -1
- package/build/services/LocalMiniappDataMigration.d.ts +1 -1
- package/build/services/LocalMiniappDataMigration.js +1 -1
- package/build/services/LocalMiniappDataMigration.js.map +1 -1
- package/build/services/LocalMiniappRuntime.d.ts +64 -11
- package/build/services/LocalMiniappRuntime.d.ts.map +1 -1
- package/build/services/LocalMiniappRuntime.js +441 -35
- package/build/services/LocalMiniappRuntime.js.map +1 -1
- package/build/services/LocalSttFallbackCoordinator.d.ts +3 -0
- package/build/services/LocalSttFallbackCoordinator.d.ts.map +1 -1
- package/build/services/LocalSttFallbackCoordinator.js +27 -8
- package/build/services/LocalSttFallbackCoordinator.js.map +1 -1
- package/build/services/MemoryStore.d.ts +8 -33
- package/build/services/MemoryStore.d.ts.map +1 -1
- package/build/services/MemoryStore.js +30 -56
- package/build/services/MemoryStore.js.map +1 -1
- package/build/services/MiniappEngine.d.ts +3 -3
- package/build/services/MiniappEngine.js +7 -7
- package/build/services/MiniappEngine.js.map +1 -1
- package/build/services/MiniappLauncher.d.ts +8 -0
- package/build/services/MiniappLauncher.d.ts.map +1 -1
- package/build/services/MiniappLauncher.js +19 -1
- package/build/services/MiniappLauncher.js.map +1 -1
- package/build/services/MirrorService.d.ts +24 -0
- package/build/services/MirrorService.d.ts.map +1 -0
- package/build/services/MirrorService.js +132 -0
- package/build/services/MirrorService.js.map +1 -0
- package/build/services/NativeNavigationService.d.ts +2 -3
- package/build/services/NativeNavigationService.d.ts.map +1 -1
- package/build/services/NativeNavigationService.js +24 -21
- package/build/services/NativeNavigationService.js.map +1 -1
- package/build/services/NavigationHandlers.d.ts.map +1 -1
- package/build/services/NavigationHandlers.js +10 -5
- package/build/services/NavigationHandlers.js.map +1 -1
- package/build/services/OtaInstallCoordinator.d.ts.map +1 -1
- package/build/services/OtaInstallCoordinator.js +24 -23
- package/build/services/OtaInstallCoordinator.js.map +1 -1
- package/build/services/PairedGlassesLatch.d.ts +7 -0
- package/build/services/PairedGlassesLatch.d.ts.map +1 -0
- package/build/services/PairedGlassesLatch.js +38 -0
- package/build/services/PairedGlassesLatch.js.map +1 -0
- package/build/services/PhoneActivity.d.ts +23 -0
- package/build/services/PhoneActivity.d.ts.map +1 -0
- package/build/services/PhoneActivity.js +111 -0
- package/build/services/PhoneActivity.js.map +1 -0
- package/build/services/PhoneCameraFovCoordinator.d.ts.map +1 -1
- package/build/services/PhoneCameraFovCoordinator.js +4 -3
- package/build/services/PhoneCameraFovCoordinator.js.map +1 -1
- package/build/services/PhoneNotificationsSync.d.ts +40 -6
- package/build/services/PhoneNotificationsSync.d.ts.map +1 -1
- package/build/services/PhoneNotificationsSync.js +160 -84
- package/build/services/PhoneNotificationsSync.js.map +1 -1
- package/build/services/PhonePhotoCoordinator.d.ts.map +1 -1
- package/build/services/PhonePhotoCoordinator.js +6 -5
- package/build/services/PhonePhotoCoordinator.js.map +1 -1
- package/build/services/PhoneStreamCoordinator.d.ts.map +1 -1
- package/build/services/PhoneStreamCoordinator.js +8 -7
- package/build/services/PhoneStreamCoordinator.js.map +1 -1
- package/build/services/STTModelManager.d.ts +3 -0
- package/build/services/STTModelManager.d.ts.map +1 -1
- package/build/services/STTModelManager.js +15 -1
- package/build/services/STTModelManager.js.map +1 -1
- package/build/services/SceneRenderer.d.ts +43 -2
- package/build/services/SceneRenderer.d.ts.map +1 -1
- package/build/services/SceneRenderer.js +123 -8
- package/build/services/SceneRenderer.js.map +1 -1
- package/build/services/StreamLifecycleController.d.ts.map +1 -1
- package/build/services/StreamLifecycleController.js +6 -14
- package/build/services/StreamLifecycleController.js.map +1 -1
- package/build/services/TTSModelManager.js +1 -1
- package/build/services/TTSModelManager.js.map +1 -1
- package/build/services/UIRouter.d.ts +2 -2
- package/build/services/UIRouter.js +5 -5
- package/build/services/UIRouter.js.map +1 -1
- package/build/services/asg/galleryPathMigration.js +1 -1
- package/build/services/asg/galleryPathMigration.js.map +1 -1
- package/build/services/asg/gallerySyncService.js +2 -2
- package/build/services/asg/gallerySyncService.js.map +1 -1
- package/build/services/asg/localStorageService.d.ts.map +1 -1
- package/build/services/asg/localStorageService.js +3 -3
- package/build/services/asg/localStorageService.js.map +1 -1
- package/build/services/debug/DashboardOpenTrace.d.ts +32 -0
- package/build/services/debug/DashboardOpenTrace.d.ts.map +1 -0
- package/build/services/debug/DashboardOpenTrace.js +128 -0
- package/build/services/debug/DashboardOpenTrace.js.map +1 -0
- package/build/services/debug/dashboardOpenTimeline.d.ts +77 -0
- package/build/services/debug/dashboardOpenTimeline.d.ts.map +1 -0
- package/build/services/debug/dashboardOpenTimeline.js +195 -0
- package/build/services/debug/dashboardOpenTimeline.js.map +1 -0
- package/build/services/effectiveCapabilities.d.ts.map +1 -1
- package/build/services/effectiveCapabilities.js +25 -13
- package/build/services/effectiveCapabilities.js.map +1 -1
- package/build/services/gestureClaims.d.ts +34 -15
- package/build/services/gestureClaims.d.ts.map +1 -1
- package/build/services/gestureClaims.js +42 -21
- package/build/services/gestureClaims.js.map +1 -1
- package/build/services/manifestFields.d.ts +9 -0
- package/build/services/manifestFields.d.ts.map +1 -0
- package/build/services/manifestFields.js +26 -0
- package/build/services/manifestFields.js.map +1 -0
- package/build/services/memoryStoreInstance.d.ts +0 -10
- package/build/services/memoryStoreInstance.d.ts.map +1 -1
- package/build/services/memoryStoreInstance.js +2 -31
- package/build/services/memoryStoreInstance.js.map +1 -1
- package/build/services/mirrorSnapshot.d.ts +16 -0
- package/build/services/mirrorSnapshot.d.ts.map +1 -0
- package/build/services/mirrorSnapshot.js +102 -0
- package/build/services/mirrorSnapshot.js.map +1 -0
- package/build/services/nativeNavigationGate.d.ts +8 -0
- package/build/services/nativeNavigationGate.d.ts.map +1 -0
- package/build/services/nativeNavigationGate.js +12 -0
- package/build/services/nativeNavigationGate.js.map +1 -0
- package/build/services/notificationAppCatalog.d.ts +7 -0
- package/build/services/notificationAppCatalog.d.ts.map +1 -0
- package/build/services/notificationAppCatalog.js +16 -0
- package/build/services/notificationAppCatalog.js.map +1 -0
- package/build/services/notifications/notificationPolicy.d.ts +55 -0
- package/build/services/notifications/notificationPolicy.d.ts.map +1 -0
- package/build/services/notifications/notificationPolicy.js +41 -0
- package/build/services/notifications/notificationPolicy.js.map +1 -0
- package/build/services/pages/OverlayPages.d.ts +26 -0
- package/build/services/pages/OverlayPages.d.ts.map +1 -0
- package/build/services/pages/OverlayPages.js +80 -0
- package/build/services/pages/OverlayPages.js.map +1 -0
- package/build/services/pages/PageHost.d.ts +32 -0
- package/build/services/pages/PageHost.d.ts.map +1 -0
- package/build/services/pages/PageHost.js +99 -0
- package/build/services/pages/PageHost.js.map +1 -0
- package/build/services/pages/overlayApps.d.ts +25 -0
- package/build/services/pages/overlayApps.d.ts.map +1 -0
- package/build/services/pages/overlayApps.js +66 -0
- package/build/services/pages/overlayApps.js.map +1 -0
- package/build/services/pages/pageEligibility.d.ts +9 -0
- package/build/services/pages/pageEligibility.d.ts.map +1 -0
- package/build/services/pages/pageEligibility.js +27 -0
- package/build/services/pages/pageEligibility.js.map +1 -0
- package/build/services/settingsBridge.d.ts +58 -0
- package/build/services/settingsBridge.d.ts.map +1 -0
- package/build/services/settingsBridge.js +90 -0
- package/build/services/settingsBridge.js.map +1 -0
- package/build/services/speakerProfileStoreInstance.js +1 -1
- package/build/services/speakerProfileStoreInstance.js.map +1 -1
- package/build/services/uiShim.d.ts +1 -1
- package/build/services/uiShim.js +4 -4
- package/build/services/uiShim.js.map +1 -1
- package/build/stores/appVisibility.d.ts +28 -0
- package/build/stores/appVisibility.d.ts.map +1 -1
- package/build/stores/appVisibility.js +34 -0
- package/build/stores/appVisibility.js.map +1 -1
- package/build/stores/apps.d.ts +13 -0
- package/build/stores/apps.d.ts.map +1 -1
- package/build/stores/apps.js +66 -12
- package/build/stores/apps.js.map +1 -1
- package/build/stores/bluetoothSettingKeys.js +1 -1
- package/build/stores/bluetoothSettingKeys.js.map +1 -1
- package/build/stores/display.d.ts +3 -3
- package/build/stores/display.d.ts.map +1 -1
- package/build/stores/display.js +16 -4
- package/build/stores/display.js.map +1 -1
- package/build/stores/glasses.d.ts.map +1 -1
- package/build/stores/glasses.js +14 -1
- package/build/stores/glasses.js.map +1 -1
- package/build/stores/settings.d.ts +1 -0
- package/build/stores/settings.d.ts.map +1 -1
- package/build/stores/settings.js +170 -44
- package/build/stores/settings.js.map +1 -1
- package/build/types/applet.d.ts +14 -1
- package/build/types/applet.d.ts.map +1 -1
- package/build/types/applet.js.map +1 -1
- package/build/types/capabilities/even-realities-g2.d.ts.map +1 -1
- package/build/types/capabilities/even-realities-g2.js +5 -0
- package/build/types/capabilities/even-realities-g2.js.map +1 -1
- package/build/types/capabilities/simulated-glasses.d.ts +1 -1
- package/build/types/capabilities/simulated-glasses.d.ts.map +1 -1
- package/build/types/capabilities/simulated-glasses.js +7 -4
- package/build/types/capabilities/simulated-glasses.js.map +1 -1
- package/build/types/hardware.d.ts +20 -1
- package/build/types/hardware.d.ts.map +1 -1
- package/build/types/hardware.js +2 -0
- package/build/types/hardware.js.map +1 -1
- package/build/types/index.d.ts +1 -0
- package/build/types/index.d.ts.map +1 -1
- package/build/types/index.js +1 -0
- package/build/types/index.js.map +1 -1
- package/build/utils/debouncedPatch.d.ts +3 -1
- package/build/utils/debouncedPatch.d.ts.map +1 -1
- package/build/utils/debouncedPatch.js +6 -3
- package/build/utils/debouncedPatch.js.map +1 -1
- package/build/utils/devMiniappLaunch.d.ts.map +1 -1
- package/build/utils/devMiniappLaunch.js +4 -3
- package/build/utils/devMiniappLaunch.js.map +1 -1
- package/build/utils/display/measurer/TextMeasurer.d.ts +2 -159
- package/build/utils/display/measurer/TextMeasurer.d.ts.map +1 -1
- package/build/utils/display/measurer/TextMeasurer.js +2 -272
- package/build/utils/display/measurer/TextMeasurer.js.map +1 -1
- package/build/utils/display/measurer/script-detection.d.ts +1 -52
- package/build/utils/display/measurer/script-detection.d.ts.map +1 -1
- package/build/utils/display/measurer/script-detection.js +2 -183
- package/build/utils/display/measurer/script-detection.js.map +1 -1
- package/build/utils/display/pixelArt.d.ts +3 -0
- package/build/utils/display/pixelArt.d.ts.map +1 -0
- package/build/utils/display/pixelArt.js +3 -0
- package/build/utils/display/pixelArt.js.map +1 -0
- package/build/utils/display/profiles/g1.d.ts +1 -32
- package/build/utils/display/profiles/g1.d.ts.map +1 -1
- package/build/utils/display/profiles/g1.js +2 -212
- package/build/utils/display/profiles/g1.js.map +1 -1
- package/build/utils/display/profiles/g2.d.ts +1 -12
- package/build/utils/display/profiles/g2.d.ts.map +1 -1
- package/build/utils/display/profiles/g2.js +2 -33
- package/build/utils/display/profiles/g2.js.map +1 -1
- package/build/utils/display/profiles/nex.d.ts +1 -9
- package/build/utils/display/profiles/nex.d.ts.map +1 -1
- package/build/utils/display/profiles/nex.js +2 -149
- package/build/utils/display/profiles/nex.js.map +1 -1
- package/build/utils/display/profiles/types.d.ts +1 -102
- package/build/utils/display/profiles/types.d.ts.map +1 -1
- package/build/utils/display/profiles/types.js.map +1 -1
- package/build/utils/display/profiles/z100.d.ts +1 -32
- package/build/utils/display/profiles/z100.d.ts.map +1 -1
- package/build/utils/display/profiles/z100.js +2 -181
- package/build/utils/display/profiles/z100.js.map +1 -1
- package/build/utils/display/scene/degrade.d.ts.map +1 -1
- package/build/utils/display/scene/degrade.js +4 -1
- package/build/utils/display/scene/degrade.js.map +1 -1
- package/build/utils/display/scene/differ.d.ts +13 -1
- package/build/utils/display/scene/differ.d.ts.map +1 -1
- package/build/utils/display/scene/differ.js +22 -0
- package/build/utils/display/scene/differ.js.map +1 -1
- package/build/utils/display/scene/index.d.ts +1 -1
- package/build/utils/display/scene/index.d.ts.map +1 -1
- package/build/utils/display/scene/index.js.map +1 -1
- package/build/utils/display/scene/process.d.ts.map +1 -1
- package/build/utils/display/scene/process.js +183 -11
- package/build/utils/display/scene/process.js.map +1 -1
- package/build/utils/display/scene/store.d.ts +1 -1
- package/build/utils/display/scene/store.d.ts.map +1 -1
- package/build/utils/display/scene/store.js +0 -0
- package/build/utils/display/scene/store.js.map +1 -1
- package/build/utils/display/scene/svgPath.d.ts +9 -0
- package/build/utils/display/scene/svgPath.d.ts.map +1 -0
- package/build/utils/display/scene/svgPath.js +167 -0
- package/build/utils/display/scene/svgPath.js.map +1 -0
- package/build/utils/display/scene/types.d.ts +2 -142
- package/build/utils/display/scene/types.d.ts.map +1 -1
- package/build/utils/display/scene/types.js +0 -0
- package/build/utils/display/scene/types.js.map +1 -1
- package/build/utils/display/wrapper/TextWrapper.d.ts +1 -101
- package/build/utils/display/wrapper/TextWrapper.d.ts.map +1 -1
- package/build/utils/display/wrapper/TextWrapper.js +2 -470
- package/build/utils/display/wrapper/TextWrapper.js.map +1 -1
- package/build/utils/display/wrapper/types.d.ts +2 -74
- package/build/utils/display/wrapper/types.d.ts.map +1 -1
- package/build/utils/display/wrapper/types.js +2 -10
- package/build/utils/display/wrapper/types.js.map +1 -1
- package/build/utils/hardware/hardware.js +1 -1
- package/build/utils/hardware/hardware.js.map +1 -1
- package/build/utils/timers/timers.d.ts.map +1 -1
- package/build/utils/timers/timers.js +26 -4
- package/build/utils/timers/timers.js.map +1 -1
- package/package.json +8 -8
- package/src/engine.ts +24 -15
- package/src/facades/dev.ts +10 -0
- package/src/facades/display.ts +21 -8
- package/src/facades/displayMirror.ts +29 -0
- package/src/facades/glasses.ts +61 -1
- package/src/facades/memory.ts +1 -12
- package/src/facades/miniapps.ts +4 -1
- package/src/facades/pairing.ts +8 -6
- package/src/facades/permissions.ts +46 -0
- package/src/facades/phoneNotifications.ts +45 -26
- package/src/facades/settings.ts +1 -2
- package/src/generated/releaseMetadata.ts +4 -4
- package/src/index.ts +6 -9
- package/src/react/MentraLiveOtaFlow.tsx +2 -2
- package/src/react/useMentraLiveOta.ts +14 -8
- package/src/runtime/config.ts +1 -1
- package/src/services/AppRegistry.ts +43 -7
- package/src/services/BlobStore.ts +3 -3
- package/src/services/CloudClientService.ts +37 -10
- package/src/services/DevServerBridge.ts +12 -10
- package/src/services/DeviceEventRouter.ts +73 -74
- package/src/services/DisplayDiagnostics.ts +107 -0
- package/src/services/DisplayProcessor.ts +20 -55
- package/src/services/GestureDotsService.ts +77 -16
- package/src/services/GlassesKeyboardInput.ts +306 -0
- package/src/services/GlassesSensorService.ts +233 -0
- package/src/services/GlassesTouchInput.ts +128 -0
- package/src/services/HeadingService.ts +0 -24
- package/src/services/HotspotShutdown.ts +3 -1
- package/src/services/JSCrashloopReportService.ts +2 -2
- package/src/services/JSRouter.ts +29 -14
- package/src/services/LocalDisplayManager.ts +112 -26
- package/src/services/LocalMiniappDataMigration.ts +1 -1
- package/src/services/LocalMiniappRuntime.ts +500 -43
- package/src/services/LocalSttFallbackCoordinator.ts +28 -7
- package/src/services/MemoryStore.ts +32 -80
- package/src/services/MiniappEngine.ts +7 -7
- package/src/services/MiniappLauncher.ts +25 -1
- package/src/services/MirrorService.ts +139 -0
- package/src/services/NativeNavigationService.ts +29 -25
- package/src/services/NavigationHandlers.ts +10 -5
- package/src/services/OtaInstallCoordinator.ts +36 -34
- package/src/services/PairedGlassesLatch.ts +39 -0
- package/src/services/PhoneActivity.ts +116 -0
- package/src/services/PhoneCameraFovCoordinator.ts +6 -4
- package/src/services/PhoneNotificationsSync.ts +185 -103
- package/src/services/PhonePhotoCoordinator.ts +9 -10
- package/src/services/PhoneStreamCoordinator.ts +13 -11
- package/src/services/STTModelManager.ts +15 -1
- package/src/services/SceneRenderer.ts +148 -10
- package/src/services/StreamLifecycleController.ts +9 -7
- package/src/services/TTSModelManager.ts +1 -1
- package/src/services/UIRouter.ts +5 -5
- package/src/services/asg/galleryPathMigration.ts +1 -1
- package/src/services/asg/gallerySyncService.ts +2 -2
- package/src/services/asg/localStorageService.ts +3 -3
- package/src/services/debug/DashboardOpenTrace.ts +153 -0
- package/src/services/debug/dashboardOpenTimeline.ts +237 -0
- package/src/services/effectiveCapabilities.ts +32 -13
- package/src/services/gestureClaims.ts +72 -23
- package/src/services/manifestFields.ts +23 -0
- package/src/services/memoryStoreInstance.ts +2 -34
- package/src/services/mirrorSnapshot.ts +116 -0
- package/src/services/nativeNavigationGate.ts +14 -0
- package/src/services/notificationAppCatalog.ts +21 -0
- package/src/services/notifications/notificationPolicy.ts +87 -0
- package/src/services/pages/OverlayPages.ts +86 -0
- package/src/services/pages/PageHost.ts +116 -0
- package/src/services/pages/overlayApps.ts +72 -0
- package/src/services/pages/pageEligibility.ts +30 -0
- package/src/services/settingsBridge.ts +111 -0
- package/src/services/speakerProfileStoreInstance.ts +1 -1
- package/src/services/uiShim.ts +4 -4
- package/src/stores/appVisibility.ts +45 -0
- package/src/stores/apps.ts +110 -32
- package/src/stores/bluetoothSettingKeys.ts +1 -1
- package/src/stores/display.ts +18 -7
- package/src/stores/glasses.ts +15 -1
- package/src/stores/settings.ts +175 -51
- package/src/types/applet.ts +14 -1
- package/src/types/capabilities/even-realities-g2.ts +6 -0
- package/src/types/capabilities/simulated-glasses.ts +8 -4
- package/src/types/hardware.ts +34 -1
- package/src/types/index.ts +1 -0
- package/src/utils/debouncedPatch.ts +8 -4
- package/src/utils/devMiniappLaunch.ts +5 -3
- package/src/utils/display/measurer/TextMeasurer.ts +3 -346
- package/src/utils/display/measurer/script-detection.ts +10 -218
- package/src/utils/display/pixelArt.ts +3 -0
- package/src/utils/display/profiles/g1.ts +2 -236
- package/src/utils/display/profiles/g2.ts +2 -39
- package/src/utils/display/profiles/nex.ts +2 -166
- package/src/utils/display/profiles/types.ts +9 -132
- package/src/utils/display/profiles/z100.ts +2 -198
- package/src/utils/display/scene/degrade.ts +4 -1
- package/src/utils/display/scene/differ.ts +25 -1
- package/src/utils/display/scene/index.ts +5 -0
- package/src/utils/display/scene/process.ts +196 -13
- package/src/utils/display/scene/store.ts +0 -0
- package/src/utils/display/scene/svgPath.ts +163 -0
- package/src/utils/display/scene/types.ts +0 -0
- package/src/utils/display/wrapper/TextWrapper.ts +2 -546
- package/src/utils/display/wrapper/types.ts +3 -102
- package/src/utils/hardware/hardware.ts +1 -1
- package/src/utils/timers/timers.ts +32 -4
- package/build/services/CustomDashboardModel.d.ts +0 -48
- package/build/services/CustomDashboardModel.d.ts.map +0 -1
- package/build/services/CustomDashboardModel.js +0 -73
- package/build/services/CustomDashboardModel.js.map +0 -1
- package/build/services/CustomDashboardService.d.ts +0 -63
- package/build/services/CustomDashboardService.d.ts.map +0 -1
- package/build/services/CustomDashboardService.js +0 -576
- package/build/services/CustomDashboardService.js.map +0 -1
- package/build/services/DashboardCoordinator.d.ts +0 -26
- package/build/services/DashboardCoordinator.d.ts.map +0 -1
- package/build/services/DashboardCoordinator.js +0 -125
- package/build/services/DashboardCoordinator.js.map +0 -1
- package/build/services/iosNotificationAppCatalog.d.ts +0 -13
- package/build/services/iosNotificationAppCatalog.d.ts.map +0 -1
- package/build/services/iosNotificationAppCatalog.js +0 -28
- package/build/services/iosNotificationAppCatalog.js.map +0 -1
- package/src/services/CustomDashboardModel.ts +0 -83
- package/src/services/CustomDashboardService.ts +0 -598
- package/src/services/DashboardCoordinator.ts +0 -121
- package/src/services/iosNotificationAppCatalog.ts +0 -39
|
@@ -1,213 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* These are GLYPH widths - multiply using renderFormula to get rendered pixels.
|
|
4
|
-
* Rendered width = (glyphWidth + 1) * 2
|
|
5
|
-
*/
|
|
6
|
-
const G1_GLYPH_WIDTHS = {
|
|
7
|
-
// Punctuation & Symbols
|
|
8
|
-
" ": 2,
|
|
9
|
-
"!": 1,
|
|
10
|
-
'"': 2,
|
|
11
|
-
"#": 6,
|
|
12
|
-
"$": 5,
|
|
13
|
-
"%": 6,
|
|
14
|
-
"&": 7,
|
|
15
|
-
"'": 1,
|
|
16
|
-
"(": 2,
|
|
17
|
-
")": 2,
|
|
18
|
-
"*": 3,
|
|
19
|
-
"+": 4,
|
|
20
|
-
",": 1,
|
|
21
|
-
"-": 4, // Hyphen: 4px glyph → 10px rendered (CRITICAL for breaking!)
|
|
22
|
-
".": 1,
|
|
23
|
-
"/": 3,
|
|
24
|
-
// Numbers
|
|
25
|
-
"0": 5,
|
|
26
|
-
"1": 3,
|
|
27
|
-
"2": 5,
|
|
28
|
-
"3": 5,
|
|
29
|
-
"4": 5,
|
|
30
|
-
"5": 5,
|
|
31
|
-
"6": 5,
|
|
32
|
-
"7": 5,
|
|
33
|
-
"8": 5,
|
|
34
|
-
"9": 5,
|
|
35
|
-
// More punctuation
|
|
36
|
-
":": 1,
|
|
37
|
-
";": 1,
|
|
38
|
-
"<": 4,
|
|
39
|
-
"=": 4,
|
|
40
|
-
">": 4,
|
|
41
|
-
"?": 5,
|
|
42
|
-
"@": 7,
|
|
43
|
-
// Uppercase
|
|
44
|
-
"A": 6,
|
|
45
|
-
"B": 5,
|
|
46
|
-
"C": 5,
|
|
47
|
-
"D": 5,
|
|
48
|
-
"E": 4,
|
|
49
|
-
"F": 4,
|
|
50
|
-
"G": 5,
|
|
51
|
-
"H": 5,
|
|
52
|
-
"I": 2,
|
|
53
|
-
"J": 3,
|
|
54
|
-
"K": 5,
|
|
55
|
-
"L": 4,
|
|
56
|
-
"M": 7,
|
|
57
|
-
"N": 5,
|
|
58
|
-
"O": 5,
|
|
59
|
-
"P": 5,
|
|
60
|
-
"Q": 5,
|
|
61
|
-
"R": 5,
|
|
62
|
-
"S": 5,
|
|
63
|
-
"T": 5,
|
|
64
|
-
"U": 5,
|
|
65
|
-
"V": 6,
|
|
66
|
-
"W": 7,
|
|
67
|
-
"X": 6,
|
|
68
|
-
"Y": 6,
|
|
69
|
-
"Z": 5,
|
|
70
|
-
// Brackets & special
|
|
71
|
-
"[": 2,
|
|
72
|
-
"\\": 3,
|
|
73
|
-
"]": 2,
|
|
74
|
-
"^": 4,
|
|
75
|
-
"_": 3,
|
|
76
|
-
"`": 2,
|
|
77
|
-
// Lowercase
|
|
78
|
-
"a": 5,
|
|
79
|
-
"b": 4,
|
|
80
|
-
"c": 4,
|
|
81
|
-
"d": 4,
|
|
82
|
-
"e": 4,
|
|
83
|
-
"f": 4,
|
|
84
|
-
"g": 4,
|
|
85
|
-
"h": 4,
|
|
86
|
-
"i": 1,
|
|
87
|
-
"j": 2,
|
|
88
|
-
"k": 4,
|
|
89
|
-
"l": 1,
|
|
90
|
-
"m": 7,
|
|
91
|
-
"n": 4,
|
|
92
|
-
"o": 4,
|
|
93
|
-
"p": 4,
|
|
94
|
-
"q": 4,
|
|
95
|
-
"r": 3,
|
|
96
|
-
"s": 4,
|
|
97
|
-
"t": 3,
|
|
98
|
-
"u": 5,
|
|
99
|
-
"v": 5,
|
|
100
|
-
"w": 7,
|
|
101
|
-
"x": 5,
|
|
102
|
-
"y": 5,
|
|
103
|
-
"z": 4,
|
|
104
|
-
// More special
|
|
105
|
-
"{": 3,
|
|
106
|
-
"|": 1,
|
|
107
|
-
"}": 3,
|
|
108
|
-
"~": 7,
|
|
109
|
-
};
|
|
110
|
-
/**
|
|
111
|
-
* Even Realities G1 Smart Glasses Display Profile
|
|
112
|
-
*
|
|
113
|
-
* Verified through empirical testing with actual hardware.
|
|
114
|
-
* See: line-width-debug-tool/line-width-spec.md
|
|
115
|
-
*/
|
|
116
|
-
export const G1_PROFILE = {
|
|
117
|
-
id: "even-realities-g1",
|
|
118
|
-
name: "Even Realities G1",
|
|
119
|
-
// Display dimensions
|
|
120
|
-
displayWidthPx: 576,
|
|
121
|
-
maxLines: 5,
|
|
122
|
-
// BLE constraints
|
|
123
|
-
maxPayloadBytes: 390,
|
|
124
|
-
bleChunkSize: 176,
|
|
125
|
-
// Font metrics
|
|
126
|
-
fontMetrics: {
|
|
127
|
-
// Glyph widths from G1FontLoaderKt
|
|
128
|
-
glyphWidths: new Map(Object.entries(G1_GLYPH_WIDTHS)),
|
|
129
|
-
// Default glyph width for unmapped Latin characters (use max to be safe)
|
|
130
|
-
defaultGlyphWidth: 7,
|
|
131
|
-
// Rendered width = (glyphWidth + 1) * 2
|
|
132
|
-
renderFormula: (glyphWidth) => (glyphWidth + 1) * 2,
|
|
133
|
-
// Uniform-width scripts - ALL characters in these scripts render at this exact width
|
|
134
|
-
// These are verified values in RENDERED pixels, NOT averages
|
|
135
|
-
uniformScripts: {
|
|
136
|
-
cjk: 18, // ALL Chinese/Japanese Kanji chars = 18px (verified)
|
|
137
|
-
hiragana: 18, // ALL Hiragana chars = 18px (verified)
|
|
138
|
-
katakana: 18, // ALL Katakana chars = 18px (verified)
|
|
139
|
-
korean: 24, // ALL Korean Hangul chars = 24px (verified)
|
|
140
|
-
cyrillic: 18, // ALL Cyrillic chars = 18px (verified)
|
|
141
|
-
},
|
|
142
|
-
// Fallback for unmapped Latin characters
|
|
143
|
-
// Uses MAX width to guarantee no overflow (safe under-utilization)
|
|
144
|
-
fallback: {
|
|
145
|
-
latinMaxWidth: 16, // Max Latin = 'm', 'w' at (7+1)*2 = 16px
|
|
146
|
-
unknownBehavior: "useLatinMax",
|
|
147
|
-
},
|
|
148
|
-
},
|
|
149
|
-
constraints: {
|
|
150
|
-
minCharsBeforeHyphen: 3,
|
|
151
|
-
// Kinsoku: Characters that should not appear at start of line
|
|
152
|
-
noStartChars: [".", ",", "!", "?", ":", ";", ")", "]", "}", "。", ",", "!", "?", ":", ";", ")", "】", "」"],
|
|
153
|
-
// Kinsoku: Characters that should not appear at end of line
|
|
154
|
-
noEndChars: ["(", "[", "{", "(", "【", "「"],
|
|
155
|
-
},
|
|
156
|
-
};
|
|
157
|
-
/**
|
|
158
|
-
* G1 Profile for LEGACY mobile clients that have their own wrapping logic.
|
|
159
|
-
*
|
|
160
|
-
* Old mobile clients re-wrap text received from the cloud, causing double-wrapping.
|
|
161
|
-
* This profile uses a reduced display width (~522px instead of 576px) so that
|
|
162
|
-
* when the mobile client re-wraps, the result still fits within 5 lines.
|
|
163
|
-
*
|
|
164
|
-
* Use this profile when:
|
|
165
|
-
* - Mobile client version < X.X.X (has old wrapping logic)
|
|
166
|
-
* - You see text getting cut off or exceeding 5 lines
|
|
167
|
-
*
|
|
168
|
-
* Once all clients are updated, this can be deprecated.
|
|
169
|
-
*/
|
|
170
|
-
export const G1_PROFILE_LEGACY = {
|
|
171
|
-
id: "even-realities-g1-legacy",
|
|
172
|
-
name: "Even Realities G1 (Legacy Client Compatibility)",
|
|
173
|
-
// Reduced display width to prevent double-wrapping overflow
|
|
174
|
-
// Old mobile client wraps at ~90% of true width
|
|
175
|
-
displayWidthPx: 420,
|
|
176
|
-
maxLines: 5,
|
|
177
|
-
// BLE constraints (same as standard)
|
|
178
|
-
maxPayloadBytes: 390,
|
|
179
|
-
bleChunkSize: 176,
|
|
180
|
-
// Font metrics (same as standard)
|
|
181
|
-
fontMetrics: {
|
|
182
|
-
glyphWidths: new Map(Object.entries(G1_GLYPH_WIDTHS)),
|
|
183
|
-
defaultGlyphWidth: 7,
|
|
184
|
-
renderFormula: (glyphWidth) => (glyphWidth + 1) * 2,
|
|
185
|
-
uniformScripts: {
|
|
186
|
-
cjk: 18,
|
|
187
|
-
hiragana: 18,
|
|
188
|
-
katakana: 18,
|
|
189
|
-
korean: 24,
|
|
190
|
-
cyrillic: 18,
|
|
191
|
-
},
|
|
192
|
-
fallback: {
|
|
193
|
-
latinMaxWidth: 16,
|
|
194
|
-
unknownBehavior: "useLatinMax",
|
|
195
|
-
},
|
|
196
|
-
},
|
|
197
|
-
constraints: {
|
|
198
|
-
minCharsBeforeHyphen: 3,
|
|
199
|
-
noStartChars: [".", ",", "!", "?", ":", ";", ")", "]", "}", "。", ",", "!", "?", ":", ";", ")", "】", "」"],
|
|
200
|
-
noEndChars: ["(", "[", "{", "(", "【", "「"],
|
|
201
|
-
},
|
|
202
|
-
};
|
|
203
|
-
/**
|
|
204
|
-
* Get the hyphen width for G1 in rendered pixels.
|
|
205
|
-
* Hyphen glyph = 4px → rendered = (4+1)*2 = 10px
|
|
206
|
-
*/
|
|
207
|
-
export const G1_HYPHEN_WIDTH_PX = 10;
|
|
208
|
-
/**
|
|
209
|
-
* Get the space width for G1 in rendered pixels.
|
|
210
|
-
* Space glyph = 2px → rendered = (2+1)*2 = 6px
|
|
211
|
-
*/
|
|
212
|
-
export const G1_SPACE_WIDTH_PX = 6;
|
|
1
|
+
// Moved into the SDK (@glassly/miniapp/display) so miniapps lay text out the way the host measures it; this path re-exports it for the engine.
|
|
2
|
+
export { G1_PROFILE, G1_PROFILE_LEGACY, G1_HYPHEN_WIDTH_PX, G1_SPACE_WIDTH_PX } from "@glassly/miniapp/display";
|
|
213
3
|
//# sourceMappingURL=g1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"g1.js","sourceRoot":"","sources":["../../../../src/utils/display/profiles/g1.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"g1.js","sourceRoot":"","sources":["../../../../src/utils/display/profiles/g1.ts"],"names":[],"mappings":"AAAA,+IAA+I;AAC/I,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,0BAA0B,CAAA","sourcesContent":["// Moved into the SDK (@glassly/miniapp/display) so miniapps lay text out the way the host measures it; this path re-exports it for the engine.\nexport {G1_PROFILE, G1_PROFILE_LEGACY, G1_HYPHEN_WIDTH_PX, G1_SPACE_WIDTH_PX} from \"@glassly/miniapp/display\"\n"]}
|
|
@@ -1,13 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const G2_PROFILE: DisplayProfile;
|
|
3
|
-
/**
|
|
4
|
-
* Get the hyphen width for G2 in rendered pixels.
|
|
5
|
-
* Same as G1: Hyphen glyph = 4px → rendered = (4+1)*2 = 10px
|
|
6
|
-
*/
|
|
7
|
-
export declare const G2_HYPHEN_WIDTH_PX = 10;
|
|
8
|
-
/**
|
|
9
|
-
* Get the space width for G2 in rendered pixels.
|
|
10
|
-
* Same as G1: Space glyph = 2px → rendered = (2+1)*2 = 6px
|
|
11
|
-
*/
|
|
12
|
-
export declare const G2_SPACE_WIDTH_PX = 6;
|
|
1
|
+
export { G2_PROFILE, G2_HYPHEN_WIDTH_PX, G2_SPACE_WIDTH_PX } from "@glassly/miniapp/display";
|
|
13
2
|
//# sourceMappingURL=g2.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"g2.d.ts","sourceRoot":"","sources":["../../../../src/utils/display/profiles/g2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"g2.d.ts","sourceRoot":"","sources":["../../../../src/utils/display/profiles/g2.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,0BAA0B,CAAA"}
|
|
@@ -1,34 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* G2 uses the same display hardware as G1 (green monochrome, ~640x200).
|
|
5
|
-
* Glyph widths and rendering formula are identical to G1.
|
|
6
|
-
* The protocol differs (EvenHub protobuf vs G1 binary) but display
|
|
7
|
-
* characteristics are the same.
|
|
8
|
-
*/
|
|
9
|
-
// G2 uses the same glyph widths as G1 (same display hardware/font)
|
|
10
|
-
import { G1_PROFILE } from "./g1";
|
|
11
|
-
export const G2_PROFILE = {
|
|
12
|
-
...G1_PROFILE,
|
|
13
|
-
id: "even-realities-g2",
|
|
14
|
-
name: "Even Realities G2",
|
|
15
|
-
// G2 fits more vertical text than G1 — allow up to 8 lines before the
|
|
16
|
-
// wrapper truncates (G1 stays at its inherited 5).
|
|
17
|
-
maxLines: 8,
|
|
18
|
-
// Hardware-calibrated 2026-07-03: a 28px container overflowed one line of
|
|
19
|
-
// the firmware font (triggering the fw's overflow indicator tick); 40px is
|
|
20
|
-
// clean. With this set, the scene pipeline height-clips text so a box is
|
|
21
|
-
// never handed more lines than fit.
|
|
22
|
-
lineHeightPx: 40,
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* Get the hyphen width for G2 in rendered pixels.
|
|
26
|
-
* Same as G1: Hyphen glyph = 4px → rendered = (4+1)*2 = 10px
|
|
27
|
-
*/
|
|
28
|
-
export const G2_HYPHEN_WIDTH_PX = 10;
|
|
29
|
-
/**
|
|
30
|
-
* Get the space width for G2 in rendered pixels.
|
|
31
|
-
* Same as G1: Space glyph = 2px → rendered = (2+1)*2 = 6px
|
|
32
|
-
*/
|
|
33
|
-
export const G2_SPACE_WIDTH_PX = 6;
|
|
1
|
+
// Moved into the SDK (@glassly/miniapp/display) so miniapps lay text out the way the host measures it; this path re-exports it for the engine.
|
|
2
|
+
export { G2_PROFILE, G2_HYPHEN_WIDTH_PX, G2_SPACE_WIDTH_PX } from "@glassly/miniapp/display";
|
|
34
3
|
//# sourceMappingURL=g2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"g2.js","sourceRoot":"","sources":["../../../../src/utils/display/profiles/g2.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"g2.js","sourceRoot":"","sources":["../../../../src/utils/display/profiles/g2.ts"],"names":[],"mappings":"AAAA,+IAA+I;AAC/I,OAAO,EAAC,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,0BAA0B,CAAA","sourcesContent":["// Moved into the SDK (@glassly/miniapp/display) so miniapps lay text out the way the host measures it; this path re-exports it for the engine.\nexport {G2_PROFILE, G2_HYPHEN_WIDTH_PX, G2_SPACE_WIDTH_PX} from \"@glassly/miniapp/display\"\n"]}
|
|
@@ -1,10 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Mentra Nex Smart Glasses Display Profile
|
|
4
|
-
*
|
|
5
|
-
* Also known as "Mentra Display" - a new Glassly glasses model with display capabilities.
|
|
6
|
-
*/
|
|
7
|
-
export declare const NEX_PROFILE: DisplayProfile;
|
|
8
|
-
export declare const NEX_HYPHEN_WIDTH_PX = 8;
|
|
9
|
-
export declare const NEX_SPACE_WIDTH_PX = 4;
|
|
1
|
+
export { NEX_PROFILE, NEX_HYPHEN_WIDTH_PX, NEX_SPACE_WIDTH_PX } from "@glassly/miniapp/display";
|
|
10
2
|
//# sourceMappingURL=nex.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nex.d.ts","sourceRoot":"","sources":["../../../../src/utils/display/profiles/nex.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nex.d.ts","sourceRoot":"","sources":["../../../../src/utils/display/profiles/nex.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,0BAA0B,CAAA"}
|
|
@@ -1,150 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*/
|
|
4
|
-
const NEX_GLYPH_WIDTHS = {
|
|
5
|
-
// Punctuation & Symbols
|
|
6
|
-
" ": 5,
|
|
7
|
-
"!": 5,
|
|
8
|
-
'"': 8,
|
|
9
|
-
"#": 14,
|
|
10
|
-
"$": 12,
|
|
11
|
-
"%": 18,
|
|
12
|
-
"&": 14,
|
|
13
|
-
"'": 5,
|
|
14
|
-
"(": 7,
|
|
15
|
-
")": 7,
|
|
16
|
-
"*": 8,
|
|
17
|
-
"+": 12,
|
|
18
|
-
",": 5,
|
|
19
|
-
"-": 8,
|
|
20
|
-
".": 5,
|
|
21
|
-
"/": 7,
|
|
22
|
-
// Numbers
|
|
23
|
-
"0": 12,
|
|
24
|
-
"1": 12,
|
|
25
|
-
"2": 12,
|
|
26
|
-
"3": 12,
|
|
27
|
-
"4": 12,
|
|
28
|
-
"5": 12,
|
|
29
|
-
"6": 12,
|
|
30
|
-
"7": 12,
|
|
31
|
-
"8": 12,
|
|
32
|
-
"9": 12,
|
|
33
|
-
// More punctuation
|
|
34
|
-
":": 6,
|
|
35
|
-
";": 6,
|
|
36
|
-
"<": 12,
|
|
37
|
-
"=": 12,
|
|
38
|
-
">": 12,
|
|
39
|
-
"?": 9,
|
|
40
|
-
"@": 18,
|
|
41
|
-
// Uppercase
|
|
42
|
-
"A": 12,
|
|
43
|
-
"B": 13,
|
|
44
|
-
"C": 12,
|
|
45
|
-
"D": 13,
|
|
46
|
-
"E": 11,
|
|
47
|
-
"F": 11,
|
|
48
|
-
"G": 14,
|
|
49
|
-
"H": 14,
|
|
50
|
-
"I": 8,
|
|
51
|
-
"J": 10,
|
|
52
|
-
"K": 12,
|
|
53
|
-
"L": 10,
|
|
54
|
-
"M": 16,
|
|
55
|
-
"N": 14,
|
|
56
|
-
"O": 14,
|
|
57
|
-
"P": 12,
|
|
58
|
-
"Q": 14,
|
|
59
|
-
"R": 13,
|
|
60
|
-
"S": 11,
|
|
61
|
-
"T": 11,
|
|
62
|
-
"U": 13,
|
|
63
|
-
"V": 12,
|
|
64
|
-
"W": 18,
|
|
65
|
-
"X": 12,
|
|
66
|
-
"Y": 11,
|
|
67
|
-
"Z": 11,
|
|
68
|
-
// Brackets & special
|
|
69
|
-
"[": 6,
|
|
70
|
-
"\\": 7,
|
|
71
|
-
"]": 6,
|
|
72
|
-
"^": 12,
|
|
73
|
-
"_": 11,
|
|
74
|
-
"`": 12,
|
|
75
|
-
// Lowercase
|
|
76
|
-
"a": 11,
|
|
77
|
-
"b": 11,
|
|
78
|
-
"c": 10,
|
|
79
|
-
"d": 11,
|
|
80
|
-
"e": 11,
|
|
81
|
-
"f": 6,
|
|
82
|
-
"g": 11,
|
|
83
|
-
"h": 11,
|
|
84
|
-
"i": 5,
|
|
85
|
-
"j": 5,
|
|
86
|
-
"k": 10,
|
|
87
|
-
"l": 5,
|
|
88
|
-
"m": 17,
|
|
89
|
-
"n": 11,
|
|
90
|
-
"o": 11,
|
|
91
|
-
"p": 11,
|
|
92
|
-
"q": 11,
|
|
93
|
-
"r": 7,
|
|
94
|
-
"s": 10,
|
|
95
|
-
"t": 7,
|
|
96
|
-
"u": 11,
|
|
97
|
-
"v": 10,
|
|
98
|
-
"w": 15,
|
|
99
|
-
"x": 10,
|
|
100
|
-
"y": 10,
|
|
101
|
-
"z": 9,
|
|
102
|
-
// More special
|
|
103
|
-
"{": 7,
|
|
104
|
-
"|": 6,
|
|
105
|
-
"}": 7,
|
|
106
|
-
"~": 12,
|
|
107
|
-
};
|
|
108
|
-
/**
|
|
109
|
-
* Mentra Nex Smart Glasses Display Profile
|
|
110
|
-
*
|
|
111
|
-
* Also known as "Mentra Display" - a new Glassly glasses model with display capabilities.
|
|
112
|
-
*/
|
|
113
|
-
export const NEX_PROFILE = {
|
|
114
|
-
id: "mentra-nex",
|
|
115
|
-
name: "Mentra Nex",
|
|
116
|
-
// Display dimensions — 500x220 usable region centered in the 640x480 A6N
|
|
117
|
-
// panel (firmware mos_display_config.c: margins 70/130). Canvas coordinates
|
|
118
|
-
// are relative to this virtual screen; the physical panel is bigger, 500x220
|
|
119
|
-
// is the public drawable canvas.
|
|
120
|
-
displayWidthPx: 480,
|
|
121
|
-
displayHeightPx: 220,
|
|
122
|
-
maxLines: 8,
|
|
123
|
-
maxPayloadBytes: 450, // Matches firmware MAX_TEXT_LEN / DisplayText.text cap; delivered via fragmented BLE transport
|
|
124
|
-
bleChunkSize: 176,
|
|
125
|
-
// Font metrics
|
|
126
|
-
fontMetrics: {
|
|
127
|
-
glyphWidths: new Map(Object.entries(NEX_GLYPH_WIDTHS)),
|
|
128
|
-
defaultGlyphWidth: 16,
|
|
129
|
-
renderFormula: (glyphWidth) => glyphWidth,
|
|
130
|
-
uniformScripts: {
|
|
131
|
-
cjk: 20,
|
|
132
|
-
hiragana: 18,
|
|
133
|
-
katakana: 18,
|
|
134
|
-
korean: 24,
|
|
135
|
-
cyrillic: 18,
|
|
136
|
-
},
|
|
137
|
-
fallback: {
|
|
138
|
-
latinMaxWidth: 16,
|
|
139
|
-
unknownBehavior: "useLatinMax",
|
|
140
|
-
},
|
|
141
|
-
},
|
|
142
|
-
constraints: {
|
|
143
|
-
minCharsBeforeHyphen: 3,
|
|
144
|
-
noStartChars: [".", ",", "!", "?", ":", ";", ")", "]", "}", "。", ",", "!", "?", ":", ";", ")", "】", "」"],
|
|
145
|
-
noEndChars: ["(", "[", "{", "(", "【", "「"],
|
|
146
|
-
},
|
|
147
|
-
};
|
|
148
|
-
export const NEX_HYPHEN_WIDTH_PX = 8;
|
|
149
|
-
export const NEX_SPACE_WIDTH_PX = 4;
|
|
1
|
+
// Moved into the SDK (@glassly/miniapp/display) so miniapps lay text out the way the host measures it; this path re-exports it for the engine.
|
|
2
|
+
export { NEX_PROFILE, NEX_HYPHEN_WIDTH_PX, NEX_SPACE_WIDTH_PX } from "@glassly/miniapp/display";
|
|
150
3
|
//# sourceMappingURL=nex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nex.js","sourceRoot":"","sources":["../../../../src/utils/display/profiles/nex.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nex.js","sourceRoot":"","sources":["../../../../src/utils/display/profiles/nex.ts"],"names":[],"mappings":"AAAA,+IAA+I;AAC/I,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,0BAA0B,CAAA","sourcesContent":["// Moved into the SDK (@glassly/miniapp/display) so miniapps lay text out the way the host measures it; this path re-exports it for the engine.\nexport {NEX_PROFILE, NEX_HYPHEN_WIDTH_PX, NEX_SPACE_WIDTH_PX} from \"@glassly/miniapp/display\"\n"]}
|
|
@@ -1,103 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Display profile for a specific glasses model.
|
|
3
|
-
* All text measurement and wrapping derives from this configuration.
|
|
4
|
-
*/
|
|
5
|
-
export interface DisplayProfile {
|
|
6
|
-
/** Unique identifier for this glasses model */
|
|
7
|
-
id: string;
|
|
8
|
-
/** Human-readable name */
|
|
9
|
-
name: string;
|
|
10
|
-
/** Display width in pixels */
|
|
11
|
-
displayWidthPx: number;
|
|
12
|
-
/** Display height in pixels (if applicable) */
|
|
13
|
-
displayHeightPx?: number;
|
|
14
|
-
/** Maximum number of lines that can be displayed */
|
|
15
|
-
maxLines: number;
|
|
16
|
-
/**
|
|
17
|
-
* CALIBRATED line height in px for box-height→line-count math (scene
|
|
18
|
-
* pipeline). When absent, host-side height clipping is skipped entirely and
|
|
19
|
-
* text wraps to the box width with the firmware clipping vertically in-box
|
|
20
|
-
* (legacy behavior) — it is deliberately NOT derived from canvas math, which
|
|
21
|
-
* proved wrong on hardware (see profileLineHeightPx in scene/process.ts).
|
|
22
|
-
*/
|
|
23
|
-
lineHeightPx?: number;
|
|
24
|
-
/** Maximum safe payload size in bytes (for BLE transmission) */
|
|
25
|
-
maxPayloadBytes: number;
|
|
26
|
-
/** BLE chunk size for transmission */
|
|
27
|
-
bleChunkSize: number;
|
|
28
|
-
/** Font metrics for text measurement */
|
|
29
|
-
fontMetrics: FontMetrics;
|
|
30
|
-
/** Optional constraints */
|
|
31
|
-
constraints?: DisplayConstraints;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Font metrics for pixel-accurate text measurement.
|
|
35
|
-
*/
|
|
36
|
-
export interface FontMetrics {
|
|
37
|
-
/**
|
|
38
|
-
* Map of character to glyph width in pixels.
|
|
39
|
-
* Keys are single characters.
|
|
40
|
-
*/
|
|
41
|
-
glyphWidths: Map<string, number>;
|
|
42
|
-
/** Default glyph width for unmapped characters */
|
|
43
|
-
defaultGlyphWidth: number;
|
|
44
|
-
/**
|
|
45
|
-
* Formula to convert glyph width to rendered pixel width.
|
|
46
|
-
* G1 example: (glyphWidth + 1) * 2
|
|
47
|
-
*/
|
|
48
|
-
renderFormula: (glyphWidth: number) => number;
|
|
49
|
-
/**
|
|
50
|
-
* Uniform-width scripts - verified to render all characters at same width.
|
|
51
|
-
* These are NOT averages - they are the actual uniform width in RENDERED pixels.
|
|
52
|
-
*/
|
|
53
|
-
uniformScripts: UniformScriptWidths;
|
|
54
|
-
/**
|
|
55
|
-
* Fallback configuration for unmapped characters.
|
|
56
|
-
*/
|
|
57
|
-
fallback: FallbackConfig;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Uniform width scripts - these scripts render all characters at the same width.
|
|
61
|
-
* Values are in RENDERED pixels (after applying renderFormula if applicable).
|
|
62
|
-
* Verified through hardware testing.
|
|
63
|
-
*/
|
|
64
|
-
export interface UniformScriptWidths {
|
|
65
|
-
/** Chinese, Japanese Kanji - all chars same width */
|
|
66
|
-
cjk: number;
|
|
67
|
-
/** Japanese Hiragana - all chars same width */
|
|
68
|
-
hiragana: number;
|
|
69
|
-
/** Japanese Katakana - all chars same width */
|
|
70
|
-
katakana: number;
|
|
71
|
-
/** Korean Hangul - all chars same width */
|
|
72
|
-
korean: number;
|
|
73
|
-
/** Russian, etc. - all chars same width */
|
|
74
|
-
cyrillic: number;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Fallback strategy for unmapped characters.
|
|
78
|
-
*/
|
|
79
|
-
export interface FallbackConfig {
|
|
80
|
-
/**
|
|
81
|
-
* Max known Latin width for safe fallback (in rendered pixels).
|
|
82
|
-
* Using max ensures we never overflow (worst case: slight under-utilization).
|
|
83
|
-
*/
|
|
84
|
-
latinMaxWidth: number;
|
|
85
|
-
/** What to do with completely unknown characters */
|
|
86
|
-
unknownBehavior: "useLatinMax" | "throw" | "filter";
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Optional display constraints.
|
|
90
|
-
*/
|
|
91
|
-
export interface DisplayConstraints {
|
|
92
|
-
/** Minimum characters before allowing hyphen break */
|
|
93
|
-
minCharsBeforeHyphen?: number;
|
|
94
|
-
/** Characters that should not appear at start of line (kinsoku) */
|
|
95
|
-
noStartChars?: string[];
|
|
96
|
-
/** Characters that should not appear at end of line (kinsoku) */
|
|
97
|
-
noEndChars?: string[];
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Script type for character classification.
|
|
101
|
-
*/
|
|
102
|
-
export type ScriptType = "latin" | "cjk" | "hiragana" | "katakana" | "korean" | "cyrillic" | "numbers" | "punctuation" | "unsupported";
|
|
1
|
+
export type { DisplayProfile, FontMetrics, UniformScriptWidths, FallbackConfig, DisplayConstraints, ScriptType, } from "@glassly/miniapp/display";
|
|
103
2
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/utils/display/profiles/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/utils/display/profiles/types.ts"],"names":[],"mappings":"AACA,YAAY,EACV,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,UAAU,GACX,MAAM,0BAA0B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/utils/display/profiles/types.ts"],"names":[],"mappings":"","sourcesContent":["
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/utils/display/profiles/types.ts"],"names":[],"mappings":"","sourcesContent":["// Moved into the SDK (@glassly/miniapp/display) so miniapps lay text out the way the host measures it; this path re-exports it for the engine.\nexport type {\n DisplayProfile,\n FontMetrics,\n UniformScriptWidths,\n FallbackConfig,\n DisplayConstraints,\n ScriptType,\n} from \"@glassly/miniapp/display\"\n"]}
|