@mentra/engine 0.1.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (842) hide show
  1. package/README.md +79 -0
  2. package/build/devtools.d.ts +11 -0
  3. package/build/devtools.d.ts.map +1 -0
  4. package/build/devtools.js +13 -0
  5. package/build/devtools.js.map +1 -0
  6. package/build/engine.d.ts +261 -0
  7. package/build/engine.d.ts.map +1 -0
  8. package/build/engine.js +170 -0
  9. package/build/engine.js.map +1 -0
  10. package/build/facades/dev.d.ts +58 -0
  11. package/build/facades/dev.d.ts.map +1 -0
  12. package/build/facades/dev.js +189 -0
  13. package/build/facades/dev.js.map +1 -0
  14. package/build/facades/display.d.ts +21 -0
  15. package/build/facades/display.d.ts.map +1 -0
  16. package/build/facades/display.js +17 -0
  17. package/build/facades/display.js.map +1 -0
  18. package/build/facades/displayMirror.d.ts +15 -0
  19. package/build/facades/displayMirror.d.ts.map +1 -0
  20. package/build/facades/displayMirror.js +29 -0
  21. package/build/facades/displayMirror.js.map +1 -0
  22. package/build/facades/gallery.d.ts +62 -0
  23. package/build/facades/gallery.d.ts.map +1 -0
  24. package/build/facades/gallery.js +61 -0
  25. package/build/facades/gallery.js.map +1 -0
  26. package/build/facades/glasses.d.ts +141 -0
  27. package/build/facades/glasses.d.ts.map +1 -0
  28. package/build/facades/glasses.js +199 -0
  29. package/build/facades/glasses.js.map +1 -0
  30. package/build/facades/glassesSettings.d.ts +13 -0
  31. package/build/facades/glassesSettings.d.ts.map +1 -0
  32. package/build/facades/glassesSettings.js +54 -0
  33. package/build/facades/glassesSettings.js.map +1 -0
  34. package/build/facades/glassesWifi.d.ts +25 -0
  35. package/build/facades/glassesWifi.d.ts.map +1 -0
  36. package/build/facades/glassesWifi.js +57 -0
  37. package/build/facades/glassesWifi.js.map +1 -0
  38. package/build/facades/miniapps.d.ts +43 -0
  39. package/build/facades/miniapps.d.ts.map +1 -0
  40. package/build/facades/miniapps.js +49 -0
  41. package/build/facades/miniapps.js.map +1 -0
  42. package/build/facades/notifications.d.ts +13 -0
  43. package/build/facades/notifications.d.ts.map +1 -0
  44. package/build/facades/notifications.js +12 -0
  45. package/build/facades/notifications.js.map +1 -0
  46. package/build/facades/ota.d.ts +103 -0
  47. package/build/facades/ota.d.ts.map +1 -0
  48. package/build/facades/ota.js +156 -0
  49. package/build/facades/ota.js.map +1 -0
  50. package/build/facades/pairing.d.ts +114 -0
  51. package/build/facades/pairing.d.ts.map +1 -0
  52. package/build/facades/pairing.js +275 -0
  53. package/build/facades/pairing.js.map +1 -0
  54. package/build/facades/permissions.d.ts +33 -0
  55. package/build/facades/permissions.d.ts.map +1 -0
  56. package/build/facades/permissions.js +155 -0
  57. package/build/facades/permissions.js.map +1 -0
  58. package/build/facades/phoneNotifications.d.ts +21 -0
  59. package/build/facades/phoneNotifications.d.ts.map +1 -0
  60. package/build/facades/phoneNotifications.js +51 -0
  61. package/build/facades/phoneNotifications.js.map +1 -0
  62. package/build/facades/reports.d.ts +36 -0
  63. package/build/facades/reports.d.ts.map +1 -0
  64. package/build/facades/reports.js +134 -0
  65. package/build/facades/reports.js.map +1 -0
  66. package/build/facades/session.d.ts +21 -0
  67. package/build/facades/session.d.ts.map +1 -0
  68. package/build/facades/session.js +52 -0
  69. package/build/facades/session.js.map +1 -0
  70. package/build/facades/settings.d.ts +37 -0
  71. package/build/facades/settings.d.ts.map +1 -0
  72. package/build/facades/settings.js +55 -0
  73. package/build/facades/settings.js.map +1 -0
  74. package/build/facades/speech.d.ts +30 -0
  75. package/build/facades/speech.d.ts.map +1 -0
  76. package/build/facades/speech.js +37 -0
  77. package/build/facades/speech.js.map +1 -0
  78. package/build/index.d.ts +43 -0
  79. package/build/index.d.ts.map +1 -0
  80. package/build/index.js +45 -0
  81. package/build/index.js.map +1 -0
  82. package/build/internal.d.ts +67 -0
  83. package/build/internal.d.ts.map +1 -0
  84. package/build/internal.js +90 -0
  85. package/build/internal.js.map +1 -0
  86. package/build/runtime/bootstrap.d.ts +83 -0
  87. package/build/runtime/bootstrap.d.ts.map +1 -0
  88. package/build/runtime/bootstrap.js +56 -0
  89. package/build/runtime/bootstrap.js.map +1 -0
  90. package/build/runtime/config.d.ts +146 -0
  91. package/build/runtime/config.d.ts.map +1 -0
  92. package/build/runtime/config.js +18 -0
  93. package/build/runtime/config.js.map +1 -0
  94. package/build/runtime/streamConfig.d.ts +4 -0
  95. package/build/runtime/streamConfig.d.ts.map +1 -0
  96. package/build/runtime/streamConfig.js +38 -0
  97. package/build/runtime/streamConfig.js.map +1 -0
  98. package/build/services/AppRegistry.d.ts +269 -0
  99. package/build/services/AppRegistry.d.ts.map +1 -0
  100. package/build/services/AppRegistry.js +1079 -0
  101. package/build/services/AppRegistry.js.map +1 -0
  102. package/build/services/AudioCloudUplink.d.ts +9 -0
  103. package/build/services/AudioCloudUplink.d.ts.map +1 -0
  104. package/build/services/AudioCloudUplink.js +48 -0
  105. package/build/services/AudioCloudUplink.js.map +1 -0
  106. package/build/services/AudioPlaybackService.d.ts +175 -0
  107. package/build/services/AudioPlaybackService.d.ts.map +1 -0
  108. package/build/services/AudioPlaybackService.js +705 -0
  109. package/build/services/AudioPlaybackService.js.map +1 -0
  110. package/build/services/AutomaticReportResult.d.ts +20 -0
  111. package/build/services/AutomaticReportResult.d.ts.map +1 -0
  112. package/build/services/AutomaticReportResult.js +29 -0
  113. package/build/services/AutomaticReportResult.js.map +1 -0
  114. package/build/services/BlobStore.d.ts +91 -0
  115. package/build/services/BlobStore.d.ts.map +1 -0
  116. package/build/services/BlobStore.js +668 -0
  117. package/build/services/BlobStore.js.map +1 -0
  118. package/build/services/CaptionsTesterReportService.d.ts +4 -0
  119. package/build/services/CaptionsTesterReportService.d.ts.map +1 -0
  120. package/build/services/CaptionsTesterReportService.js +80 -0
  121. package/build/services/CaptionsTesterReportService.js.map +1 -0
  122. package/build/services/CloudAudioSubscriptionSync.d.ts +24 -0
  123. package/build/services/CloudAudioSubscriptionSync.d.ts.map +1 -0
  124. package/build/services/CloudAudioSubscriptionSync.js +39 -0
  125. package/build/services/CloudAudioSubscriptionSync.js.map +1 -0
  126. package/build/services/CloudClientService.d.ts +143 -0
  127. package/build/services/CloudClientService.d.ts.map +1 -0
  128. package/build/services/CloudClientService.js +644 -0
  129. package/build/services/CloudClientService.js.map +1 -0
  130. package/build/services/CloudTranscriptE2EMetrics.d.ts +4 -0
  131. package/build/services/CloudTranscriptE2EMetrics.d.ts.map +1 -0
  132. package/build/services/CloudTranscriptE2EMetrics.js +24 -0
  133. package/build/services/CloudTranscriptE2EMetrics.js.map +1 -0
  134. package/build/services/ConnectionCoordinator.d.ts +51 -0
  135. package/build/services/ConnectionCoordinator.d.ts.map +1 -0
  136. package/build/services/ConnectionCoordinator.js +34 -0
  137. package/build/services/ConnectionCoordinator.js.map +1 -0
  138. package/build/services/DevServerBridge.d.ts +63 -0
  139. package/build/services/DevServerBridge.d.ts.map +1 -0
  140. package/build/services/DevServerBridge.js +294 -0
  141. package/build/services/DevServerBridge.js.map +1 -0
  142. package/build/services/DeviceEventRouter.d.ts +3 -0
  143. package/build/services/DeviceEventRouter.d.ts.map +1 -0
  144. package/build/services/DeviceEventRouter.js +190 -0
  145. package/build/services/DeviceEventRouter.js.map +1 -0
  146. package/build/services/DeviceStoreHydration.d.ts +38 -0
  147. package/build/services/DeviceStoreHydration.d.ts.map +1 -0
  148. package/build/services/DeviceStoreHydration.js +124 -0
  149. package/build/services/DeviceStoreHydration.js.map +1 -0
  150. package/build/services/DisplayProcessor.d.ts +223 -0
  151. package/build/services/DisplayProcessor.d.ts.map +1 -0
  152. package/build/services/DisplayProcessor.js +552 -0
  153. package/build/services/DisplayProcessor.js.map +1 -0
  154. package/build/services/GlassesReadiness.d.ts +41 -0
  155. package/build/services/GlassesReadiness.d.ts.map +1 -0
  156. package/build/services/GlassesReadiness.js +82 -0
  157. package/build/services/GlassesReadiness.js.map +1 -0
  158. package/build/services/GlassesSettingsSync.d.ts +33 -0
  159. package/build/services/GlassesSettingsSync.d.ts.map +1 -0
  160. package/build/services/GlassesSettingsSync.js +121 -0
  161. package/build/services/GlassesSettingsSync.js.map +1 -0
  162. package/build/services/GlassesStatusProjection.d.ts +3 -0
  163. package/build/services/GlassesStatusProjection.d.ts.map +1 -0
  164. package/build/services/GlassesStatusProjection.js +65 -0
  165. package/build/services/GlassesStatusProjection.js.map +1 -0
  166. package/build/services/HeadingService.d.ts +27 -0
  167. package/build/services/HeadingService.d.ts.map +1 -0
  168. package/build/services/HeadingService.js +96 -0
  169. package/build/services/HeadingService.js.map +1 -0
  170. package/build/services/LocalDisplayManager.d.ts +139 -0
  171. package/build/services/LocalDisplayManager.d.ts.map +1 -0
  172. package/build/services/LocalDisplayManager.js +579 -0
  173. package/build/services/LocalDisplayManager.js.map +1 -0
  174. package/build/services/LocalMiniappRuntime.d.ts +439 -0
  175. package/build/services/LocalMiniappRuntime.d.ts.map +1 -0
  176. package/build/services/LocalMiniappRuntime.js +3695 -0
  177. package/build/services/LocalMiniappRuntime.js.map +1 -0
  178. package/build/services/LocalSttFallbackCoordinator.d.ts +57 -0
  179. package/build/services/LocalSttFallbackCoordinator.d.ts.map +1 -0
  180. package/build/services/LocalSttFallbackCoordinator.js +137 -0
  181. package/build/services/LocalSttFallbackCoordinator.js.map +1 -0
  182. package/build/services/MentraJSCrashController.d.ts +97 -0
  183. package/build/services/MentraJSCrashController.d.ts.map +1 -0
  184. package/build/services/MentraJSCrashController.js +138 -0
  185. package/build/services/MentraJSCrashController.js.map +1 -0
  186. package/build/services/MentraJSCrashloopReportService.d.ts +9 -0
  187. package/build/services/MentraJSCrashloopReportService.d.ts.map +1 -0
  188. package/build/services/MentraJSCrashloopReportService.js +54 -0
  189. package/build/services/MentraJSCrashloopReportService.js.map +1 -0
  190. package/build/services/MentraJSLogPipeline.d.ts +87 -0
  191. package/build/services/MentraJSLogPipeline.d.ts.map +1 -0
  192. package/build/services/MentraJSLogPipeline.js +137 -0
  193. package/build/services/MentraJSLogPipeline.js.map +1 -0
  194. package/build/services/MentraJSRouter.d.ts +203 -0
  195. package/build/services/MentraJSRouter.d.ts.map +1 -0
  196. package/build/services/MentraJSRouter.js +480 -0
  197. package/build/services/MentraJSRouter.js.map +1 -0
  198. package/build/services/MentraUIRouter.d.ts +137 -0
  199. package/build/services/MentraUIRouter.d.ts.map +1 -0
  200. package/build/services/MentraUIRouter.js +210 -0
  201. package/build/services/MentraUIRouter.js.map +1 -0
  202. package/build/services/MicStateCoordinator.d.ts +37 -0
  203. package/build/services/MicStateCoordinator.d.ts.map +1 -0
  204. package/build/services/MicStateCoordinator.js +81 -0
  205. package/build/services/MicStateCoordinator.js.map +1 -0
  206. package/build/services/MiniappEngine.d.ts +31 -0
  207. package/build/services/MiniappEngine.d.ts.map +1 -0
  208. package/build/services/MiniappEngine.js +119 -0
  209. package/build/services/MiniappEngine.js.map +1 -0
  210. package/build/services/MiniappLauncher.d.ts +129 -0
  211. package/build/services/MiniappLauncher.d.ts.map +1 -0
  212. package/build/services/MiniappLauncher.js +291 -0
  213. package/build/services/MiniappLauncher.js.map +1 -0
  214. package/build/services/MiniappRunningRegistry.d.ts +24 -0
  215. package/build/services/MiniappRunningRegistry.d.ts.map +1 -0
  216. package/build/services/MiniappRunningRegistry.js +52 -0
  217. package/build/services/MiniappRunningRegistry.js.map +1 -0
  218. package/build/services/NativeHttpResponse.d.ts +3 -0
  219. package/build/services/NativeHttpResponse.d.ts.map +1 -0
  220. package/build/services/NativeHttpResponse.js +6 -0
  221. package/build/services/NativeHttpResponse.js.map +1 -0
  222. package/build/services/NavigationHandlers.d.ts +90 -0
  223. package/build/services/NavigationHandlers.d.ts.map +1 -0
  224. package/build/services/NavigationHandlers.js +379 -0
  225. package/build/services/NavigationHandlers.js.map +1 -0
  226. package/build/services/NavigationService.d.ts +254 -0
  227. package/build/services/NavigationService.d.ts.map +1 -0
  228. package/build/services/NavigationService.js +553 -0
  229. package/build/services/NavigationService.js.map +1 -0
  230. package/build/services/NotificationsEmitter.d.ts +28 -0
  231. package/build/services/NotificationsEmitter.d.ts.map +1 -0
  232. package/build/services/NotificationsEmitter.js +22 -0
  233. package/build/services/NotificationsEmitter.js.map +1 -0
  234. package/build/services/OfflineSpeechModelService.d.ts +33 -0
  235. package/build/services/OfflineSpeechModelService.d.ts.map +1 -0
  236. package/build/services/OfflineSpeechModelService.js +136 -0
  237. package/build/services/OfflineSpeechModelService.js.map +1 -0
  238. package/build/services/OtaInstallCoordinator.d.ts +195 -0
  239. package/build/services/OtaInstallCoordinator.d.ts.map +1 -0
  240. package/build/services/OtaInstallCoordinator.js +1047 -0
  241. package/build/services/OtaInstallCoordinator.js.map +1 -0
  242. package/build/services/OtaService.d.ts +3 -0
  243. package/build/services/OtaService.d.ts.map +1 -0
  244. package/build/services/OtaService.js +65 -0
  245. package/build/services/OtaService.js.map +1 -0
  246. package/build/services/OtaUpdateCheckService.d.ts +65 -0
  247. package/build/services/OtaUpdateCheckService.d.ts.map +1 -0
  248. package/build/services/OtaUpdateCheckService.js +260 -0
  249. package/build/services/OtaUpdateCheckService.js.map +1 -0
  250. package/build/services/PairingIdentity.d.ts +80 -0
  251. package/build/services/PairingIdentity.d.ts.map +1 -0
  252. package/build/services/PairingIdentity.js +145 -0
  253. package/build/services/PairingIdentity.js.map +1 -0
  254. package/build/services/PhoneCalendarHelpers.d.ts +32 -0
  255. package/build/services/PhoneCalendarHelpers.d.ts.map +1 -0
  256. package/build/services/PhoneCalendarHelpers.js +157 -0
  257. package/build/services/PhoneCalendarHelpers.js.map +1 -0
  258. package/build/services/PhoneCalendarService.d.ts +5 -0
  259. package/build/services/PhoneCalendarService.d.ts.map +1 -0
  260. package/build/services/PhoneCalendarService.js +24 -0
  261. package/build/services/PhoneCalendarService.js.map +1 -0
  262. package/build/services/PhoneCameraFovCoordinator.d.ts +28 -0
  263. package/build/services/PhoneCameraFovCoordinator.d.ts.map +1 -0
  264. package/build/services/PhoneCameraFovCoordinator.js +180 -0
  265. package/build/services/PhoneCameraFovCoordinator.js.map +1 -0
  266. package/build/services/PhoneLocationService.d.ts +36 -0
  267. package/build/services/PhoneLocationService.d.ts.map +1 -0
  268. package/build/services/PhoneLocationService.js +115 -0
  269. package/build/services/PhoneLocationService.js.map +1 -0
  270. package/build/services/PhoneNotificationsSync.d.ts +3 -0
  271. package/build/services/PhoneNotificationsSync.d.ts.map +1 -0
  272. package/build/services/PhoneNotificationsSync.js +35 -0
  273. package/build/services/PhoneNotificationsSync.js.map +1 -0
  274. package/build/services/PhonePhotoCoordinator.d.ts +103 -0
  275. package/build/services/PhonePhotoCoordinator.d.ts.map +1 -0
  276. package/build/services/PhonePhotoCoordinator.js +326 -0
  277. package/build/services/PhonePhotoCoordinator.js.map +1 -0
  278. package/build/services/PhoneStreamCoordinator.d.ts +168 -0
  279. package/build/services/PhoneStreamCoordinator.d.ts.map +1 -0
  280. package/build/services/PhoneStreamCoordinator.js +632 -0
  281. package/build/services/PhoneStreamCoordinator.js.map +1 -0
  282. package/build/services/PhoneVideoCoordinator.d.ts +50 -0
  283. package/build/services/PhoneVideoCoordinator.d.ts.map +1 -0
  284. package/build/services/PhoneVideoCoordinator.js +147 -0
  285. package/build/services/PhoneVideoCoordinator.js.map +1 -0
  286. package/build/services/STTModelManager.d.ts +65 -0
  287. package/build/services/STTModelManager.d.ts.map +1 -0
  288. package/build/services/STTModelManager.js +292 -0
  289. package/build/services/STTModelManager.js.map +1 -0
  290. package/build/services/SceneRenderer.d.ts +90 -0
  291. package/build/services/SceneRenderer.d.ts.map +1 -0
  292. package/build/services/SceneRenderer.js +248 -0
  293. package/build/services/SceneRenderer.js.map +1 -0
  294. package/build/services/SentenceTtsPipeline.d.ts +31 -0
  295. package/build/services/SentenceTtsPipeline.d.ts.map +1 -0
  296. package/build/services/SentenceTtsPipeline.js +67 -0
  297. package/build/services/SentenceTtsPipeline.js.map +1 -0
  298. package/build/services/StreamLifecycleController.d.ts +67 -0
  299. package/build/services/StreamLifecycleController.d.ts.map +1 -0
  300. package/build/services/StreamLifecycleController.js +152 -0
  301. package/build/services/StreamLifecycleController.js.map +1 -0
  302. package/build/services/TTSModelManager.d.ts +90 -0
  303. package/build/services/TTSModelManager.d.ts.map +1 -0
  304. package/build/services/TTSModelManager.js +366 -0
  305. package/build/services/TTSModelManager.js.map +1 -0
  306. package/build/services/TranscriptionRouting.d.ts +12 -0
  307. package/build/services/TranscriptionRouting.d.ts.map +1 -0
  308. package/build/services/TranscriptionRouting.js +24 -0
  309. package/build/services/TranscriptionRouting.js.map +1 -0
  310. package/build/services/WebviewBridge.d.ts +22 -0
  311. package/build/services/WebviewBridge.d.ts.map +1 -0
  312. package/build/services/WebviewBridge.js +47 -0
  313. package/build/services/WebviewBridge.js.map +1 -0
  314. package/build/services/asg/GalleryMediaIntegrityReportService.d.ts +17 -0
  315. package/build/services/asg/GalleryMediaIntegrityReportService.d.ts.map +1 -0
  316. package/build/services/asg/GalleryMediaIntegrityReportService.js +43 -0
  317. package/build/services/asg/GalleryMediaIntegrityReportService.js.map +1 -0
  318. package/build/services/asg/asgCameraApi.d.ts +205 -0
  319. package/build/services/asg/asgCameraApi.d.ts.map +1 -0
  320. package/build/services/asg/asgCameraApi.js +1410 -0
  321. package/build/services/asg/asgCameraApi.js.map +1 -0
  322. package/build/services/asg/cameraRollExportCoordinator.d.ts +60 -0
  323. package/build/services/asg/cameraRollExportCoordinator.d.ts.map +1 -0
  324. package/build/services/asg/cameraRollExportCoordinator.js +618 -0
  325. package/build/services/asg/cameraRollExportCoordinator.js.map +1 -0
  326. package/build/services/asg/cameraRollExportLedger.d.ts +44 -0
  327. package/build/services/asg/cameraRollExportLedger.d.ts.map +1 -0
  328. package/build/services/asg/cameraRollExportLedger.js +78 -0
  329. package/build/services/asg/cameraRollExportLedger.js.map +1 -0
  330. package/build/services/asg/galleryMediaValidation.d.ts +29 -0
  331. package/build/services/asg/galleryMediaValidation.d.ts.map +1 -0
  332. package/build/services/asg/galleryMediaValidation.js +149 -0
  333. package/build/services/asg/galleryMediaValidation.js.map +1 -0
  334. package/build/services/asg/galleryNotices.d.ts +33 -0
  335. package/build/services/asg/galleryNotices.d.ts.map +1 -0
  336. package/build/services/asg/galleryNotices.js +29 -0
  337. package/build/services/asg/galleryNotices.js.map +1 -0
  338. package/build/services/asg/galleryPathMigration.d.ts +3 -0
  339. package/build/services/asg/galleryPathMigration.d.ts.map +1 -0
  340. package/build/services/asg/galleryPathMigration.js +26 -0
  341. package/build/services/asg/galleryPathMigration.js.map +1 -0
  342. package/build/services/asg/gallerySettingsService.d.ts +20 -0
  343. package/build/services/asg/gallerySettingsService.d.ts.map +1 -0
  344. package/build/services/asg/gallerySettingsService.js +53 -0
  345. package/build/services/asg/gallerySettingsService.js.map +1 -0
  346. package/build/services/asg/gallerySyncNotifications.d.ts +56 -0
  347. package/build/services/asg/gallerySyncNotifications.d.ts.map +1 -0
  348. package/build/services/asg/gallerySyncNotifications.js +198 -0
  349. package/build/services/asg/gallerySyncNotifications.js.map +1 -0
  350. package/build/services/asg/gallerySyncService.d.ts +137 -0
  351. package/build/services/asg/gallerySyncService.d.ts.map +1 -0
  352. package/build/services/asg/gallerySyncService.js +1933 -0
  353. package/build/services/asg/gallerySyncService.js.map +1 -0
  354. package/build/services/asg/galleryTransferLedger.d.ts +58 -0
  355. package/build/services/asg/galleryTransferLedger.d.ts.map +1 -0
  356. package/build/services/asg/galleryTransferLedger.js +225 -0
  357. package/build/services/asg/galleryTransferLedger.js.map +1 -0
  358. package/build/services/asg/localNetworkTransport.d.ts +15 -0
  359. package/build/services/asg/localNetworkTransport.d.ts.map +1 -0
  360. package/build/services/asg/localNetworkTransport.js +144 -0
  361. package/build/services/asg/localNetworkTransport.js.map +1 -0
  362. package/build/services/asg/localStorageService.d.ts +146 -0
  363. package/build/services/asg/localStorageService.d.ts.map +1 -0
  364. package/build/services/asg/localStorageService.js +572 -0
  365. package/build/services/asg/localStorageService.js.map +1 -0
  366. package/build/services/asg/mediaProcessingQueue.d.ts +70 -0
  367. package/build/services/asg/mediaProcessingQueue.d.ts.map +1 -0
  368. package/build/services/asg/mediaProcessingQueue.js +451 -0
  369. package/build/services/asg/mediaProcessingQueue.js.map +1 -0
  370. package/build/services/asgOtaVersionUrl.d.ts +2 -0
  371. package/build/services/asgOtaVersionUrl.d.ts.map +1 -0
  372. package/build/services/asgOtaVersionUrl.js +36 -0
  373. package/build/services/asgOtaVersionUrl.js.map +1 -0
  374. package/build/services/blobPaths.d.ts +31 -0
  375. package/build/services/blobPaths.d.ts.map +1 -0
  376. package/build/services/blobPaths.js +86 -0
  377. package/build/services/blobPaths.js.map +1 -0
  378. package/build/services/cloudStreamApi.d.ts +59 -0
  379. package/build/services/cloudStreamApi.d.ts.map +1 -0
  380. package/build/services/cloudStreamApi.js +81 -0
  381. package/build/services/cloudStreamApi.js.map +1 -0
  382. package/build/services/gallerySyncClock.d.ts +17 -0
  383. package/build/services/gallerySyncClock.d.ts.map +1 -0
  384. package/build/services/gallerySyncClock.js +21 -0
  385. package/build/services/gallerySyncClock.js.map +1 -0
  386. package/build/services/glassesClockSync.d.ts +20 -0
  387. package/build/services/glassesClockSync.d.ts.map +1 -0
  388. package/build/services/glassesClockSync.js +97 -0
  389. package/build/services/glassesClockSync.js.map +1 -0
  390. package/build/services/manifestVersionGate.d.ts +28 -0
  391. package/build/services/manifestVersionGate.d.ts.map +1 -0
  392. package/build/services/manifestVersionGate.js +41 -0
  393. package/build/services/manifestVersionGate.js.map +1 -0
  394. package/build/services/mentraUiShim.d.ts +38 -0
  395. package/build/services/mentraUiShim.d.ts.map +1 -0
  396. package/build/services/mentraUiShim.js +360 -0
  397. package/build/services/mentraUiShim.js.map +1 -0
  398. package/build/services/navigation/roadNameResolver.d.ts +67 -0
  399. package/build/services/navigation/roadNameResolver.d.ts.map +1 -0
  400. package/build/services/navigation/roadNameResolver.js +96 -0
  401. package/build/services/navigation/roadNameResolver.js.map +1 -0
  402. package/build/services/navigation/routesApiCodec.d.ts +38 -0
  403. package/build/services/navigation/routesApiCodec.d.ts.map +1 -0
  404. package/build/services/navigation/routesApiCodec.js +68 -0
  405. package/build/services/navigation/routesApiCodec.js.map +1 -0
  406. package/build/services/otaDisplayState.d.ts +42 -0
  407. package/build/services/otaDisplayState.d.ts.map +1 -0
  408. package/build/services/otaDisplayState.js +92 -0
  409. package/build/services/otaDisplayState.js.map +1 -0
  410. package/build/services/otaInstallPolicy.d.ts +81 -0
  411. package/build/services/otaInstallPolicy.d.ts.map +1 -0
  412. package/build/services/otaInstallPolicy.js +96 -0
  413. package/build/services/otaInstallPolicy.js.map +1 -0
  414. package/build/services/otaLegacyMapping.d.ts +22 -0
  415. package/build/services/otaLegacyMapping.d.ts.map +1 -0
  416. package/build/services/otaLegacyMapping.js +56 -0
  417. package/build/services/otaLegacyMapping.js.map +1 -0
  418. package/build/services/slimStreamStatus.d.ts +7 -0
  419. package/build/services/slimStreamStatus.d.ts.map +1 -0
  420. package/build/services/slimStreamStatus.js +26 -0
  421. package/build/services/slimStreamStatus.js.map +1 -0
  422. package/build/stores/apps.d.ts +104 -0
  423. package/build/stores/apps.d.ts.map +1 -0
  424. package/build/stores/apps.js +492 -0
  425. package/build/stores/apps.js.map +1 -0
  426. package/build/stores/bluetoothSettingKeys.d.ts +4 -0
  427. package/build/stores/bluetoothSettingKeys.d.ts.map +1 -0
  428. package/build/stores/bluetoothSettingKeys.js +31 -0
  429. package/build/stores/bluetoothSettingKeys.js.map +1 -0
  430. package/build/stores/cloudClientStatus.d.ts +9 -0
  431. package/build/stores/cloudClientStatus.d.ts.map +1 -0
  432. package/build/stores/cloudClientStatus.js +24 -0
  433. package/build/stores/cloudClientStatus.js.map +1 -0
  434. package/build/stores/connection.d.ts +22 -0
  435. package/build/stores/connection.d.ts.map +1 -0
  436. package/build/stores/connection.js +43 -0
  437. package/build/stores/connection.js.map +1 -0
  438. package/build/stores/core.d.ts +15 -0
  439. package/build/stores/core.d.ts.map +1 -0
  440. package/build/stores/core.js +21 -0
  441. package/build/stores/core.js.map +1 -0
  442. package/build/stores/display.d.ts +24 -0
  443. package/build/stores/display.d.ts.map +1 -0
  444. package/build/stores/display.js +96 -0
  445. package/build/stores/display.js.map +1 -0
  446. package/build/stores/gallerySync.d.ts +101 -0
  447. package/build/stores/gallerySync.d.ts.map +1 -0
  448. package/build/stores/gallerySync.js +217 -0
  449. package/build/stores/gallerySync.js.map +1 -0
  450. package/build/stores/glasses.d.ts +62 -0
  451. package/build/stores/glasses.d.ts.map +1 -0
  452. package/build/stores/glasses.js +203 -0
  453. package/build/stores/glasses.js.map +1 -0
  454. package/build/stores/settings.d.ts +37 -0
  455. package/build/stores/settings.d.ts.map +1 -0
  456. package/build/stores/settings.js +922 -0
  457. package/build/stores/settings.js.map +1 -0
  458. package/build/types/applet.d.ts +96 -0
  459. package/build/types/applet.d.ts.map +1 -0
  460. package/build/types/applet.js +5 -0
  461. package/build/types/applet.js.map +1 -0
  462. package/build/types/asg.d.ts +53 -0
  463. package/build/types/asg.d.ts.map +1 -0
  464. package/build/types/asg.js +2 -0
  465. package/build/types/asg.js.map +1 -0
  466. package/build/types/capabilities/even-realities-g1.d.ts +12 -0
  467. package/build/types/capabilities/even-realities-g1.d.ts.map +1 -0
  468. package/build/types/capabilities/even-realities-g1.js +55 -0
  469. package/build/types/capabilities/even-realities-g1.js.map +1 -0
  470. package/build/types/capabilities/even-realities-g2.d.ts +12 -0
  471. package/build/types/capabilities/even-realities-g2.d.ts.map +1 -0
  472. package/build/types/capabilities/even-realities-g2.js +75 -0
  473. package/build/types/capabilities/even-realities-g2.js.map +1 -0
  474. package/build/types/capabilities/mentra-display.d.ts +12 -0
  475. package/build/types/capabilities/mentra-display.d.ts.map +1 -0
  476. package/build/types/capabilities/mentra-display.js +63 -0
  477. package/build/types/capabilities/mentra-display.js.map +1 -0
  478. package/build/types/capabilities/mentra-live.d.ts +12 -0
  479. package/build/types/capabilities/mentra-live.d.ts.map +1 -0
  480. package/build/types/capabilities/mentra-live.js +92 -0
  481. package/build/types/capabilities/mentra-live.js.map +1 -0
  482. package/build/types/capabilities/none.d.ts +13 -0
  483. package/build/types/capabilities/none.d.ts.map +1 -0
  484. package/build/types/capabilities/none.js +65 -0
  485. package/build/types/capabilities/none.js.map +1 -0
  486. package/build/types/capabilities/simulated-glasses.d.ts +13 -0
  487. package/build/types/capabilities/simulated-glasses.d.ts.map +1 -0
  488. package/build/types/capabilities/simulated-glasses.js +65 -0
  489. package/build/types/capabilities/simulated-glasses.js.map +1 -0
  490. package/build/types/capabilities/vuzix-z100.d.ts +12 -0
  491. package/build/types/capabilities/vuzix-z100.d.ts.map +1 -0
  492. package/build/types/capabilities/vuzix-z100.js +52 -0
  493. package/build/types/capabilities/vuzix-z100.js.map +1 -0
  494. package/build/types/enums.d.ts +40 -0
  495. package/build/types/enums.d.ts.map +1 -0
  496. package/build/types/enums.js +44 -0
  497. package/build/types/enums.js.map +1 -0
  498. package/build/types/hardware.d.ts +160 -0
  499. package/build/types/hardware.d.ts.map +1 -0
  500. package/build/types/hardware.js +36 -0
  501. package/build/types/hardware.js.map +1 -0
  502. package/build/types/index.d.ts +11 -0
  503. package/build/types/index.d.ts.map +1 -0
  504. package/build/types/index.js +10 -0
  505. package/build/types/index.js.map +1 -0
  506. package/build/utils/GlobalEventEmitter.d.ts +10 -0
  507. package/build/utils/GlobalEventEmitter.d.ts.map +1 -0
  508. package/build/utils/GlobalEventEmitter.js +13 -0
  509. package/build/utils/GlobalEventEmitter.js.map +1 -0
  510. package/build/utils/cloudClient/RnUdpAdapter.d.ts +3 -0
  511. package/build/utils/cloudClient/RnUdpAdapter.d.ts.map +1 -0
  512. package/build/utils/cloudClient/RnUdpAdapter.js +41 -0
  513. package/build/utils/cloudClient/RnUdpAdapter.js.map +1 -0
  514. package/build/utils/cloudClient/cloudSecureStore.d.ts +3 -0
  515. package/build/utils/cloudClient/cloudSecureStore.d.ts.map +1 -0
  516. package/build/utils/cloudClient/cloudSecureStore.js +26 -0
  517. package/build/utils/cloudClient/cloudSecureStore.js.map +1 -0
  518. package/build/utils/debouncedPatch.d.ts +6 -0
  519. package/build/utils/debouncedPatch.d.ts.map +1 -0
  520. package/build/utils/debouncedPatch.js +25 -0
  521. package/build/utils/debouncedPatch.js.map +1 -0
  522. package/build/utils/devLogging.d.ts +26 -0
  523. package/build/utils/devLogging.d.ts.map +1 -0
  524. package/build/utils/devLogging.js +116 -0
  525. package/build/utils/devLogging.js.map +1 -0
  526. package/build/utils/devMiniappLaunch.d.ts +44 -0
  527. package/build/utils/devMiniappLaunch.d.ts.map +1 -0
  528. package/build/utils/devMiniappLaunch.js +52 -0
  529. package/build/utils/devMiniappLaunch.js.map +1 -0
  530. package/build/utils/diagnosticContext.d.ts +3 -0
  531. package/build/utils/diagnosticContext.d.ts.map +1 -0
  532. package/build/utils/diagnosticContext.js +119 -0
  533. package/build/utils/diagnosticContext.js.map +1 -0
  534. package/build/utils/display/composer/ColumnComposer.d.ts +131 -0
  535. package/build/utils/display/composer/ColumnComposer.d.ts.map +1 -0
  536. package/build/utils/display/composer/ColumnComposer.js +204 -0
  537. package/build/utils/display/composer/ColumnComposer.js.map +1 -0
  538. package/build/utils/display/composer/index.d.ts +9 -0
  539. package/build/utils/display/composer/index.d.ts.map +1 -0
  540. package/build/utils/display/composer/index.js +9 -0
  541. package/build/utils/display/composer/index.js.map +1 -0
  542. package/build/utils/display/helpers/DisplayHelpers.d.ts +165 -0
  543. package/build/utils/display/helpers/DisplayHelpers.d.ts.map +1 -0
  544. package/build/utils/display/helpers/DisplayHelpers.js +312 -0
  545. package/build/utils/display/helpers/DisplayHelpers.js.map +1 -0
  546. package/build/utils/display/helpers/ScrollView.d.ts +183 -0
  547. package/build/utils/display/helpers/ScrollView.d.ts.map +1 -0
  548. package/build/utils/display/helpers/ScrollView.js +257 -0
  549. package/build/utils/display/helpers/ScrollView.js.map +1 -0
  550. package/build/utils/display/helpers/index.d.ts +11 -0
  551. package/build/utils/display/helpers/index.d.ts.map +1 -0
  552. package/build/utils/display/helpers/index.js +10 -0
  553. package/build/utils/display/helpers/index.js.map +1 -0
  554. package/build/utils/display/index.d.ts +174 -0
  555. package/build/utils/display/index.d.ts.map +1 -0
  556. package/build/utils/display/index.js +185 -0
  557. package/build/utils/display/index.js.map +1 -0
  558. package/build/utils/display/measurer/TextMeasurer.d.ts +160 -0
  559. package/build/utils/display/measurer/TextMeasurer.d.ts.map +1 -0
  560. package/build/utils/display/measurer/TextMeasurer.js +273 -0
  561. package/build/utils/display/measurer/TextMeasurer.js.map +1 -0
  562. package/build/utils/display/measurer/index.d.ts +10 -0
  563. package/build/utils/display/measurer/index.d.ts.map +1 -0
  564. package/build/utils/display/measurer/index.js +11 -0
  565. package/build/utils/display/measurer/index.js.map +1 -0
  566. package/build/utils/display/measurer/script-detection.d.ts +53 -0
  567. package/build/utils/display/measurer/script-detection.d.ts.map +1 -0
  568. package/build/utils/display/measurer/script-detection.js +184 -0
  569. package/build/utils/display/measurer/script-detection.js.map +1 -0
  570. package/build/utils/display/profiles/g1.d.ts +33 -0
  571. package/build/utils/display/profiles/g1.d.ts.map +1 -0
  572. package/build/utils/display/profiles/g1.js +213 -0
  573. package/build/utils/display/profiles/g1.js.map +1 -0
  574. package/build/utils/display/profiles/g2.d.ts +13 -0
  575. package/build/utils/display/profiles/g2.d.ts.map +1 -0
  576. package/build/utils/display/profiles/g2.js +34 -0
  577. package/build/utils/display/profiles/g2.js.map +1 -0
  578. package/build/utils/display/profiles/index.d.ts +12 -0
  579. package/build/utils/display/profiles/index.d.ts.map +1 -0
  580. package/build/utils/display/profiles/index.js +15 -0
  581. package/build/utils/display/profiles/index.js.map +1 -0
  582. package/build/utils/display/profiles/nex.d.ts +10 -0
  583. package/build/utils/display/profiles/nex.d.ts.map +1 -0
  584. package/build/utils/display/profiles/nex.js +150 -0
  585. package/build/utils/display/profiles/nex.js.map +1 -0
  586. package/build/utils/display/profiles/types.d.ts +103 -0
  587. package/build/utils/display/profiles/types.d.ts.map +1 -0
  588. package/build/utils/display/profiles/types.js +2 -0
  589. package/build/utils/display/profiles/types.js.map +1 -0
  590. package/build/utils/display/profiles/z100.d.ts +33 -0
  591. package/build/utils/display/profiles/z100.d.ts.map +1 -0
  592. package/build/utils/display/profiles/z100.js +182 -0
  593. package/build/utils/display/profiles/z100.js.map +1 -0
  594. package/build/utils/display/scene/degrade.d.ts +25 -0
  595. package/build/utils/display/scene/degrade.d.ts.map +1 -0
  596. package/build/utils/display/scene/degrade.js +64 -0
  597. package/build/utils/display/scene/degrade.js.map +1 -0
  598. package/build/utils/display/scene/differ.d.ts +38 -0
  599. package/build/utils/display/scene/differ.d.ts.map +1 -0
  600. package/build/utils/display/scene/differ.js +107 -0
  601. package/build/utils/display/scene/differ.js.map +1 -0
  602. package/build/utils/display/scene/index.d.ts +10 -0
  603. package/build/utils/display/scene/index.d.ts.map +1 -0
  604. package/build/utils/display/scene/index.js +6 -0
  605. package/build/utils/display/scene/index.js.map +1 -0
  606. package/build/utils/display/scene/process.d.ts +35 -0
  607. package/build/utils/display/scene/process.d.ts.map +1 -0
  608. package/build/utils/display/scene/process.js +187 -0
  609. package/build/utils/display/scene/process.js.map +1 -0
  610. package/build/utils/display/scene/store.d.ts +48 -0
  611. package/build/utils/display/scene/store.d.ts.map +1 -0
  612. package/build/utils/display/scene/store.js +0 -0
  613. package/build/utils/display/scene/store.js.map +1 -0
  614. package/build/utils/display/scene/types.d.ts +120 -0
  615. package/build/utils/display/scene/types.d.ts.map +1 -0
  616. package/build/utils/display/scene/types.js +0 -0
  617. package/build/utils/display/scene/types.js.map +1 -0
  618. package/build/utils/display/wrapper/TextWrapper.d.ts +102 -0
  619. package/build/utils/display/wrapper/TextWrapper.d.ts.map +1 -0
  620. package/build/utils/display/wrapper/TextWrapper.js +471 -0
  621. package/build/utils/display/wrapper/TextWrapper.js.map +1 -0
  622. package/build/utils/display/wrapper/index.d.ts +12 -0
  623. package/build/utils/display/wrapper/index.d.ts.map +1 -0
  624. package/build/utils/display/wrapper/index.js +12 -0
  625. package/build/utils/display/wrapper/index.js.map +1 -0
  626. package/build/utils/display/wrapper/types.d.ts +75 -0
  627. package/build/utils/display/wrapper/types.d.ts.map +1 -0
  628. package/build/utils/display/wrapper/types.js +11 -0
  629. package/build/utils/display/wrapper/types.js.map +1 -0
  630. package/build/utils/e2eMetrics.d.ts +6 -0
  631. package/build/utils/e2eMetrics.d.ts.map +1 -0
  632. package/build/utils/e2eMetrics.js +27 -0
  633. package/build/utils/e2eMetrics.js.map +1 -0
  634. package/build/utils/hardware/hardware.d.ts +42 -0
  635. package/build/utils/hardware/hardware.d.ts.map +1 -0
  636. package/build/utils/hardware/hardware.js +127 -0
  637. package/build/utils/hardware/hardware.js.map +1 -0
  638. package/build/utils/hardware/index.d.ts +2 -0
  639. package/build/utils/hardware/index.d.ts.map +1 -0
  640. package/build/utils/hardware/index.js +2 -0
  641. package/build/utils/hardware/index.js.map +1 -0
  642. package/build/utils/miniappGlobals.d.ts +60 -0
  643. package/build/utils/miniappGlobals.d.ts.map +1 -0
  644. package/build/utils/miniappGlobals.js +224 -0
  645. package/build/utils/miniappGlobals.js.map +1 -0
  646. package/build/utils/permissions/MediaLibraryPermissions.d.ts +45 -0
  647. package/build/utils/permissions/MediaLibraryPermissions.d.ts.map +1 -0
  648. package/build/utils/permissions/MediaLibraryPermissions.js +145 -0
  649. package/build/utils/permissions/MediaLibraryPermissions.js.map +1 -0
  650. package/build/utils/permissions/galleryDisplayName.d.ts +8 -0
  651. package/build/utils/permissions/galleryDisplayName.d.ts.map +1 -0
  652. package/build/utils/permissions/galleryDisplayName.js +25 -0
  653. package/build/utils/permissions/galleryDisplayName.js.map +1 -0
  654. package/build/utils/storage/index.d.ts +3 -0
  655. package/build/utils/storage/index.d.ts.map +1 -0
  656. package/build/utils/storage/index.js +3 -0
  657. package/build/utils/storage/index.js.map +1 -0
  658. package/build/utils/storage/storage.d.ts +24 -0
  659. package/build/utils/storage/storage.d.ts.map +1 -0
  660. package/build/utils/storage/storage.js +85 -0
  661. package/build/utils/storage/storage.js.map +1 -0
  662. package/build/utils/storage/zip.d.ts +3 -0
  663. package/build/utils/storage/zip.d.ts.map +1 -0
  664. package/build/utils/storage/zip.js +14 -0
  665. package/build/utils/storage/zip.js.map +1 -0
  666. package/build/utils/timers/index.d.ts +3 -0
  667. package/build/utils/timers/index.d.ts.map +1 -0
  668. package/build/utils/timers/index.js +3 -0
  669. package/build/utils/timers/index.js.map +1 -0
  670. package/build/utils/timers/timers.d.ts +9 -0
  671. package/build/utils/timers/timers.d.ts.map +1 -0
  672. package/build/utils/timers/timers.js +105 -0
  673. package/build/utils/timers/timers.js.map +1 -0
  674. package/package.json +120 -0
  675. package/src/devtools.ts +13 -0
  676. package/src/engine.ts +173 -0
  677. package/src/facades/dev.ts +198 -0
  678. package/src/facades/display.ts +17 -0
  679. package/src/facades/displayMirror.ts +33 -0
  680. package/src/facades/gallery.ts +69 -0
  681. package/src/facades/glasses.ts +206 -0
  682. package/src/facades/glassesSettings.ts +56 -0
  683. package/src/facades/glassesWifi.ts +68 -0
  684. package/src/facades/miniapps.ts +55 -0
  685. package/src/facades/notifications.ts +15 -0
  686. package/src/facades/ota.ts +174 -0
  687. package/src/facades/pairing.ts +329 -0
  688. package/src/facades/permissions.ts +165 -0
  689. package/src/facades/phoneNotifications.ts +50 -0
  690. package/src/facades/reports.ts +185 -0
  691. package/src/facades/session.ts +55 -0
  692. package/src/facades/settings.ts +57 -0
  693. package/src/facades/speech.ts +38 -0
  694. package/src/index.ts +191 -0
  695. package/src/internal.ts +159 -0
  696. package/src/runtime/bootstrap.ts +118 -0
  697. package/src/runtime/config.ts +147 -0
  698. package/src/runtime/streamConfig.ts +34 -0
  699. package/src/services/AppRegistry.ts +1190 -0
  700. package/src/services/AudioCloudUplink.ts +50 -0
  701. package/src/services/AudioPlaybackService.ts +813 -0
  702. package/src/services/AutomaticReportResult.ts +48 -0
  703. package/src/services/BlobStore.ts +746 -0
  704. package/src/services/CaptionsTesterReportService.ts +107 -0
  705. package/src/services/CloudAudioSubscriptionSync.ts +41 -0
  706. package/src/services/CloudClientService.ts +689 -0
  707. package/src/services/CloudTranscriptE2EMetrics.ts +27 -0
  708. package/src/services/ConnectionCoordinator.ts +65 -0
  709. package/src/services/DevServerBridge.ts +332 -0
  710. package/src/services/DeviceEventRouter.ts +238 -0
  711. package/src/services/DeviceStoreHydration.ts +130 -0
  712. package/src/services/DisplayProcessor.ts +775 -0
  713. package/src/services/GlassesReadiness.ts +103 -0
  714. package/src/services/GlassesSettingsSync.ts +134 -0
  715. package/src/services/GlassesStatusProjection.ts +73 -0
  716. package/src/services/HeadingService.ts +98 -0
  717. package/src/services/LocalDisplayManager.ts +703 -0
  718. package/src/services/LocalMiniappRuntime.ts +4213 -0
  719. package/src/services/LocalSttFallbackCoordinator.ts +147 -0
  720. package/src/services/MentraJSCrashController.ts +189 -0
  721. package/src/services/MentraJSCrashloopReportService.ts +66 -0
  722. package/src/services/MentraJSLogPipeline.ts +166 -0
  723. package/src/services/MentraJSRouter.ts +557 -0
  724. package/src/services/MentraUIRouter.ts +244 -0
  725. package/src/services/MicStateCoordinator.ts +94 -0
  726. package/src/services/MiniappEngine.ts +143 -0
  727. package/src/services/MiniappLauncher.ts +340 -0
  728. package/src/services/MiniappRunningRegistry.ts +57 -0
  729. package/src/services/NativeHttpResponse.ts +6 -0
  730. package/src/services/NavigationHandlers.ts +423 -0
  731. package/src/services/NavigationService.ts +731 -0
  732. package/src/services/NotificationsEmitter.ts +48 -0
  733. package/src/services/OfflineSpeechModelService.ts +168 -0
  734. package/src/services/OtaInstallCoordinator.ts +1205 -0
  735. package/src/services/OtaService.ts +83 -0
  736. package/src/services/OtaUpdateCheckService.ts +386 -0
  737. package/src/services/PairingIdentity.ts +154 -0
  738. package/src/services/PhoneCalendarHelpers.ts +212 -0
  739. package/src/services/PhoneCalendarService.ts +42 -0
  740. package/src/services/PhoneCameraFovCoordinator.ts +195 -0
  741. package/src/services/PhoneLocationService.ts +122 -0
  742. package/src/services/PhoneNotificationsSync.ts +44 -0
  743. package/src/services/PhonePhotoCoordinator.ts +409 -0
  744. package/src/services/PhoneStreamCoordinator.ts +777 -0
  745. package/src/services/PhoneVideoCoordinator.ts +189 -0
  746. package/src/services/STTModelManager.ts +360 -0
  747. package/src/services/SceneRenderer.ts +292 -0
  748. package/src/services/SentenceTtsPipeline.ts +106 -0
  749. package/src/services/StreamLifecycleController.ts +213 -0
  750. package/src/services/TTSModelManager.ts +466 -0
  751. package/src/services/TranscriptionRouting.ts +37 -0
  752. package/src/services/WebviewBridge.ts +50 -0
  753. package/src/services/asg/GalleryMediaIntegrityReportService.ts +70 -0
  754. package/src/services/asg/asgCameraApi.ts +1695 -0
  755. package/src/services/asg/cameraRollExportCoordinator.ts +627 -0
  756. package/src/services/asg/cameraRollExportLedger.ts +122 -0
  757. package/src/services/asg/galleryMediaValidation.ts +183 -0
  758. package/src/services/asg/galleryNotices.ts +61 -0
  759. package/src/services/asg/galleryPathMigration.ts +22 -0
  760. package/src/services/asg/gallerySettingsService.ts +68 -0
  761. package/src/services/asg/gallerySyncNotifications.ts +236 -0
  762. package/src/services/asg/gallerySyncService.ts +2269 -0
  763. package/src/services/asg/galleryTransferLedger.ts +312 -0
  764. package/src/services/asg/localNetworkTransport.ts +173 -0
  765. package/src/services/asg/localStorageService.ts +652 -0
  766. package/src/services/asg/mediaProcessingQueue.ts +518 -0
  767. package/src/services/asgOtaVersionUrl.ts +41 -0
  768. package/src/services/blobPaths.ts +86 -0
  769. package/src/services/cloudStreamApi.ts +154 -0
  770. package/src/services/gallerySyncClock.ts +39 -0
  771. package/src/services/glassesClockSync.ts +115 -0
  772. package/src/services/manifestVersionGate.ts +43 -0
  773. package/src/services/mentraUiShim.ts +366 -0
  774. package/src/services/navigation/roadNameResolver.ts +112 -0
  775. package/src/services/navigation/routesApiCodec.ts +69 -0
  776. package/src/services/otaDisplayState.ts +115 -0
  777. package/src/services/otaInstallPolicy.ts +106 -0
  778. package/src/services/otaLegacyMapping.ts +71 -0
  779. package/src/services/slimStreamStatus.ts +28 -0
  780. package/src/stores/apps.ts +614 -0
  781. package/src/stores/bluetoothSettingKeys.ts +36 -0
  782. package/src/stores/cloudClientStatus.ts +37 -0
  783. package/src/stores/connection.ts +69 -0
  784. package/src/stores/core.ts +32 -0
  785. package/src/stores/display.ts +121 -0
  786. package/src/stores/gallerySync.ts +380 -0
  787. package/src/stores/glasses.ts +309 -0
  788. package/src/stores/settings.ts +1001 -0
  789. package/src/types/applet.ts +112 -0
  790. package/src/types/asg.ts +58 -0
  791. package/src/types/capabilities/even-realities-g1.ts +67 -0
  792. package/src/types/capabilities/even-realities-g2.ts +88 -0
  793. package/src/types/capabilities/mentra-display.ts +75 -0
  794. package/src/types/capabilities/mentra-live.ts +103 -0
  795. package/src/types/capabilities/none.ts +76 -0
  796. package/src/types/capabilities/simulated-glasses.ts +76 -0
  797. package/src/types/capabilities/vuzix-z100.ts +64 -0
  798. package/src/types/enums.ts +43 -0
  799. package/src/types/hardware.ts +203 -0
  800. package/src/types/index.ts +37 -0
  801. package/src/utils/GlobalEventEmitter.ts +14 -0
  802. package/src/utils/cloudClient/RnUdpAdapter.ts +47 -0
  803. package/src/utils/cloudClient/cloudSecureStore.ts +28 -0
  804. package/src/utils/debouncedPatch.ts +28 -0
  805. package/src/utils/devLogging.ts +140 -0
  806. package/src/utils/devMiniappLaunch.ts +68 -0
  807. package/src/utils/diagnosticContext.ts +155 -0
  808. package/src/utils/display/composer/ColumnComposer.ts +285 -0
  809. package/src/utils/display/composer/index.ts +15 -0
  810. package/src/utils/display/helpers/DisplayHelpers.ts +413 -0
  811. package/src/utils/display/helpers/ScrollView.ts +337 -0
  812. package/src/utils/display/helpers/index.ts +14 -0
  813. package/src/utils/display/index.ts +273 -0
  814. package/src/utils/display/measurer/TextMeasurer.ts +346 -0
  815. package/src/utils/display/measurer/index.ts +21 -0
  816. package/src/utils/display/measurer/script-detection.ts +218 -0
  817. package/src/utils/display/profiles/g1.ts +236 -0
  818. package/src/utils/display/profiles/g2.ts +39 -0
  819. package/src/utils/display/profiles/index.ts +28 -0
  820. package/src/utils/display/profiles/nex.ts +166 -0
  821. package/src/utils/display/profiles/types.ts +132 -0
  822. package/src/utils/display/profiles/z100.ts +198 -0
  823. package/src/utils/display/scene/degrade.ts +80 -0
  824. package/src/utils/display/scene/differ.ts +128 -0
  825. package/src/utils/display/scene/index.ts +21 -0
  826. package/src/utils/display/scene/process.ts +214 -0
  827. package/src/utils/display/scene/store.ts +0 -0
  828. package/src/utils/display/scene/types.ts +0 -0
  829. package/src/utils/display/wrapper/TextWrapper.ts +546 -0
  830. package/src/utils/display/wrapper/index.ts +15 -0
  831. package/src/utils/display/wrapper/types.ts +102 -0
  832. package/src/utils/e2eMetrics.ts +30 -0
  833. package/src/utils/hardware/hardware.ts +166 -0
  834. package/src/utils/hardware/index.ts +1 -0
  835. package/src/utils/miniappGlobals.ts +260 -0
  836. package/src/utils/permissions/MediaLibraryPermissions.ts +161 -0
  837. package/src/utils/permissions/galleryDisplayName.ts +28 -0
  838. package/src/utils/storage/index.ts +2 -0
  839. package/src/utils/storage/storage.ts +101 -0
  840. package/src/utils/storage/zip.ts +13 -0
  841. package/src/utils/timers/index.ts +2 -0
  842. package/src/utils/timers/timers.ts +139 -0
@@ -0,0 +1,199 @@
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 "@mentra/bluetooth-sdk/internal";
14
+ import { useGlassesStore } from "../stores/glasses";
15
+ import { useSettingsStore, SETTINGS } from "../stores/settings";
16
+ import { hasDefaultDevice } from "../services/DeviceStoreHydration";
17
+ import { projectPairingIdentity } from "../services/PairingIdentity";
18
+ import { isGlassesConnected, isGlassesReady } from "../services/GlassesReadiness";
19
+ import { pushAllBluetoothSettings } from "../services/GlassesSettingsSync";
20
+ import { getModelCapabilities } from "../types";
21
+ import { glassesWifi } from "./glassesWifi";
22
+ import { glassesSettings } from "./glassesSettings";
23
+ function projectStatus() {
24
+ const s = useGlassesStore.getState();
25
+ return {
26
+ state: s.connection.state,
27
+ fullyBooted: isGlassesReady(s.connection),
28
+ battery: s.batteryLevel,
29
+ charging: s.charging,
30
+ case: { battery: s.caseBatteryLevel, charging: s.caseCharging, open: s.caseOpen, removed: s.caseRemoved },
31
+ signal: s.signalStrength,
32
+ micEnabled: s.micEnabled,
33
+ vadEnabled: s.voiceActivityDetectionEnabled,
34
+ btClassic: s.bluetoothClassicConnected,
35
+ };
36
+ }
37
+ function projectControllerStatus() {
38
+ const s = useGlassesStore.getState();
39
+ return {
40
+ connected: s.controllerConnected,
41
+ fullyBooted: s.controllerFullyBooted,
42
+ battery: s.controllerBatteryLevel,
43
+ signal: s.controllerSignalStrength,
44
+ };
45
+ }
46
+ function projectInfo() {
47
+ const s = useGlassesStore.getState();
48
+ return {
49
+ model: s.deviceModel,
50
+ style: s.style,
51
+ color: s.color,
52
+ bluetoothName: s.bluetoothName,
53
+ firmwareVersion: s.firmwareVersion,
54
+ mtkFirmware: s.mtkFirmwareVersion,
55
+ besFirmware: s.besFirmwareVersion,
56
+ appVersion: s.appVersion,
57
+ androidVersion: s.androidVersion,
58
+ serialNumber: s.serialNumber,
59
+ buildNumber: s.buildNumber,
60
+ btMac: s.bluetoothMacAddress,
61
+ leftMac: s.leftMacAddress,
62
+ rightMac: s.rightMacAddress,
63
+ // Copy: the snapshot must not hand callers a mutable reference into the store.
64
+ wifi: { ...s.wifi },
65
+ };
66
+ }
67
+ export const glasses = {
68
+ // --- connection (bluetooth-sdk passthrough) ---
69
+ /**
70
+ * Reconnect the default wearable. Seeds the phone's current device settings to
71
+ * native first, so they're primed before the connect handshake replays them to
72
+ * the glasses (this used to be a host-side step before `connectDefault`).
73
+ */
74
+ connectDefault: async () => {
75
+ await pushAllBluetoothSettings();
76
+ return BluetoothSdk.connectDefault();
77
+ },
78
+ disconnect: () => BluetoothSdk.disconnect(),
79
+ forget: () => BluetoothSdk.forget(),
80
+ /** Connect to a specific (discovered) device. */
81
+ connect: async (...args) => {
82
+ await pushAllBluetoothSettings();
83
+ return BluetoothSdk.connect(...args);
84
+ },
85
+ /** Connect the built-in simulated glasses (dev/testing). */
86
+ connectSimulated: () => BluetoothSdk.connectSimulated(),
87
+ /** Set a device as the `connectDefault()` target. */
88
+ setDefault: (...args) => BluetoothSdk.setDefaultDevice(...args),
89
+ /**
90
+ * Reconnect to the saved default glasses. Resolves `false` when there's nothing to
91
+ * reconnect to (no default paired) or the connect attempt fails (e.g. BLE powered
92
+ * off), `true` when already connected or after kicking off the connect. Never
93
+ * rejects — the boolean contract holds. The host gates connectivity/permissions
94
+ * (its UI) before calling.
95
+ */
96
+ reconnect: async () => {
97
+ const defaultWearable = useSettingsStore.getState().getSetting(SETTINGS.default_wearable.key);
98
+ if (!defaultWearable)
99
+ return false;
100
+ if (isGlassesConnected(useGlassesStore.getState().connection))
101
+ return true;
102
+ try {
103
+ await pushAllBluetoothSettings();
104
+ await BluetoothSdk.connectDefault();
105
+ }
106
+ catch (error) {
107
+ console.warn("engine.glasses.reconnect failed:", error);
108
+ return false;
109
+ }
110
+ return true;
111
+ },
112
+ /** True when no glasses has ever been paired NOR selected (the pairing-identity
113
+ * lifecycle is in its `none` state) — e.g. to route a first-run host into the
114
+ * pairing/onboarding flow. A pending selection is not "first" — the host should
115
+ * offer finish-pairing (see `engine.pairing.identity()`). */
116
+ isFirstPairing: () => projectPairingIdentity().kind === "none",
117
+ /**
118
+ * True when the SDK has an actual default DEVICE to reconnect to. Distinct from
119
+ * `default_wearable` (a model string that a pending or orphaned selection can
120
+ * hold without any paired device): connectDefault() throws without a device, so
121
+ * hosts should route to the pairing flow when this is false.
122
+ *
123
+ * Hydration-aware: awaits the device-store seed internally, so a cold-start
124
+ * read can't see a false "absent" for genuinely-paired users. Rejects if
125
+ * hydration failed — callers guarding destructive or routing decisions must
126
+ * fail open (treat as "has a device").
127
+ */
128
+ hasDefaultDevice: () => hasDefaultDevice(),
129
+ // --- read-model (projected from the engine-owned glasses store) ---
130
+ status: () => projectStatus(),
131
+ onStatus: (cb) => {
132
+ // Dedupe: the glasses store updates on many fields; only fire when the
133
+ // projected status snapshot actually changes.
134
+ let last = JSON.stringify(projectStatus());
135
+ return useGlassesStore.subscribe(() => {
136
+ const snap = projectStatus();
137
+ const key = JSON.stringify(snap);
138
+ if (key === last)
139
+ return;
140
+ last = key;
141
+ cb(snap);
142
+ });
143
+ },
144
+ info: () => projectInfo(),
145
+ onInfo: (cb) => {
146
+ let last = JSON.stringify(projectInfo());
147
+ return useGlassesStore.subscribe(() => {
148
+ const snap = projectInfo();
149
+ const key = JSON.stringify(snap);
150
+ if (key === last)
151
+ return;
152
+ last = key;
153
+ cb(snap);
154
+ });
155
+ },
156
+ capabilities: () => getModelCapabilities(useGlassesStore.getState().deviceModel),
157
+ /** Ask the glasses to report fresh firmware/version info (updates the store). */
158
+ requestVersionInfo: () => BluetoothSdk.requestVersionInfo(),
159
+ // --- discrete input events (passthrough listeners) ---
160
+ onButtonPress: (cb) => {
161
+ const sub = BluetoothSdk.addListener("button_press", cb);
162
+ return () => sub.remove();
163
+ },
164
+ onTouchGesture: (cb) => {
165
+ const sub = BluetoothSdk.addListener("touch_event", cb);
166
+ return () => sub.remove();
167
+ },
168
+ // --- ring controller (optional input device) ---
169
+ controller: {
170
+ connectDefault: () => BluetoothSdk.connectDefaultController(),
171
+ disconnect: () => BluetoothSdk.disconnectController(),
172
+ forget: () => BluetoothSdk.forgetController(),
173
+ status: () => projectControllerStatus(),
174
+ onStatus: (cb) => {
175
+ let last = JSON.stringify(projectControllerStatus());
176
+ return useGlassesStore.subscribe(() => {
177
+ const snap = projectControllerStatus();
178
+ const key = JSON.stringify(snap);
179
+ if (key === last)
180
+ return;
181
+ last = key;
182
+ cb(snap);
183
+ });
184
+ },
185
+ },
186
+ // --- audio (glasses media-volume + own-app playback hint) ---
187
+ audio: {
188
+ /** Read the glasses' current media volume. */
189
+ getMediaVolume: () => BluetoothSdk.getGlassesMediaVolume(),
190
+ /** Set the glasses' media volume. */
191
+ setMediaVolume: (level) => BluetoothSdk.setGlassesMediaVolume(level),
192
+ /** Tell native whether THIS app is currently playing audio (for ducking). */
193
+ setOwnAppPlaying: (playing) => BluetoothSdk.setOwnAppAudioPlaying(playing),
194
+ },
195
+ // --- sub-facades ---
196
+ wifi: glassesWifi,
197
+ settings: glassesSettings,
198
+ };
199
+ //# sourceMappingURL=glasses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glasses.js","sourceRoot":"","sources":["../../src/facades/glasses.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * glasses facade — the core `engine.glasses.*` surface: connection actions (over\n * the bluetooth-sdk passthrough), a curated status/info read-model (projected from\n * the engine-owned glasses store), capabilities (from the model table), and the\n * discrete input events. The `wifi` sub-facade is nested here.\n *\n * Read-models project the raw glasses store into the stable shape OEM UIs consume,\n * so the device store's field layout doesn't leak into every screen.\n */\n// Internal btsdk surface — connectSimulated/reconnect/controller live on the full\n// surface, not the public entry. Relative path (the alias doesn't resolve in engine's\n// standalone build); jest moduleNameMapper + tsconfig both resolve it.\nimport BluetoothSdk from \"@mentra/bluetooth-sdk/internal\"\nimport type {ButtonPressEvent, TouchEvent} from \"@mentra/bluetooth-sdk/internal\"\nimport {useGlassesStore} from \"../stores/glasses\"\nimport {useSettingsStore, SETTINGS} from \"../stores/settings\"\nimport {hasDefaultDevice} from \"../services/DeviceStoreHydration\"\nimport {projectPairingIdentity} from \"../services/PairingIdentity\"\nimport {isGlassesConnected, isGlassesReady} from \"../services/GlassesReadiness\"\nimport {pushAllBluetoothSettings} from \"../services/GlassesSettingsSync\"\nimport {getModelCapabilities, type DeviceTypes} from \"../types\"\nimport {glassesWifi} from \"./glassesWifi\"\nimport {glassesSettings} from \"./glassesSettings\"\n\nfunction projectStatus() {\n const s = useGlassesStore.getState()\n return {\n state: s.connection.state,\n fullyBooted: isGlassesReady(s.connection),\n battery: s.batteryLevel,\n charging: s.charging,\n case: {battery: s.caseBatteryLevel, charging: s.caseCharging, open: s.caseOpen, removed: s.caseRemoved},\n signal: s.signalStrength,\n micEnabled: s.micEnabled,\n vadEnabled: s.voiceActivityDetectionEnabled,\n btClassic: s.bluetoothClassicConnected,\n }\n}\n\nfunction projectControllerStatus() {\n const s = useGlassesStore.getState()\n return {\n connected: s.controllerConnected,\n fullyBooted: s.controllerFullyBooted,\n battery: s.controllerBatteryLevel,\n signal: s.controllerSignalStrength,\n }\n}\n\nfunction projectInfo() {\n const s = useGlassesStore.getState()\n return {\n model: s.deviceModel,\n style: s.style,\n color: s.color,\n bluetoothName: s.bluetoothName,\n firmwareVersion: s.firmwareVersion,\n mtkFirmware: s.mtkFirmwareVersion,\n besFirmware: s.besFirmwareVersion,\n appVersion: s.appVersion,\n androidVersion: s.androidVersion,\n serialNumber: s.serialNumber,\n buildNumber: s.buildNumber,\n btMac: s.bluetoothMacAddress,\n leftMac: s.leftMacAddress,\n rightMac: s.rightMacAddress,\n // Copy: the snapshot must not hand callers a mutable reference into the store.\n wifi: {...s.wifi},\n }\n}\n\nexport type GlassesStatusSnapshot = ReturnType<typeof projectStatus>\nexport type ControllerStatusSnapshot = ReturnType<typeof projectControllerStatus>\nexport type GlassesInfoSnapshot = ReturnType<typeof projectInfo>\n\nexport const glasses = {\n // --- connection (bluetooth-sdk passthrough) ---\n /**\n * Reconnect the default wearable. Seeds the phone's current device settings to\n * native first, so they're primed before the connect handshake replays them to\n * the glasses (this used to be a host-side step before `connectDefault`).\n */\n connectDefault: async (): Promise<void> => {\n await pushAllBluetoothSettings()\n return BluetoothSdk.connectDefault()\n },\n disconnect: (): Promise<void> => BluetoothSdk.disconnect(),\n forget: (): Promise<void> => BluetoothSdk.forget(),\n /** Connect to a specific (discovered) device. */\n connect: async (...args: Parameters<typeof BluetoothSdk.connect>): Promise<void> => {\n await pushAllBluetoothSettings()\n return BluetoothSdk.connect(...args)\n },\n /** Connect the built-in simulated glasses (dev/testing). */\n connectSimulated: (): Promise<void> => BluetoothSdk.connectSimulated(),\n /** Set a device as the `connectDefault()` target. */\n setDefault: (...args: Parameters<typeof BluetoothSdk.setDefaultDevice>) => BluetoothSdk.setDefaultDevice(...args),\n /**\n * Reconnect to the saved default glasses. Resolves `false` when there's nothing to\n * reconnect to (no default paired) or the connect attempt fails (e.g. BLE powered\n * off), `true` when already connected or after kicking off the connect. Never\n * rejects — the boolean contract holds. The host gates connectivity/permissions\n * (its UI) before calling.\n */\n reconnect: async (): Promise<boolean> => {\n const defaultWearable = useSettingsStore.getState().getSetting(SETTINGS.default_wearable.key)\n if (!defaultWearable) return false\n if (isGlassesConnected(useGlassesStore.getState().connection)) return true\n try {\n await pushAllBluetoothSettings()\n await BluetoothSdk.connectDefault()\n } catch (error) {\n console.warn(\"engine.glasses.reconnect failed:\", error)\n return false\n }\n return true\n },\n /** True when no glasses has ever been paired NOR selected (the pairing-identity\n * lifecycle is in its `none` state) — e.g. to route a first-run host into the\n * pairing/onboarding flow. A pending selection is not \"first\" — the host should\n * offer finish-pairing (see `engine.pairing.identity()`). */\n isFirstPairing: (): boolean => projectPairingIdentity().kind === \"none\",\n /**\n * True when the SDK has an actual default DEVICE to reconnect to. Distinct from\n * `default_wearable` (a model string that a pending or orphaned selection can\n * hold without any paired device): connectDefault() throws without a device, so\n * hosts should route to the pairing flow when this is false.\n *\n * Hydration-aware: awaits the device-store seed internally, so a cold-start\n * read can't see a false \"absent\" for genuinely-paired users. Rejects if\n * hydration failed — callers guarding destructive or routing decisions must\n * fail open (treat as \"has a device\").\n */\n hasDefaultDevice: (): Promise<boolean> => hasDefaultDevice(),\n\n // --- read-model (projected from the engine-owned glasses store) ---\n status: (): GlassesStatusSnapshot => projectStatus(),\n onStatus: (cb: (status: GlassesStatusSnapshot) => void): (() => void) => {\n // Dedupe: the glasses store updates on many fields; only fire when the\n // projected status snapshot actually changes.\n let last = JSON.stringify(projectStatus())\n return useGlassesStore.subscribe(() => {\n const snap = projectStatus()\n const key = JSON.stringify(snap)\n if (key === last) return\n last = key\n cb(snap)\n })\n },\n info: (): GlassesInfoSnapshot => projectInfo(),\n onInfo: (cb: (info: GlassesInfoSnapshot) => void): (() => void) => {\n let last = JSON.stringify(projectInfo())\n return useGlassesStore.subscribe(() => {\n const snap = projectInfo()\n const key = JSON.stringify(snap)\n if (key === last) return\n last = key\n cb(snap)\n })\n },\n capabilities: () => getModelCapabilities(useGlassesStore.getState().deviceModel as DeviceTypes),\n /** Ask the glasses to report fresh firmware/version info (updates the store). */\n requestVersionInfo: () => BluetoothSdk.requestVersionInfo(),\n\n // --- discrete input events (passthrough listeners) ---\n onButtonPress: (cb: (event: ButtonPressEvent) => void): (() => void) => {\n const sub = BluetoothSdk.addListener(\"button_press\", cb)\n return () => sub.remove()\n },\n onTouchGesture: (cb: (event: TouchEvent) => void): (() => void) => {\n const sub = BluetoothSdk.addListener(\"touch_event\", cb)\n return () => sub.remove()\n },\n\n // --- ring controller (optional input device) ---\n controller: {\n connectDefault: (): Promise<void> => BluetoothSdk.connectDefaultController(),\n disconnect: (): Promise<void> => BluetoothSdk.disconnectController(),\n forget: (): Promise<void> => BluetoothSdk.forgetController(),\n status: (): ControllerStatusSnapshot => projectControllerStatus(),\n onStatus: (cb: (status: ControllerStatusSnapshot) => void): (() => void) => {\n let last = JSON.stringify(projectControllerStatus())\n return useGlassesStore.subscribe(() => {\n const snap = projectControllerStatus()\n const key = JSON.stringify(snap)\n if (key === last) return\n last = key\n cb(snap)\n })\n },\n },\n\n // --- audio (glasses media-volume + own-app playback hint) ---\n audio: {\n /** Read the glasses' current media volume. */\n getMediaVolume: () => BluetoothSdk.getGlassesMediaVolume(),\n /** Set the glasses' media volume. */\n setMediaVolume: (level: number) => BluetoothSdk.setGlassesMediaVolume(level),\n /** Tell native whether THIS app is currently playing audio (for ducking). */\n setOwnAppPlaying: (playing: boolean): Promise<void> => BluetoothSdk.setOwnAppAudioPlaying(playing),\n },\n\n // --- sub-facades ---\n wifi: glassesWifi,\n settings: glassesSettings,\n}\n"]}
@@ -0,0 +1,13 @@
1
+ export declare const glassesSettings: {
2
+ /** Read a device setting by key (object/array values are shallow copies). */
3
+ get: <T = unknown>(key: string) => T | undefined;
4
+ /** Write a device setting — persists and auto-syncs to the connected glasses. */
5
+ set: <T = unknown>(key: string, value: T) => import("typesafe-ts").AsyncResult<void, Error>;
6
+ /** Subscribe to changes for one device-setting key; returns an unsubscribe. */
7
+ onChanged: <T = unknown>(key: string, cb: (value: T | undefined) => void) => (() => void);
8
+ /** The schema descriptor for a key (type, default, options…), or undefined. */
9
+ descriptor: (key: string) => import("../stores/settings").Setting;
10
+ /** The device-setting keys synced to the glasses (excludes internal sync keys). */
11
+ available: () => string[];
12
+ };
13
+ //# sourceMappingURL=glassesSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glassesSettings.d.ts","sourceRoot":"","sources":["../../src/facades/glassesSettings.ts"],"names":[],"mappings":"AAyCA,eAAO,MAAM,eAAe;IAC1B,6EAA6E;UACvE,CAAC,iBAAiB,MAAM,KAAG,CAAC,GAAG,SAAS;IAE9C,iFAAiF;UAC3E,CAAC,iBAAiB,MAAM,SAAS,CAAC;IACxC,+EAA+E;gBACnE,CAAC,iBAAiB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC;IAEvF,+EAA+E;sBAC7D,MAAM;IACxB,mFAAmF;qBAEpE,MAAM,EAAE;CACxB,CAAA"}
@@ -0,0 +1,54 @@
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
+ // Keys carried on BLUETOOTH_SETTING_KEYS for the device handshake that are NOT
13
+ // user-tunable settings — auth, device/controller IDENTITY (set by pairing), and
14
+ // internal RUNTIME flags. Kept out of the OEM-facing `available()` surface.
15
+ const INTERNAL_KEYS = new Set([
16
+ // auth
17
+ SETTINGS.core_token.key,
18
+ SETTINGS.auth_email.key,
19
+ // glasses + controller identity (managed by pairing, not the user)
20
+ SETTINGS.pending_wearable.key,
21
+ SETTINGS.default_wearable.key,
22
+ SETTINGS.device_name.key,
23
+ SETTINGS.device_address.key,
24
+ SETTINGS.pending_controller.key,
25
+ SETTINGS.default_controller.key,
26
+ SETTINGS.controller_device_name.key,
27
+ SETTINGS.controller_address.key,
28
+ // internal runtime flags
29
+ SETTINGS.local_stt_fallback_active.key,
30
+ ]);
31
+ const DEVICE_KEYS = BLUETOOTH_SETTING_KEYS.filter((k) => !INTERNAL_KEYS.has(k));
32
+ // Copy: object/array-valued settings must not hand callers a mutable reference
33
+ // into the store (mutations would bypass persistence + Bluetooth sync).
34
+ function copySettingValue(value) {
35
+ if (Array.isArray(value))
36
+ return [...value];
37
+ if (value && typeof value === "object")
38
+ return { ...value };
39
+ return value;
40
+ }
41
+ export const glassesSettings = {
42
+ /** Read a device setting by key (object/array values are shallow copies). */
43
+ get: (key) => copySettingValue(useSettingsStore.getState().getSetting(key)),
44
+ /** Write a device setting — persists and auto-syncs to the connected glasses. */
45
+ set: (key, value) => useSettingsStore.getState().setSetting(key, value),
46
+ /** Subscribe to changes for one device-setting key; returns an unsubscribe. */
47
+ onChanged: (key, cb) => useSettingsStore.subscribe((s) => s.getSetting(key), cb),
48
+ /** The schema descriptor for a key (type, default, options…), or undefined. */
49
+ descriptor: (key) => SETTINGS[key],
50
+ /** The device-setting keys synced to the glasses (excludes internal sync keys). */
51
+ // Copy: callers must not be able to mutate the module-level key list.
52
+ available: () => [...DEVICE_KEYS],
53
+ };
54
+ //# sourceMappingURL=glassesSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glassesSettings.js","sourceRoot":"","sources":["../../src/facades/glassesSettings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAC,gBAAgB,EAAE,QAAQ,EAAE,sBAAsB,EAAC,MAAM,oBAAoB,CAAA;AAErF,+EAA+E;AAC/E,iFAAiF;AACjF,4EAA4E;AAC5E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS;IACpC,OAAO;IACP,QAAQ,CAAC,UAAU,CAAC,GAAG;IACvB,QAAQ,CAAC,UAAU,CAAC,GAAG;IACvB,mEAAmE;IACnE,QAAQ,CAAC,gBAAgB,CAAC,GAAG;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,GAAG;IAC7B,QAAQ,CAAC,WAAW,CAAC,GAAG;IACxB,QAAQ,CAAC,cAAc,CAAC,GAAG;IAC3B,QAAQ,CAAC,kBAAkB,CAAC,GAAG;IAC/B,QAAQ,CAAC,kBAAkB,CAAC,GAAG;IAC/B,QAAQ,CAAC,sBAAsB,CAAC,GAAG;IACnC,QAAQ,CAAC,kBAAkB,CAAC,GAAG;IAC/B,yBAAyB;IACzB,QAAQ,CAAC,yBAAyB,CAAC,GAAG;CACvC,CAAC,CAAA;AACF,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAE/E,+EAA+E;AAC/E,wEAAwE;AACxE,SAAS,gBAAgB,CAAI,KAAQ;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,KAAK,CAAM,CAAA;IAChD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAC,GAAI,KAAgB,EAAM,CAAA;IAC1E,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,6EAA6E;IAC7E,GAAG,EAAE,CAAc,GAAW,EAAiB,EAAE,CAC/C,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,CAAkB,CAAC;IAChF,iFAAiF;IACjF,GAAG,EAAE,CAAc,GAAW,EAAE,KAAQ,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAC/F,+EAA+E;IAC/E,SAAS,EAAE,CAAc,GAAW,EAAE,EAAkC,EAAgB,EAAE,CACxF,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAkB,EAAE,EAAE,CAAC;IAC3E,+EAA+E;IAC/E,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC1C,mFAAmF;IACnF,sEAAsE;IACtE,SAAS,EAAE,GAAa,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC;CAC5C,CAAA","sourcesContent":["/**\n * glasses.settings facade — `engine.glasses.settings`: the keyed DEVICE-settings\n * surface (brightness, head-up angle, dashboard, camera/button, sensing, …). These\n * are the settings the engine store auto-syncs to the glasses over the bluetooth-sdk\n * (`BLUETOOTH_SETTING_KEYS`), so `set()` both persists and pushes to the device.\n *\n * Distinct from `engine.settings` (user/app prefs): this is scoped to the\n * hardware-facing keys, minus the internal sync keys (auth/token) that aren't\n * user-tunable device settings.\n */\nimport {useSettingsStore, SETTINGS, BLUETOOTH_SETTING_KEYS} from \"../stores/settings\"\n\n// Keys carried on BLUETOOTH_SETTING_KEYS for the device handshake that are NOT\n// user-tunable settings — auth, device/controller IDENTITY (set by pairing), and\n// internal RUNTIME flags. Kept out of the OEM-facing `available()` surface.\nconst INTERNAL_KEYS = new Set<string>([\n // auth\n SETTINGS.core_token.key,\n SETTINGS.auth_email.key,\n // glasses + controller identity (managed by pairing, not the user)\n SETTINGS.pending_wearable.key,\n SETTINGS.default_wearable.key,\n SETTINGS.device_name.key,\n SETTINGS.device_address.key,\n SETTINGS.pending_controller.key,\n SETTINGS.default_controller.key,\n SETTINGS.controller_device_name.key,\n SETTINGS.controller_address.key,\n // internal runtime flags\n SETTINGS.local_stt_fallback_active.key,\n])\nconst DEVICE_KEYS = BLUETOOTH_SETTING_KEYS.filter((k) => !INTERNAL_KEYS.has(k))\n\n// Copy: object/array-valued settings must not hand callers a mutable reference\n// into the store (mutations would bypass persistence + Bluetooth sync).\nfunction copySettingValue<T>(value: T): T {\n if (Array.isArray(value)) return [...value] as T\n if (value && typeof value === \"object\") return {...(value as object)} as T\n return value\n}\n\nexport const glassesSettings = {\n /** Read a device setting by key (object/array values are shallow copies). */\n get: <T = unknown>(key: string): T | undefined =>\n copySettingValue(useSettingsStore.getState().getSetting(key) as T | undefined),\n /** Write a device setting — persists and auto-syncs to the connected glasses. */\n set: <T = unknown>(key: string, value: T) => useSettingsStore.getState().setSetting(key, value),\n /** Subscribe to changes for one device-setting key; returns an unsubscribe. */\n onChanged: <T = unknown>(key: string, cb: (value: T | undefined) => void): (() => void) =>\n useSettingsStore.subscribe((s) => s.getSetting(key) as T | undefined, cb),\n /** The schema descriptor for a key (type, default, options…), or undefined. */\n descriptor: (key: string) => SETTINGS[key],\n /** The device-setting keys synced to the glasses (excludes internal sync keys). */\n // Copy: callers must not be able to mutate the module-level key list.\n available: (): string[] => [...DEVICE_KEYS],\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import type { WifiSearchResult, WifiStatus } from "@mentra/bluetooth-sdk";
2
+ export type { WifiSearchResult, WifiStatus };
3
+ export declare const glassesWifi: {
4
+ /** Scan for nearby wifi networks. Request/response — resolves with the results. */
5
+ scan(): Promise<WifiSearchResult[]>;
6
+ /**
7
+ * Subscribe to streamed scan results: the glasses report networks one by one
8
+ * while a scan runs, so callers can render them as they arrive instead of
9
+ * waiting for the final `scan()` result. Returns an unsubscribe.
10
+ */
11
+ onScanResult(cb: (networks: WifiSearchResult[]) => void): () => void;
12
+ /**
13
+ * Send wifi credentials to the glasses. Resolves on success; rejects with the
14
+ * bluetooth-sdk coded error (`bluetooth_powered_off`, `request_timeout`, …) on
15
+ * failure, propagated unchanged for the caller to map.
16
+ */
17
+ connect(ssid: string, password: string): Promise<void>;
18
+ /** Forget a saved network on the glasses. */
19
+ forget(ssid: string): Promise<void>;
20
+ /** The glasses' current wifi connection status (snapshot). */
21
+ status(): WifiStatus;
22
+ /** Subscribe to wifi-status changes (current, previous); returns an unsubscribe. */
23
+ onStatus(cb: (status: WifiStatus, previous: WifiStatus) => void): () => void;
24
+ };
25
+ //# sourceMappingURL=glassesWifi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glassesWifi.d.ts","sourceRoot":"","sources":["../../src/facades/glassesWifi.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAC,gBAAgB,EAAE,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAGvE,YAAY,EAAC,gBAAgB,EAAE,UAAU,EAAC,CAAA;AAE1C,eAAO,MAAM,WAAW;IACtB,mFAAmF;YAC3E,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAInC;;;;OAIG;qBACc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAOpE;;;;OAIG;kBACiB,MAAM,YAAY,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,6CAA6C;iBAC1B,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,8DAA8D;cACpD,UAAU;IAKpB,oFAAoF;iBACvE,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI;CAO7E,CAAA"}
@@ -0,0 +1,57 @@
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 `@mentra/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 "@mentra/bluetooth-sdk";
17
+ import { useGlassesStore } from "../stores/glasses";
18
+ export const glassesWifi = {
19
+ /** Scan for nearby wifi networks. Request/response — resolves with the results. */
20
+ scan() {
21
+ return BluetoothSdk.requestWifiScan();
22
+ },
23
+ /**
24
+ * Subscribe to streamed scan results: the glasses report networks one by one
25
+ * while a scan runs, so callers can render them as they arrive instead of
26
+ * waiting for the final `scan()` result. Returns an unsubscribe.
27
+ */
28
+ onScanResult(cb) {
29
+ const sub = BluetoothSdk.addListener("wifi_scan_result", (event) => {
30
+ cb(event.networks);
31
+ });
32
+ return () => sub.remove();
33
+ },
34
+ /**
35
+ * Send wifi credentials to the glasses. Resolves on success; rejects with the
36
+ * bluetooth-sdk coded error (`bluetooth_powered_off`, `request_timeout`, …) on
37
+ * failure, propagated unchanged for the caller to map.
38
+ */
39
+ async connect(ssid, password) {
40
+ await BluetoothSdk.sendWifiCredentials(ssid, password);
41
+ },
42
+ /** Forget a saved network on the glasses. */
43
+ async forget(ssid) {
44
+ await BluetoothSdk.forgetWifiNetwork(ssid);
45
+ },
46
+ /** The glasses' current wifi connection status (snapshot). */
47
+ status() {
48
+ // Copy: the snapshot must not hand callers a mutable reference into the store.
49
+ return { ...useGlassesStore.getState().wifi };
50
+ },
51
+ /** Subscribe to wifi-status changes (current, previous); returns an unsubscribe. */
52
+ onStatus(cb) {
53
+ // Copy: like status(), never publish the store's live wifi objects to listeners.
54
+ return useGlassesStore.subscribe((s) => s.wifi, (wifi, previous) => cb({ ...wifi }, { ...previous }));
55
+ },
56
+ };
57
+ //# sourceMappingURL=glassesWifi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glassesWifi.js","sourceRoot":"","sources":["../../src/facades/glassesWifi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,YAAY,MAAM,uBAAuB,CAAA;AAEhD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAA;AAIjD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,mFAAmF;IACnF,IAAI;QACF,OAAO,YAAY,CAAC,eAAe,EAAE,CAAA;IACvC,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,EAA0C;QACrD,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE;YACjE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACpB,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;IAC3B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,QAAgB;QAC1C,MAAM,YAAY,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACxD,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED,8DAA8D;IAC9D,MAAM;QACJ,+EAA+E;QAC/E,OAAO,EAAC,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAC,CAAA;IAC7C,CAAC;IAED,oFAAoF;IACpF,QAAQ,CAAC,EAAsD;QAC7D,iFAAiF;QACjF,OAAO,eAAe,CAAC,SAAS,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EACb,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAC,GAAG,IAAI,EAAC,EAAE,EAAC,GAAG,QAAQ,EAAC,CAAC,CACjD,CAAA;IACH,CAAC;CACF,CAAA","sourcesContent":["/**\n * glasses.wifi facade — the first typed engine facade over the bluetooth-sdk\n * passthrough, and the reference pattern the rest of the (A) host API copies.\n *\n * A facade wraps the raw `@mentra/bluetooth-sdk` surface into a small, typed,\n * device-agnostic API (the `doX()` action shape here; `getX()`/`onX()` read-models\n * come with domains that own their state). The host UI calls `engine.glasses.wifi.*`\n * instead of importing bluetooth-sdk directly — that's the native-import boundary\n * the engine is built around.\n *\n * `connect()` propagates bluetooth-sdk's coded errors unchanged so callers keep\n * their existing error mapping. The `status()`/`onStatus()` read-model reads the\n * glasses-state store engine now owns (wifi status is derived there from the\n * device's connection info).\n */\nimport BluetoothSdk from \"@mentra/bluetooth-sdk\"\nimport type {WifiSearchResult, WifiStatus} from \"@mentra/bluetooth-sdk\"\nimport {useGlassesStore} from \"../stores/glasses\"\n\nexport type {WifiSearchResult, WifiStatus}\n\nexport const glassesWifi = {\n /** Scan for nearby wifi networks. Request/response — resolves with the results. */\n scan(): Promise<WifiSearchResult[]> {\n return BluetoothSdk.requestWifiScan()\n },\n\n /**\n * Subscribe to streamed scan results: the glasses report networks one by one\n * while a scan runs, so callers can render them as they arrive instead of\n * waiting for the final `scan()` result. Returns an unsubscribe.\n */\n onScanResult(cb: (networks: WifiSearchResult[]) => void): () => void {\n const sub = BluetoothSdk.addListener(\"wifi_scan_result\", (event) => {\n cb(event.networks)\n })\n return () => sub.remove()\n },\n\n /**\n * Send wifi credentials to the glasses. Resolves on success; rejects with the\n * bluetooth-sdk coded error (`bluetooth_powered_off`, `request_timeout`, …) on\n * failure, propagated unchanged for the caller to map.\n */\n async connect(ssid: string, password: string): Promise<void> {\n await BluetoothSdk.sendWifiCredentials(ssid, password)\n },\n\n /** Forget a saved network on the glasses. */\n async forget(ssid: string): Promise<void> {\n await BluetoothSdk.forgetWifiNetwork(ssid)\n },\n\n /** The glasses' current wifi connection status (snapshot). */\n status(): WifiStatus {\n // Copy: the snapshot must not hand callers a mutable reference into the store.\n return {...useGlassesStore.getState().wifi}\n },\n\n /** Subscribe to wifi-status changes (current, previous); returns an unsubscribe. */\n onStatus(cb: (status: WifiStatus, previous: WifiStatus) => void): () => void {\n // Copy: like status(), never publish the store's live wifi objects to listeners.\n return useGlassesStore.subscribe(\n (s) => s.wifi,\n (wifi, previous) => cb({...wifi}, {...previous}),\n )\n },\n}\n"]}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * miniapps facade — `engine.miniapps`: miniapp lifecycle over the engine-owned
3
+ * apps store. Thin forwarding (args via Parameters<>), so the facade never drifts
4
+ * from the store's actions.
5
+ *
6
+ * The miniapp WebView is a HOST component (engine ships the bridge, not the view) —
7
+ * the bridge primitives (`buildMiniappGlobalsScript`, `buildMentraUiShim`, the
8
+ * MentraJS router) are exported from `@mentra/engine` directly; the host mounts a
9
+ * `<WebView>` wired to them. This facade is the lifecycle half.
10
+ */
11
+ import { useAppStatusStore } from "../stores/apps";
12
+ import type { ClientApp } from "../types";
13
+ type AppsState = ReturnType<typeof useAppStatusStore.getState>;
14
+ export declare const miniapps: {
15
+ /** All installed miniapps (snapshot). */
16
+ list: () => ClientApp[];
17
+ /** Subscribe to the installed-app set; fires only when it changes. Returns an unsubscribe. */
18
+ onChanged: (cb: (apps: ClientApp[]) => void) => (() => void);
19
+ /** Re-fetch the installed-app list from the backend. */
20
+ refresh: () => Promise<void>;
21
+ /** Start (foreground) a miniapp. */
22
+ start: (app: ClientApp, opts?: import("..").StartOptions | undefined) => Promise<boolean>;
23
+ /** Stop a miniapp. */
24
+ stop: (packageName: string) => Promise<void>;
25
+ /** Bring a running miniapp to the foreground. */
26
+ setForeground: (packageName: string) => Promise<void>;
27
+ /** Clear the current foreground miniapp. */
28
+ clearForeground: () => void;
29
+ /** Stop all running miniapps. */
30
+ stopAll: () => import("typesafe-ts").AsyncResult<void, Error>;
31
+ /** Install a miniapp from a bundle URL. */
32
+ install: (url: string, opts?: {
33
+ versionOverride?: string;
34
+ } | undefined) => import("typesafe-ts").AsyncResult<void, Error>;
35
+ /** Uninstall a miniapp. */
36
+ uninstall: (packageName: string, version?: string | undefined) => import("typesafe-ts").AsyncResult<void, Error>;
37
+ /** Persist a miniapp's captured screenshot (the switcher/card preview). */
38
+ saveScreenshot: (packageName: string, screenshot: string) => Promise<void>;
39
+ /** Hide/show a miniapp on the home surfaces. */
40
+ setHiddenStatus: (packageName: string, status: boolean) => void;
41
+ };
42
+ export {};
43
+ //# sourceMappingURL=miniapps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"miniapps.d.ts","sourceRoot":"","sources":["../../src/facades/miniapps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,UAAU,CAAA;AAEvC,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAA;AAE9D,eAAO,MAAM,QAAQ;IACnB,yCAAyC;gBAE/B,SAAS,EAAE;IACrB,8FAA8F;oBAC9E,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC;IAW1D,wDAAwD;;IAExD,oCAAoC;;IAEpC,sBAAsB;;IAEtB,iDAAiD;;IAGjD,4CAA4C;;IAE5C,iCAAiC;;IAEjC,2CAA2C;;;;IAE3C,2BAA2B;;IAE3B,2EAA2E;;IAG3E,gDAAgD;;CAGjD,CAAA"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * miniapps facade — `engine.miniapps`: miniapp lifecycle over the engine-owned
3
+ * apps store. Thin forwarding (args via Parameters<>), so the facade never drifts
4
+ * from the store's actions.
5
+ *
6
+ * The miniapp WebView is a HOST component (engine ships the bridge, not the view) —
7
+ * the bridge primitives (`buildMiniappGlobalsScript`, `buildMentraUiShim`, the
8
+ * MentraJS router) are exported from `@mentra/engine` directly; the host mounts a
9
+ * `<WebView>` wired to them. This facade is the lifecycle half.
10
+ */
11
+ import { useAppStatusStore } from "../stores/apps";
12
+ export const miniapps = {
13
+ /** All installed miniapps (snapshot). */
14
+ // Copy: the snapshot must not hand callers a mutable reference into the store.
15
+ list: () => [...useAppStatusStore.getState().apps],
16
+ /** Subscribe to the installed-app set; fires only when it changes. Returns an unsubscribe. */
17
+ onChanged: (cb) => {
18
+ let last = JSON.stringify(useAppStatusStore.getState().apps);
19
+ return useAppStatusStore.subscribe(() => {
20
+ const apps = useAppStatusStore.getState().apps;
21
+ const key = JSON.stringify(apps);
22
+ if (key === last)
23
+ return;
24
+ last = key;
25
+ cb(apps);
26
+ });
27
+ },
28
+ /** Re-fetch the installed-app list from the backend. */
29
+ refresh: () => useAppStatusStore.getState().refresh(),
30
+ /** Start (foreground) a miniapp. */
31
+ start: (...args) => useAppStatusStore.getState().start(...args),
32
+ /** Stop a miniapp. */
33
+ stop: (...args) => useAppStatusStore.getState().stop(...args),
34
+ /** Bring a running miniapp to the foreground. */
35
+ setForeground: (...args) => useAppStatusStore.getState().setForeground(...args),
36
+ /** Clear the current foreground miniapp. */
37
+ clearForeground: () => useAppStatusStore.getState().clearForeground(),
38
+ /** Stop all running miniapps. */
39
+ stopAll: () => useAppStatusStore.getState().stopAll(),
40
+ /** Install a miniapp from a bundle URL. */
41
+ install: (...args) => useAppStatusStore.getState().install(...args),
42
+ /** Uninstall a miniapp. */
43
+ uninstall: (...args) => useAppStatusStore.getState().uninstall(...args),
44
+ /** Persist a miniapp's captured screenshot (the switcher/card preview). */
45
+ saveScreenshot: (...args) => useAppStatusStore.getState().saveScreenshot(...args),
46
+ /** Hide/show a miniapp on the home surfaces. */
47
+ setHiddenStatus: (...args) => useAppStatusStore.getState().setHiddenStatus(...args),
48
+ };
49
+ //# sourceMappingURL=miniapps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"miniapps.js","sourceRoot":"","sources":["../../src/facades/miniapps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAA;AAKhD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,yCAAyC;IACzC,+EAA+E;IAC/E,IAAI,EAAE,GAAgB,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC;IAC/D,8FAA8F;IAC9F,SAAS,EAAE,CAAC,EAA+B,EAAgB,EAAE;QAC3D,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAA;QAC5D,OAAO,iBAAiB,CAAC,SAAS,CAAC,GAAG,EAAE;YACtC,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAA;YAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAChC,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAM;YACxB,IAAI,GAAG,GAAG,CAAA;YACV,EAAE,CAAC,IAAI,CAAC,CAAA;QACV,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,wDAAwD;IACxD,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;IACrD,oCAAoC;IACpC,KAAK,EAAE,CAAC,GAAG,IAAoC,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAC/F,sBAAsB;IACtB,IAAI,EAAE,CAAC,GAAG,IAAmC,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5F,iDAAiD;IACjD,aAAa,EAAE,CAAC,GAAG,IAA4C,EAAE,EAAE,CACjE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IACrD,4CAA4C;IAC5C,eAAe,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,eAAe,EAAE;IACrE,iCAAiC;IACjC,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;IACrD,2CAA2C;IAC3C,OAAO,EAAE,CAAC,GAAG,IAAsC,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACrG,2BAA2B;IAC3B,SAAS,EAAE,CAAC,GAAG,IAAwC,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC3G,2EAA2E;IAC3E,cAAc,EAAE,CAAC,GAAG,IAA6C,EAAE,EAAE,CACnE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACtD,gDAAgD;IAChD,eAAe,EAAE,CAAC,GAAG,IAA8C,EAAE,EAAE,CACrE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;CACxD,CAAA","sourcesContent":["/**\n * miniapps facade — `engine.miniapps`: miniapp lifecycle over the engine-owned\n * apps store. Thin forwarding (args via Parameters<>), so the facade never drifts\n * from the store's actions.\n *\n * The miniapp WebView is a HOST component (engine ships the bridge, not the view) —\n * the bridge primitives (`buildMiniappGlobalsScript`, `buildMentraUiShim`, the\n * MentraJS router) are exported from `@mentra/engine` directly; the host mounts a\n * `<WebView>` wired to them. This facade is the lifecycle half.\n */\nimport {useAppStatusStore} from \"../stores/apps\"\nimport type {ClientApp} from \"../types\"\n\ntype AppsState = ReturnType<typeof useAppStatusStore.getState>\n\nexport const miniapps = {\n /** All installed miniapps (snapshot). */\n // Copy: the snapshot must not hand callers a mutable reference into the store.\n list: (): ClientApp[] => [...useAppStatusStore.getState().apps],\n /** Subscribe to the installed-app set; fires only when it changes. Returns an unsubscribe. */\n onChanged: (cb: (apps: ClientApp[]) => void): (() => void) => {\n let last = JSON.stringify(useAppStatusStore.getState().apps)\n return useAppStatusStore.subscribe(() => {\n const apps = useAppStatusStore.getState().apps\n const key = JSON.stringify(apps)\n if (key === last) return\n last = key\n cb(apps)\n })\n },\n\n /** Re-fetch the installed-app list from the backend. */\n refresh: () => useAppStatusStore.getState().refresh(),\n /** Start (foreground) a miniapp. */\n start: (...args: Parameters<AppsState[\"start\"]>) => useAppStatusStore.getState().start(...args),\n /** Stop a miniapp. */\n stop: (...args: Parameters<AppsState[\"stop\"]>) => useAppStatusStore.getState().stop(...args),\n /** Bring a running miniapp to the foreground. */\n setForeground: (...args: Parameters<AppsState[\"setForeground\"]>) =>\n useAppStatusStore.getState().setForeground(...args),\n /** Clear the current foreground miniapp. */\n clearForeground: () => useAppStatusStore.getState().clearForeground(),\n /** Stop all running miniapps. */\n stopAll: () => useAppStatusStore.getState().stopAll(),\n /** Install a miniapp from a bundle URL. */\n install: (...args: Parameters<AppsState[\"install\"]>) => useAppStatusStore.getState().install(...args),\n /** Uninstall a miniapp. */\n uninstall: (...args: Parameters<AppsState[\"uninstall\"]>) => useAppStatusStore.getState().uninstall(...args),\n /** Persist a miniapp's captured screenshot (the switcher/card preview). */\n saveScreenshot: (...args: Parameters<AppsState[\"saveScreenshot\"]>) =>\n useAppStatusStore.getState().saveScreenshot(...args),\n /** Hide/show a miniapp on the home surfaces. */\n setHiddenStatus: (...args: Parameters<AppsState[\"setHiddenStatus\"]>) =>\n useAppStatusStore.getState().setHiddenStatus(...args),\n}\n"]}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * notifications facade — `engine.notifications`: inbound alerts engine→host. The
3
+ * OEM subscribes and renders them however it likes (modal, toast, banner). Today:
4
+ * miniapp crashloop; version-incompatible miniapp and persistent connection loss
5
+ * land as their detectors are wired into the emitter.
6
+ */
7
+ import { type IslandNotification } from "../services/NotificationsEmitter";
8
+ export type { IslandNotification, IslandNotificationKind } from "../services/NotificationsEmitter";
9
+ export declare const notifications: {
10
+ /** Subscribe to engine-raised notifications; returns an unsubscribe. */
11
+ onNotification: (cb: (notification: IslandNotification) => void) => (() => void);
12
+ };
13
+ //# sourceMappingURL=notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/facades/notifications.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAsB,KAAK,kBAAkB,EAAC,MAAM,kCAAkC,CAAA;AAE7F,YAAY,EAAC,kBAAkB,EAAE,sBAAsB,EAAC,MAAM,kCAAkC,CAAA;AAEhG,eAAO,MAAM,aAAa;IACxB,wEAAwE;yBACnD,CAAC,YAAY,EAAE,kBAAkB,KAAK,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC;CAE/E,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * notifications facade — `engine.notifications`: inbound alerts engine→host. The
3
+ * OEM subscribes and renders them however it likes (modal, toast, banner). Today:
4
+ * miniapp crashloop; version-incompatible miniapp and persistent connection loss
5
+ * land as their detectors are wired into the emitter.
6
+ */
7
+ import { islandNotifications } from "../services/NotificationsEmitter";
8
+ export const notifications = {
9
+ /** Subscribe to engine-raised notifications; returns an unsubscribe. */
10
+ onNotification: (cb) => islandNotifications.subscribe(cb),
11
+ };
12
+ //# sourceMappingURL=notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/facades/notifications.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAC,mBAAmB,EAA0B,MAAM,kCAAkC,CAAA;AAI7F,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,wEAAwE;IACxE,cAAc,EAAE,CAAC,EAA8C,EAAgB,EAAE,CAC/E,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;CACpC,CAAA","sourcesContent":["/**\n * notifications facade — `engine.notifications`: inbound alerts engine→host. The\n * OEM subscribes and renders them however it likes (modal, toast, banner). Today:\n * miniapp crashloop; version-incompatible miniapp and persistent connection loss\n * land as their detectors are wired into the emitter.\n */\nimport {islandNotifications, type IslandNotification} from \"../services/NotificationsEmitter\"\n\nexport type {IslandNotification, IslandNotificationKind} from \"../services/NotificationsEmitter\"\n\nexport const notifications = {\n /** Subscribe to engine-raised notifications; returns an unsubscribe. */\n onNotification: (cb: (notification: IslandNotification) => void): (() => void) =>\n islandNotifications.subscribe(cb),\n}\n"]}