@mentra/engine 0.1.0-dev.0 → 0.1.0-dev.1

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 (441) hide show
  1. package/README.md +42 -1
  2. package/build/engine.d.ts +11 -3
  3. package/build/engine.d.ts.map +1 -1
  4. package/build/engine.js +7 -2
  5. package/build/engine.js.map +1 -1
  6. package/build/facades/dev.d.ts +3 -2
  7. package/build/facades/dev.d.ts.map +1 -1
  8. package/build/facades/dev.js +18 -12
  9. package/build/facades/dev.js.map +1 -1
  10. package/build/facades/gallery.js +1 -1
  11. package/build/facades/gallery.js.map +1 -1
  12. package/build/facades/glasses.d.ts +1 -0
  13. package/build/facades/glasses.d.ts.map +1 -1
  14. package/build/facades/glasses.js +19 -4
  15. package/build/facades/glasses.js.map +1 -1
  16. package/build/facades/glassesSettings.d.ts.map +1 -1
  17. package/build/facades/glassesSettings.js +1 -0
  18. package/build/facades/glassesSettings.js.map +1 -1
  19. package/build/facades/miniapps.d.ts +4 -0
  20. package/build/facades/miniapps.d.ts.map +1 -1
  21. package/build/facades/miniapps.js +5 -0
  22. package/build/facades/miniapps.js.map +1 -1
  23. package/build/facades/ota.d.ts +11 -2
  24. package/build/facades/ota.d.ts.map +1 -1
  25. package/build/facades/ota.js +19 -4
  26. package/build/facades/ota.js.map +1 -1
  27. package/build/facades/pairing.d.ts +4 -0
  28. package/build/facades/pairing.d.ts.map +1 -1
  29. package/build/facades/pairing.js +10 -8
  30. package/build/facades/pairing.js.map +1 -1
  31. package/build/facades/permissions.d.ts +10 -0
  32. package/build/facades/permissions.d.ts.map +1 -1
  33. package/build/facades/permissions.js +10 -0
  34. package/build/facades/permissions.js.map +1 -1
  35. package/build/facades/phoneNotifications.d.ts +0 -4
  36. package/build/facades/phoneNotifications.d.ts.map +1 -1
  37. package/build/facades/phoneNotifications.js +4 -14
  38. package/build/facades/phoneNotifications.js.map +1 -1
  39. package/build/index.d.ts +6 -3
  40. package/build/index.d.ts.map +1 -1
  41. package/build/index.js +4 -2
  42. package/build/index.js.map +1 -1
  43. package/build/internal.d.ts +3 -2
  44. package/build/internal.d.ts.map +1 -1
  45. package/build/internal.js +2 -1
  46. package/build/internal.js.map +1 -1
  47. package/build/react/MentraLiveOtaFlow.d.ts +38 -0
  48. package/build/react/MentraLiveOtaFlow.d.ts.map +1 -0
  49. package/build/react/MentraLiveOtaFlow.js +528 -0
  50. package/build/react/MentraLiveOtaFlow.js.map +1 -0
  51. package/build/react/index.d.ts +2 -0
  52. package/build/react/index.d.ts.map +1 -0
  53. package/build/react/index.js +2 -0
  54. package/build/react/index.js.map +1 -0
  55. package/build/react/useEngineSnapshot.d.ts +2 -0
  56. package/build/react/useEngineSnapshot.d.ts.map +1 -0
  57. package/build/react/useEngineSnapshot.js +14 -0
  58. package/build/react/useEngineSnapshot.js.map +1 -0
  59. package/build/runtime/bootstrap.d.ts +24 -1
  60. package/build/runtime/bootstrap.d.ts.map +1 -1
  61. package/build/runtime/bootstrap.js +17 -0
  62. package/build/runtime/bootstrap.js.map +1 -1
  63. package/build/runtime/scanQrSeam.d.ts +7 -0
  64. package/build/runtime/scanQrSeam.d.ts.map +1 -0
  65. package/build/runtime/scanQrSeam.js +16 -0
  66. package/build/runtime/scanQrSeam.js.map +1 -0
  67. package/build/services/AppRegistry.d.ts +33 -57
  68. package/build/services/AppRegistry.d.ts.map +1 -1
  69. package/build/services/AppRegistry.js +193 -144
  70. package/build/services/AppRegistry.js.map +1 -1
  71. package/build/services/AudioCloudUplink.d.ts +12 -0
  72. package/build/services/AudioCloudUplink.d.ts.map +1 -1
  73. package/build/services/AudioCloudUplink.js +22 -1
  74. package/build/services/AudioCloudUplink.js.map +1 -1
  75. package/build/services/AudioPlaybackService.d.ts +41 -2
  76. package/build/services/AudioPlaybackService.d.ts.map +1 -1
  77. package/build/services/AudioPlaybackService.js +250 -33
  78. package/build/services/AudioPlaybackService.js.map +1 -1
  79. package/build/services/BlobStore.d.ts +2 -1
  80. package/build/services/BlobStore.d.ts.map +1 -1
  81. package/build/services/BlobStore.js +17 -9
  82. package/build/services/BlobStore.js.map +1 -1
  83. package/build/services/CloudAudioSubscriptionSync.d.ts.map +1 -1
  84. package/build/services/CloudAudioSubscriptionSync.js +13 -1
  85. package/build/services/CloudAudioSubscriptionSync.js.map +1 -1
  86. package/build/services/CloudClientService.d.ts +15 -0
  87. package/build/services/CloudClientService.d.ts.map +1 -1
  88. package/build/services/CloudClientService.js +93 -1
  89. package/build/services/CloudClientService.js.map +1 -1
  90. package/build/services/DeviceEventRouter.js +5 -5
  91. package/build/services/DeviceEventRouter.js.map +1 -1
  92. package/build/services/ForegroundLocationPermission.d.ts +13 -0
  93. package/build/services/ForegroundLocationPermission.d.ts.map +1 -0
  94. package/build/services/ForegroundLocationPermission.js +12 -0
  95. package/build/services/ForegroundLocationPermission.js.map +1 -0
  96. package/build/services/GlassesSettingsSync.d.ts.map +1 -1
  97. package/build/services/GlassesSettingsSync.js +9 -3
  98. package/build/services/GlassesSettingsSync.js.map +1 -1
  99. package/build/services/GlassesStatusProjection.d.ts +2 -1
  100. package/build/services/GlassesStatusProjection.d.ts.map +1 -1
  101. package/build/services/GlassesStatusProjection.js +15 -8
  102. package/build/services/GlassesStatusProjection.js.map +1 -1
  103. package/build/services/HotspotOtaTransport.d.ts +29 -0
  104. package/build/services/HotspotOtaTransport.d.ts.map +1 -0
  105. package/build/services/HotspotOtaTransport.js +146 -0
  106. package/build/services/HotspotOtaTransport.js.map +1 -0
  107. package/build/services/HotspotShutdown.d.ts +17 -0
  108. package/build/services/HotspotShutdown.d.ts.map +1 -0
  109. package/build/services/HotspotShutdown.js +29 -0
  110. package/build/services/HotspotShutdown.js.map +1 -0
  111. package/build/services/LocalDisplayManager.d.ts +15 -0
  112. package/build/services/LocalDisplayManager.d.ts.map +1 -1
  113. package/build/services/LocalDisplayManager.js +106 -20
  114. package/build/services/LocalDisplayManager.js.map +1 -1
  115. package/build/services/LocalMiniappRuntime.d.ts +74 -2
  116. package/build/services/LocalMiniappRuntime.d.ts.map +1 -1
  117. package/build/services/LocalMiniappRuntime.js +785 -291
  118. package/build/services/LocalMiniappRuntime.js.map +1 -1
  119. package/build/services/LocalMiniappStorage.d.ts +32 -0
  120. package/build/services/LocalMiniappStorage.d.ts.map +1 -0
  121. package/build/services/LocalMiniappStorage.js +66 -0
  122. package/build/services/LocalMiniappStorage.js.map +1 -0
  123. package/build/services/LocalMiniappUserIdentity.d.ts +20 -0
  124. package/build/services/LocalMiniappUserIdentity.d.ts.map +1 -0
  125. package/build/services/LocalMiniappUserIdentity.js +43 -0
  126. package/build/services/LocalMiniappUserIdentity.js.map +1 -0
  127. package/build/services/LocalSttFallbackCoordinator.d.ts +9 -6
  128. package/build/services/LocalSttFallbackCoordinator.d.ts.map +1 -1
  129. package/build/services/LocalSttFallbackCoordinator.js +18 -12
  130. package/build/services/LocalSttFallbackCoordinator.js.map +1 -1
  131. package/build/services/MicStateCoordinator.d.ts +42 -1
  132. package/build/services/MicStateCoordinator.d.ts.map +1 -1
  133. package/build/services/MicStateCoordinator.js +141 -3
  134. package/build/services/MicStateCoordinator.js.map +1 -1
  135. package/build/services/MiniappLauncher.d.ts.map +1 -1
  136. package/build/services/MiniappLauncher.js +23 -3
  137. package/build/services/MiniappLauncher.js.map +1 -1
  138. package/build/services/MiniappLiveness.d.ts +12 -0
  139. package/build/services/MiniappLiveness.d.ts.map +1 -0
  140. package/build/services/MiniappLiveness.js +16 -0
  141. package/build/services/MiniappLiveness.js.map +1 -0
  142. package/build/services/NativeHttpResponse.d.ts +3 -0
  143. package/build/services/NativeHttpResponse.d.ts.map +1 -0
  144. package/build/services/NativeHttpResponse.js +6 -0
  145. package/build/services/NativeHttpResponse.js.map +1 -0
  146. package/build/services/OtaArtifactDownloader.d.ts +65 -0
  147. package/build/services/OtaArtifactDownloader.d.ts.map +1 -0
  148. package/build/services/OtaArtifactDownloader.js +226 -0
  149. package/build/services/OtaArtifactDownloader.js.map +1 -0
  150. package/build/services/OtaAutoChain.d.ts +34 -0
  151. package/build/services/OtaAutoChain.d.ts.map +1 -0
  152. package/build/services/OtaAutoChain.js +83 -0
  153. package/build/services/OtaAutoChain.js.map +1 -0
  154. package/build/services/OtaErrorMapping.d.ts +18 -0
  155. package/build/services/OtaErrorMapping.d.ts.map +1 -0
  156. package/build/services/OtaErrorMapping.js +63 -0
  157. package/build/services/OtaErrorMapping.js.map +1 -0
  158. package/build/services/OtaInstallCoordinator.d.ts +94 -14
  159. package/build/services/OtaInstallCoordinator.d.ts.map +1 -1
  160. package/build/services/OtaInstallCoordinator.js +574 -130
  161. package/build/services/OtaInstallCoordinator.js.map +1 -1
  162. package/build/services/OtaService.d.ts.map +1 -1
  163. package/build/services/OtaService.js +8 -1
  164. package/build/services/OtaService.js.map +1 -1
  165. package/build/services/OtaUpdateCheckService.d.ts +38 -3
  166. package/build/services/OtaUpdateCheckService.d.ts.map +1 -1
  167. package/build/services/OtaUpdateCheckService.js +142 -22
  168. package/build/services/OtaUpdateCheckService.js.map +1 -1
  169. package/build/services/PhoneCalendarHelpers.d.ts +32 -0
  170. package/build/services/PhoneCalendarHelpers.d.ts.map +1 -0
  171. package/build/services/PhoneCalendarHelpers.js +157 -0
  172. package/build/services/PhoneCalendarHelpers.js.map +1 -0
  173. package/build/services/PhoneCalendarService.d.ts +5 -0
  174. package/build/services/PhoneCalendarService.d.ts.map +1 -0
  175. package/build/services/PhoneCalendarService.js +45 -0
  176. package/build/services/PhoneCalendarService.js.map +1 -0
  177. package/build/services/PhoneCameraFovCoordinator.d.ts +30 -0
  178. package/build/services/PhoneCameraFovCoordinator.d.ts.map +1 -0
  179. package/build/services/PhoneCameraFovCoordinator.js +194 -0
  180. package/build/services/PhoneCameraFovCoordinator.js.map +1 -0
  181. package/build/services/PhoneNotificationsSync.d.ts.map +1 -1
  182. package/build/services/PhoneNotificationsSync.js +12 -10
  183. package/build/services/PhoneNotificationsSync.js.map +1 -1
  184. package/build/services/PhonePhotoCoordinator.d.ts +26 -2
  185. package/build/services/PhonePhotoCoordinator.d.ts.map +1 -1
  186. package/build/services/PhonePhotoCoordinator.js +79 -9
  187. package/build/services/PhonePhotoCoordinator.js.map +1 -1
  188. package/build/services/PhoneStreamCoordinator.d.ts +8 -1
  189. package/build/services/PhoneStreamCoordinator.d.ts.map +1 -1
  190. package/build/services/PhoneStreamCoordinator.js +125 -13
  191. package/build/services/PhoneStreamCoordinator.js.map +1 -1
  192. package/build/services/PhoneVideoCoordinator.d.ts +2 -0
  193. package/build/services/PhoneVideoCoordinator.d.ts.map +1 -1
  194. package/build/services/PhoneVideoCoordinator.js +10 -0
  195. package/build/services/PhoneVideoCoordinator.js.map +1 -1
  196. package/build/services/SceneRenderer.d.ts.map +1 -1
  197. package/build/services/SceneRenderer.js +15 -0
  198. package/build/services/SceneRenderer.js.map +1 -1
  199. package/build/services/SentenceTtsPipeline.d.ts +31 -0
  200. package/build/services/SentenceTtsPipeline.d.ts.map +1 -0
  201. package/build/services/SentenceTtsPipeline.js +67 -0
  202. package/build/services/SentenceTtsPipeline.js.map +1 -0
  203. package/build/services/SupportProfileSync.d.ts +22 -0
  204. package/build/services/SupportProfileSync.d.ts.map +1 -0
  205. package/build/services/SupportProfileSync.js +213 -0
  206. package/build/services/SupportProfileSync.js.map +1 -0
  207. package/build/services/TranscriptionRouting.d.ts +12 -0
  208. package/build/services/TranscriptionRouting.d.ts.map +1 -0
  209. package/build/services/TranscriptionRouting.js +24 -0
  210. package/build/services/TranscriptionRouting.js.map +1 -0
  211. package/build/services/TtsTextSanitizer.d.ts +5 -0
  212. package/build/services/TtsTextSanitizer.d.ts.map +1 -0
  213. package/build/services/TtsTextSanitizer.js +61 -0
  214. package/build/services/TtsTextSanitizer.js.map +1 -0
  215. package/build/services/WifiAdbRequest.d.ts +17 -0
  216. package/build/services/WifiAdbRequest.d.ts.map +1 -0
  217. package/build/services/WifiAdbRequest.js +35 -0
  218. package/build/services/WifiAdbRequest.js.map +1 -0
  219. package/build/services/asg/asgCameraApi.d.ts +43 -0
  220. package/build/services/asg/asgCameraApi.d.ts.map +1 -1
  221. package/build/services/asg/asgCameraApi.js +509 -26
  222. package/build/services/asg/asgCameraApi.js.map +1 -1
  223. package/build/services/asg/cameraRollExportCoordinator.d.ts +60 -0
  224. package/build/services/asg/cameraRollExportCoordinator.d.ts.map +1 -0
  225. package/build/services/asg/cameraRollExportCoordinator.js +618 -0
  226. package/build/services/asg/cameraRollExportCoordinator.js.map +1 -0
  227. package/build/services/asg/cameraRollExportLedger.d.ts +44 -0
  228. package/build/services/asg/cameraRollExportLedger.d.ts.map +1 -0
  229. package/build/services/asg/cameraRollExportLedger.js +78 -0
  230. package/build/services/asg/cameraRollExportLedger.js.map +1 -0
  231. package/build/services/asg/galleryNotices.d.ts +1 -1
  232. package/build/services/asg/galleryNotices.d.ts.map +1 -1
  233. package/build/services/asg/galleryNotices.js.map +1 -1
  234. package/build/services/asg/galleryPathMigration.d.ts +3 -0
  235. package/build/services/asg/galleryPathMigration.d.ts.map +1 -0
  236. package/build/services/asg/galleryPathMigration.js +26 -0
  237. package/build/services/asg/galleryPathMigration.js.map +1 -0
  238. package/build/services/asg/gallerySettingsService.d.ts +1 -0
  239. package/build/services/asg/gallerySettingsService.d.ts.map +1 -1
  240. package/build/services/asg/gallerySettingsService.js +2 -0
  241. package/build/services/asg/gallerySettingsService.js.map +1 -1
  242. package/build/services/asg/gallerySyncService.d.ts.map +1 -1
  243. package/build/services/asg/gallerySyncService.js +162 -56
  244. package/build/services/asg/gallerySyncService.js.map +1 -1
  245. package/build/services/asg/galleryTransferLedger.d.ts +58 -0
  246. package/build/services/asg/galleryTransferLedger.d.ts.map +1 -0
  247. package/build/services/asg/galleryTransferLedger.js +225 -0
  248. package/build/services/asg/galleryTransferLedger.js.map +1 -0
  249. package/build/services/asg/localNetworkTransport.d.ts +15 -0
  250. package/build/services/asg/localNetworkTransport.d.ts.map +1 -0
  251. package/build/services/asg/localNetworkTransport.js +144 -0
  252. package/build/services/asg/localNetworkTransport.js.map +1 -0
  253. package/build/services/asg/localStorageService.d.ts +18 -0
  254. package/build/services/asg/localStorageService.d.ts.map +1 -1
  255. package/build/services/asg/localStorageService.js +168 -19
  256. package/build/services/asg/localStorageService.js.map +1 -1
  257. package/build/services/asg/mediaProcessingQueue.d.ts +10 -0
  258. package/build/services/asg/mediaProcessingQueue.d.ts.map +1 -1
  259. package/build/services/asg/mediaProcessingQueue.js +193 -62
  260. package/build/services/asg/mediaProcessingQueue.js.map +1 -1
  261. package/build/services/audioPlaybackAssets.d.ts +8 -0
  262. package/build/services/audioPlaybackAssets.d.ts.map +1 -0
  263. package/build/services/audioPlaybackAssets.js +7 -0
  264. package/build/services/audioPlaybackAssets.js.map +1 -0
  265. package/build/services/gallerySyncClock.js +1 -1
  266. package/build/services/gallerySyncClock.js.map +1 -1
  267. package/build/services/glassesClockSync.js +2 -2
  268. package/build/services/glassesClockSync.js.map +1 -1
  269. package/build/services/manifestActions.d.ts +7 -0
  270. package/build/services/manifestActions.d.ts.map +1 -0
  271. package/build/services/manifestActions.js +25 -0
  272. package/build/services/manifestActions.js.map +1 -0
  273. package/build/services/otaDisplayState.d.ts +22 -11
  274. package/build/services/otaDisplayState.d.ts.map +1 -1
  275. package/build/services/otaDisplayState.js +36 -14
  276. package/build/services/otaDisplayState.js.map +1 -1
  277. package/build/services/otaInstallPolicy.d.ts +15 -3
  278. package/build/services/otaInstallPolicy.d.ts.map +1 -1
  279. package/build/services/otaInstallPolicy.js +24 -3
  280. package/build/services/otaInstallPolicy.js.map +1 -1
  281. package/build/services/otaManifestUrl.d.ts +2 -0
  282. package/build/services/otaManifestUrl.d.ts.map +1 -0
  283. package/build/services/{asgOtaVersionUrl.js → otaManifestUrl.js} +15 -5
  284. package/build/services/otaManifestUrl.js.map +1 -0
  285. package/build/services/slimStreamStatus.d.ts +11 -0
  286. package/build/services/slimStreamStatus.d.ts.map +1 -1
  287. package/build/services/slimStreamStatus.js +14 -4
  288. package/build/services/slimStreamStatus.js.map +1 -1
  289. package/build/stores/apps.d.ts.map +1 -1
  290. package/build/stores/apps.js +11 -0
  291. package/build/stores/apps.js.map +1 -1
  292. package/build/stores/bluetoothSettingKeys.d.ts.map +1 -1
  293. package/build/stores/bluetoothSettingKeys.js +2 -0
  294. package/build/stores/bluetoothSettingKeys.js.map +1 -1
  295. package/build/stores/gallerySync.d.ts +2 -0
  296. package/build/stores/gallerySync.d.ts.map +1 -1
  297. package/build/stores/gallerySync.js +2 -0
  298. package/build/stores/gallerySync.js.map +1 -1
  299. package/build/stores/glasses.d.ts.map +1 -1
  300. package/build/stores/glasses.js +3 -0
  301. package/build/stores/glasses.js.map +1 -1
  302. package/build/stores/settings.d.ts +17 -0
  303. package/build/stores/settings.d.ts.map +1 -1
  304. package/build/stores/settings.js +157 -17
  305. package/build/stores/settings.js.map +1 -1
  306. package/build/types/applet.d.ts +2 -0
  307. package/build/types/applet.d.ts.map +1 -1
  308. package/build/types/applet.js.map +1 -1
  309. package/build/types/asg.d.ts +7 -0
  310. package/build/types/asg.d.ts.map +1 -1
  311. package/build/types/asg.js.map +1 -1
  312. package/build/types/enums.d.ts +1 -0
  313. package/build/types/enums.d.ts.map +1 -1
  314. package/build/types/enums.js +1 -0
  315. package/build/types/enums.js.map +1 -1
  316. package/build/types/hardware.d.ts +1 -0
  317. package/build/types/hardware.d.ts.map +1 -1
  318. package/build/types/hardware.js +14 -0
  319. package/build/types/hardware.js.map +1 -1
  320. package/build/utils/configuredDevHost.d.ts +6 -0
  321. package/build/utils/configuredDevHost.d.ts.map +1 -0
  322. package/build/utils/configuredDevHost.js +19 -0
  323. package/build/utils/configuredDevHost.js.map +1 -0
  324. package/build/utils/devMiniappLaunch.d.ts +19 -8
  325. package/build/utils/devMiniappLaunch.d.ts.map +1 -1
  326. package/build/utils/devMiniappLaunch.js +144 -21
  327. package/build/utils/devMiniappLaunch.js.map +1 -1
  328. package/build/utils/diagnosticContext.d.ts.map +1 -1
  329. package/build/utils/diagnosticContext.js +15 -17
  330. package/build/utils/diagnosticContext.js.map +1 -1
  331. package/build/utils/hardware/hardware.d.ts.map +1 -1
  332. package/build/utils/hardware/hardware.js +7 -3
  333. package/build/utils/hardware/hardware.js.map +1 -1
  334. package/build/utils/miniappDiagnostics.d.ts +64 -0
  335. package/build/utils/miniappDiagnostics.d.ts.map +1 -0
  336. package/build/utils/miniappDiagnostics.js +173 -0
  337. package/build/utils/miniappDiagnostics.js.map +1 -0
  338. package/build/utils/permissions/MediaLibraryPermissions.d.ts +11 -0
  339. package/build/utils/permissions/MediaLibraryPermissions.d.ts.map +1 -1
  340. package/build/utils/permissions/MediaLibraryPermissions.js +27 -4
  341. package/build/utils/permissions/MediaLibraryPermissions.js.map +1 -1
  342. package/build/utils/timers/timers.d.ts.map +1 -1
  343. package/build/utils/timers/timers.js +55 -18
  344. package/build/utils/timers/timers.js.map +1 -1
  345. package/package.json +25 -15
  346. package/src/assets/silence.wav +0 -0
  347. package/src/engine.ts +7 -2
  348. package/src/facades/dev.ts +17 -12
  349. package/src/facades/gallery.ts +1 -1
  350. package/src/facades/glasses.ts +17 -4
  351. package/src/facades/glassesSettings.ts +5 -0
  352. package/src/facades/miniapps.ts +7 -0
  353. package/src/facades/ota.ts +19 -4
  354. package/src/facades/pairing.ts +11 -7
  355. package/src/facades/permissions.ts +14 -0
  356. package/src/facades/phoneNotifications.ts +4 -13
  357. package/src/index.ts +26 -2
  358. package/src/internal.ts +3 -1
  359. package/src/react/MentraLiveOtaFlow.tsx +856 -0
  360. package/src/react/index.ts +7 -0
  361. package/src/react/useEngineSnapshot.ts +16 -0
  362. package/src/runtime/bootstrap.ts +33 -1
  363. package/src/runtime/scanQrSeam.ts +20 -0
  364. package/src/services/AppRegistry.ts +224 -149
  365. package/src/services/AudioCloudUplink.ts +23 -1
  366. package/src/services/AudioPlaybackService.ts +287 -38
  367. package/src/services/BlobStore.ts +22 -9
  368. package/src/services/CloudAudioSubscriptionSync.ts +13 -1
  369. package/src/services/CloudClientService.ts +96 -1
  370. package/src/services/DeviceEventRouter.ts +5 -5
  371. package/src/services/ForegroundLocationPermission.ts +24 -0
  372. package/src/services/GlassesSettingsSync.ts +9 -3
  373. package/src/services/GlassesStatusProjection.ts +16 -8
  374. package/src/services/HotspotOtaTransport.ts +184 -0
  375. package/src/services/HotspotShutdown.ts +41 -0
  376. package/src/services/LocalDisplayManager.ts +112 -21
  377. package/src/services/LocalMiniappRuntime.ts +967 -346
  378. package/src/services/LocalMiniappStorage.ts +82 -0
  379. package/src/services/LocalMiniappUserIdentity.ts +46 -0
  380. package/src/services/LocalSttFallbackCoordinator.ts +19 -12
  381. package/src/services/MicStateCoordinator.ts +169 -4
  382. package/src/services/MiniappLauncher.ts +30 -3
  383. package/src/services/MiniappLiveness.ts +24 -0
  384. package/src/services/NativeHttpResponse.ts +6 -0
  385. package/src/services/OtaArtifactDownloader.ts +312 -0
  386. package/src/services/OtaAutoChain.ts +106 -0
  387. package/src/services/OtaErrorMapping.ts +80 -0
  388. package/src/services/OtaInstallCoordinator.ts +645 -143
  389. package/src/services/OtaService.ts +11 -5
  390. package/src/services/OtaUpdateCheckService.ts +180 -20
  391. package/src/services/PhoneCalendarHelpers.ts +212 -0
  392. package/src/services/PhoneCalendarService.ts +65 -0
  393. package/src/services/PhoneCameraFovCoordinator.ts +210 -0
  394. package/src/services/PhoneNotificationsSync.ts +12 -10
  395. package/src/services/PhonePhotoCoordinator.ts +116 -18
  396. package/src/services/PhoneStreamCoordinator.ts +139 -25
  397. package/src/services/PhoneVideoCoordinator.ts +11 -0
  398. package/src/services/SceneRenderer.ts +16 -0
  399. package/src/services/SentenceTtsPipeline.ts +106 -0
  400. package/src/services/SupportProfileSync.ts +218 -0
  401. package/src/services/TranscriptionRouting.ts +37 -0
  402. package/src/services/TtsTextSanitizer.ts +66 -0
  403. package/src/services/WifiAdbRequest.ts +53 -0
  404. package/src/services/asg/asgCameraApi.ts +615 -33
  405. package/src/services/asg/cameraRollExportCoordinator.ts +627 -0
  406. package/src/services/asg/cameraRollExportLedger.ts +122 -0
  407. package/src/services/asg/galleryNotices.ts +1 -0
  408. package/src/services/asg/galleryPathMigration.ts +22 -0
  409. package/src/services/asg/gallerySettingsService.ts +3 -0
  410. package/src/services/asg/gallerySyncService.ts +184 -73
  411. package/src/services/asg/galleryTransferLedger.ts +312 -0
  412. package/src/services/asg/localNetworkTransport.ts +169 -0
  413. package/src/services/asg/localStorageService.ts +179 -24
  414. package/src/services/asg/mediaProcessingQueue.ts +209 -62
  415. package/src/services/audioPlaybackAssets.ts +8 -0
  416. package/src/services/gallerySyncClock.ts +1 -1
  417. package/src/services/glassesClockSync.ts +2 -2
  418. package/src/services/manifestActions.ts +30 -0
  419. package/src/services/otaDisplayState.ts +57 -16
  420. package/src/services/otaInstallPolicy.ts +29 -3
  421. package/src/services/{asgOtaVersionUrl.ts → otaManifestUrl.ts} +16 -4
  422. package/src/services/slimStreamStatus.ts +16 -5
  423. package/src/stores/apps.ts +12 -0
  424. package/src/stores/bluetoothSettingKeys.ts +2 -0
  425. package/src/stores/gallerySync.ts +4 -0
  426. package/src/stores/glasses.ts +3 -0
  427. package/src/stores/settings.ts +179 -18
  428. package/src/types/applet.ts +2 -0
  429. package/src/types/asg.ts +7 -0
  430. package/src/types/enums.ts +2 -1
  431. package/src/types/hardware.ts +17 -0
  432. package/src/utils/configuredDevHost.ts +17 -0
  433. package/src/utils/devMiniappLaunch.ts +151 -23
  434. package/src/utils/diagnosticContext.ts +17 -17
  435. package/src/utils/hardware/hardware.ts +7 -9
  436. package/src/utils/miniappDiagnostics.ts +226 -0
  437. package/src/utils/permissions/MediaLibraryPermissions.ts +35 -4
  438. package/src/utils/timers/timers.ts +57 -21
  439. package/build/services/asgOtaVersionUrl.d.ts +0 -2
  440. package/build/services/asgOtaVersionUrl.d.ts.map +0 -1
  441. package/build/services/asgOtaVersionUrl.js.map +0 -1
@@ -1,8 +1,4 @@
1
1
  export declare const phoneNotifications: {
2
- /** Is phone-notification forwarding enabled? (false on iOS) */
3
- enabled: () => boolean;
4
- /** Enable/disable phone-notification forwarding. (no-op on iOS) */
5
- setEnabled: (enabled: boolean) => import("typesafe-ts").AsyncResult<void, Error> | undefined;
6
2
  /** The phone's installed apps (package, name, icon). (empty on iOS) */
7
3
  installedApps: () => Promise<Array<{
8
4
  packageName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"phoneNotifications.d.ts","sourceRoot":"","sources":["../../src/facades/phoneNotifications.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,kBAAkB;IAC7B,+DAA+D;mBAClD,OAAO;IAIpB,mEAAmE;0BAC7C,OAAO;IAK7B,uEAAuE;yBACpD,OAAO,CAAC,KAAK,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAC,CAAC,CAAC;IAK9F,mFAAmF;qBACpE,MAAM,EAAE;IAIvB,qCAAqC;iCACR,MAAM,EAAE;IAGrC,qFAAqF;iCAC1D,OAAO,CAAC,OAAO,CAAC;IAI3C,yFAAyF;;CAK1F,CAAA"}
1
+ {"version":3,"file":"phoneNotifications.d.ts","sourceRoot":"","sources":["../../src/facades/phoneNotifications.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,kBAAkB;IAC7B,uEAAuE;yBACpD,OAAO,CAAC,KAAK,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAC,CAAC,CAAC;IAK9F,mFAAmF;qBACpE,MAAM,EAAE;IAIvB,qCAAqC;iCACR,MAAM,EAAE;IAGrC,qFAAqF;iCAC1D,OAAO,CAAC,OAAO,CAAC;IAI3C,yFAAyF;;CAK1F,CAAA"}
@@ -3,25 +3,15 @@
3
3
  * notifications to the glasses, with a per-app blocklist. Android-only (the
4
4
  * NotificationListenerService); the getters return sensible defaults on iOS.
5
5
  *
6
- * Enabled-state + blocklist are engine settings (auto-synced to the native
7
- * listener); the installed-apps list + the listener permission are CrustModule.
6
+ * The per-app blocklist is an engine setting (auto-synced to the native
7
+ * listener); the installed-apps list + listener permission are CrustModule.
8
+ * Capture itself is controlled only by Android notification access and the
9
+ * hidden operational kill switch.
8
10
  */
9
11
  import { Platform } from "react-native";
10
12
  import CrustModule from "@mentra/crust";
11
13
  import { useSettingsStore, SETTINGS } from "../stores/settings";
12
14
  export const phoneNotifications = {
13
- /** Is phone-notification forwarding enabled? (false on iOS) */
14
- enabled: () => {
15
- if (Platform.OS !== "android")
16
- return false;
17
- return useSettingsStore.getState().getSetting(SETTINGS.notifications_enabled.key) ?? true;
18
- },
19
- /** Enable/disable phone-notification forwarding. (no-op on iOS) */
20
- setEnabled: (enabled) => {
21
- if (Platform.OS !== "android")
22
- return;
23
- return useSettingsStore.getState().setSetting(SETTINGS.notifications_enabled.key, enabled);
24
- },
25
15
  /** The phone's installed apps (package, name, icon). (empty on iOS) */
26
16
  installedApps: () => {
27
17
  if (Platform.OS !== "android")
@@ -1 +1 @@
1
- {"version":3,"file":"phoneNotifications.js","sourceRoot":"","sources":["../../src/facades/phoneNotifications.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAA;AACrC,OAAO,WAAW,MAAM,eAAe,CAAA;AACvC,OAAO,EAAC,gBAAgB,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAA;AAE7D,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,+DAA+D;IAC/D,OAAO,EAAE,GAAY,EAAE;QACrB,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS;YAAE,OAAO,KAAK,CAAA;QAC3C,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;IAC3F,CAAC;IACD,mEAAmE;IACnE,UAAU,EAAE,CAAC,OAAgB,EAAE,EAAE;QAC/B,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS;YAAE,OAAM;QACrC,OAAO,gBAAgB,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAC5F,CAAC;IAED,uEAAuE;IACvE,aAAa,EAAE,GAAgF,EAAE;QAC/F,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACzD,OAAO,WAAW,CAAC,gBAAgB,EAAE,CAAA;IACvC,CAAC;IAED,mFAAmF;IACnF,SAAS,EAAE,GAAa,EAAE;QACxB,MAAM,CAAC,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAA;QACtF,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAClC,CAAC;IACD,qCAAqC;IACrC,YAAY,EAAE,CAAC,YAAsB,EAAE,EAAE,CACvC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC,GAAG,EAAE,YAAY,CAAC;IAE5F,qFAAqF;IACrF,qBAAqB,EAAE,GAAqB,EAAE;QAC5C,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC5D,OAAO,WAAW,CAAC,iCAAiC,EAAE,CAAA;IACxD,CAAC;IACD,yFAAyF;IACzF,yBAAyB,EAAE,GAAG,EAAE;QAC9B,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS;YAAE,OAAM;QACrC,OAAO,WAAW,CAAC,gCAAgC,EAAE,CAAA;IACvD,CAAC;CACF,CAAA","sourcesContent":["/**\n * phoneNotifications facade — `engine.phoneNotifications`: forward phone\n * notifications to the glasses, with a per-app blocklist. Android-only (the\n * NotificationListenerService); the getters return sensible defaults on iOS.\n *\n * Enabled-state + blocklist are engine settings (auto-synced to the native\n * listener); the installed-apps list + the listener permission are CrustModule.\n */\nimport {Platform} from \"react-native\"\nimport CrustModule from \"@mentra/crust\"\nimport {useSettingsStore, SETTINGS} from \"../stores/settings\"\n\nexport const phoneNotifications = {\n /** Is phone-notification forwarding enabled? (false on iOS) */\n enabled: (): boolean => {\n if (Platform.OS !== \"android\") return false\n return useSettingsStore.getState().getSetting(SETTINGS.notifications_enabled.key) ?? true\n },\n /** Enable/disable phone-notification forwarding. (no-op on iOS) */\n setEnabled: (enabled: boolean) => {\n if (Platform.OS !== \"android\") return\n return useSettingsStore.getState().setSetting(SETTINGS.notifications_enabled.key, enabled)\n },\n\n /** The phone's installed apps (package, name, icon). (empty on iOS) */\n installedApps: (): Promise<Array<{packageName: string; appName: string; icon: string | null}>> => {\n if (Platform.OS !== \"android\") return Promise.resolve([])\n return CrustModule.getInstalledApps()\n },\n\n /** The per-app blocklist (package names whose notifications are NOT forwarded). */\n blocklist: (): string[] => {\n const b = useSettingsStore.getState().getSetting(SETTINGS.notifications_blocklist.key)\n return Array.isArray(b) ? b : []\n },\n /** Replace the per-app blocklist. */\n setBlocklist: (packageNames: string[]) =>\n useSettingsStore.getState().setSetting(SETTINGS.notifications_blocklist.key, packageNames),\n\n /** Does the app have the Android notification-listener permission? (false on iOS) */\n hasListenerPermission: (): Promise<boolean> => {\n if (Platform.OS !== \"android\") return Promise.resolve(false)\n return CrustModule.hasNotificationListenerPermission()\n },\n /** Open the OS settings to grant the notification-listener permission. (no-op on iOS) */\n requestListenerPermission: () => {\n if (Platform.OS !== \"android\") return\n return CrustModule.openNotificationListenerSettings()\n },\n}\n"]}
1
+ {"version":3,"file":"phoneNotifications.js","sourceRoot":"","sources":["../../src/facades/phoneNotifications.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAA;AACrC,OAAO,WAAW,MAAM,eAAe,CAAA;AACvC,OAAO,EAAC,gBAAgB,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAA;AAE7D,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,uEAAuE;IACvE,aAAa,EAAE,GAAgF,EAAE;QAC/F,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACzD,OAAO,WAAW,CAAC,gBAAgB,EAAE,CAAA;IACvC,CAAC;IAED,mFAAmF;IACnF,SAAS,EAAE,GAAa,EAAE;QACxB,MAAM,CAAC,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAA;QACtF,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAClC,CAAC;IACD,qCAAqC;IACrC,YAAY,EAAE,CAAC,YAAsB,EAAE,EAAE,CACvC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC,GAAG,EAAE,YAAY,CAAC;IAE5F,qFAAqF;IACrF,qBAAqB,EAAE,GAAqB,EAAE;QAC5C,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC5D,OAAO,WAAW,CAAC,iCAAiC,EAAE,CAAA;IACxD,CAAC;IACD,yFAAyF;IACzF,yBAAyB,EAAE,GAAG,EAAE;QAC9B,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS;YAAE,OAAM;QACrC,OAAO,WAAW,CAAC,gCAAgC,EAAE,CAAA;IACvD,CAAC;CACF,CAAA","sourcesContent":["/**\n * phoneNotifications facade — `engine.phoneNotifications`: forward phone\n * notifications to the glasses, with a per-app blocklist. Android-only (the\n * NotificationListenerService); the getters return sensible defaults on iOS.\n *\n * The per-app blocklist is an engine setting (auto-synced to the native\n * listener); the installed-apps list + listener permission are CrustModule.\n * Capture itself is controlled only by Android notification access and the\n * hidden operational kill switch.\n */\nimport {Platform} from \"react-native\"\nimport CrustModule from \"@mentra/crust\"\nimport {useSettingsStore, SETTINGS} from \"../stores/settings\"\n\nexport const phoneNotifications = {\n /** The phone's installed apps (package, name, icon). (empty on iOS) */\n installedApps: (): Promise<Array<{packageName: string; appName: string; icon: string | null}>> => {\n if (Platform.OS !== \"android\") return Promise.resolve([])\n return CrustModule.getInstalledApps()\n },\n\n /** The per-app blocklist (package names whose notifications are NOT forwarded). */\n blocklist: (): string[] => {\n const b = useSettingsStore.getState().getSetting(SETTINGS.notifications_blocklist.key)\n return Array.isArray(b) ? b : []\n },\n /** Replace the per-app blocklist. */\n setBlocklist: (packageNames: string[]) =>\n useSettingsStore.getState().setSetting(SETTINGS.notifications_blocklist.key, packageNames),\n\n /** Does the app have the Android notification-listener permission? (false on iOS) */\n hasListenerPermission: (): Promise<boolean> => {\n if (Platform.OS !== \"android\") return Promise.resolve(false)\n return CrustModule.hasNotificationListenerPermission()\n },\n /** Open the OS settings to grant the notification-listener permission. (no-op on iOS) */\n requestListenerPermission: () => {\n if (Platform.OS !== \"android\") return\n return CrustModule.openNotificationListenerSettings()\n },\n}\n"]}
package/build/index.d.ts CHANGED
@@ -16,7 +16,7 @@ export type { IslandNotification, IslandNotificationKind } from "./facades/notif
16
16
  export type { WifiSearchResult } from "./facades/glassesWifi";
17
17
  export type { IdentitySnapshot } from "./services/PairingIdentity";
18
18
  export type { DisplayMirrorEvent } from "./facades/displayMirror";
19
- export type { IslandConfigureOptions, IslandAuth, IslandConfigValues, IslandAnalytics, IslandUiSeams, SubjectTokenType, } from "./runtime/bootstrap";
19
+ export type { IslandConfigureOptions, IslandAuth, IslandConfigValues, IslandAnalytics, IslandUiSeams, ScanQrOptions, ScanQrResult, SubjectTokenType, } from "./runtime/bootstrap";
20
20
  export { SETTINGS, useSetting } from "./stores/settings";
21
21
  export { MENTRA_LIVE_SETTING_KEYS, getBluetoothSettingKeysForDevice } from "./stores/bluetoothSettingKeys";
22
22
  export { ISLAND_SETTINGS_KEYS } from "./runtime/config";
@@ -24,10 +24,13 @@ export type { CloudClientStatusSnapshot, MiniappAuthToken, InteropAuditEvent, Tt
24
24
  export { isGlassesConnected, isGlassesReady, isGlassesLinkLayerBusy, waitForGlassesReady, type GlassesConnectionStatus, type WaitForGlassesReadyOptions, } from "./services/GlassesReadiness";
25
25
  export { decideReconnect, decideConnectButtonAction, type ReconnectDecision, type ReconnectDecisionInput, type ConnectButtonAction, } from "./services/ConnectionCoordinator";
26
26
  export type { VersionInfo, MtkPatch, BesFirmware, VersionJson, OtaCheckResult, OtaCheckCurrentGlassesResult, OtaCheckCurrentGlassesOptions, } from "./services/OtaUpdateCheckService";
27
- export { MINIMUM_OTA_STATUS_BUILD, MAX_RETRIES, RETRY_INTERVAL_MS, PROGRESS_TIMEOUT_MS, DOWNLOAD_STUCK_TIMEOUT_MS, MTK_INSTALL_TIMEOUT_MS, GLOBAL_OTA_TIMEOUT_MS, POST_APK_OTA_START_DELAY_MS, PING_INTERVAL_MS, QUERY_REPLY_TIMEOUT_MS, OtaProgressMessages, } from "./services/otaInstallPolicy";
27
+ export { MINIMUM_OTA_STATUS_BUILD, MAX_RETRIES, RETRY_INTERVAL_MS, PROGRESS_TIMEOUT_MS, DOWNLOAD_STUCK_TIMEOUT_MS, MTK_INSTALL_TIMEOUT_MS, GLOBAL_OTA_TIMEOUT_MS, PING_INTERVAL_MS, QUERY_REPLY_TIMEOUT_MS, OtaProgressMessages, } from "./services/otaInstallPolicy";
28
28
  export { deriveDisplayState } from "./services/otaDisplayState";
29
29
  export type { DisplayState } from "./services/otaDisplayState";
30
30
  export type { OtaProgress, OtaProgressStatus, OtaStatus, OtaUpdateInfo, OtaSnapshot, OtaInstallSnapshot, } from "./facades/ota";
31
+ export { beginOtaAutoChain, clearOtaAutoChainReconnectWait, isOtaAutoChainActive, otaAutoChainFingerprint, otaAutoChainReconnectWaitRemaining, stopOtaAutoChain, tryAdvanceOtaAutoChain, MAX_OTA_AUTO_CHAIN_PASSES, OTA_AUTO_CHAIN_RECONNECT_TIMEOUT_MS, } from "./services/OtaAutoChain";
32
+ export type { OtaAutoChainAdvanceResult } from "./services/OtaAutoChain";
33
+ export { BES_INSTALL_RESTART_MESSAGE, getOtaErrorMessage, shouldRequireGlassesRebootForBesFailure, shouldShowChangeWifiForOtaDownloadFailure, } from "./services/OtaErrorMapping";
31
34
  export type { GalleryNotice, GalleryNoticeCode } from "./services/asg/galleryNotices";
32
35
  export { MediaLibraryPermissions } from "./utils/permissions/MediaLibraryPermissions";
33
36
  export { deriveGalleryDisplayName } from "./utils/permissions/galleryDisplayName";
@@ -35,7 +38,7 @@ export type { PhotoInfo, CaptureFile, CaptureGroup, GalleryResponse, ServerStatu
35
38
  export type { PairFailureEvent, GlassesNotReadyEvent } from "@mentra/bluetooth-sdk/internal";
36
39
  export { WebSocketStatus } from "./stores/connection";
37
40
  export { DUMMY_APPLET, saveAppsOrder, getAppsOrder, sortAppsByPackageNamePriority, saveLastOpenTime, getLastOpenTime, sortAppsByLastOpenTime, useApps, useStart, useStop, useSetForeground, useClearForeground, useRefresh, useStopAll, useInstall, useUninstall, useActiveApps, useActiveBackgroundApps, useBackgroundApps, useActiveForegroundApp, useForegroundApp, useActiveBackgroundAppsCount, useLocalMiniApps, type StartOptions, type OrderMap, } from "./stores/apps";
38
- export { decideDevLaunchRoute, type DevLaunchResult, type DevManifest } from "./utils/devMiniappLaunch";
41
+ export { decideDevLaunchRoute, type DecideDevLaunchOptions, type DevLaunchResult, type DevManifest, } from "./utils/devMiniappLaunch";
39
42
  export { HardwareCompatibility, type CompatibilityResult } from "./utils/hardware";
40
43
  export { BgTimer, throttle, debounce } from "./utils/timers";
41
44
  export { HardwareType, HardwareRequirementLevel, DeviceTypes, ControllerTypes, HARDWARE_CAPABILITIES, getModelCapabilities, simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, vuzixZ100, mentraDisplay, } from "./types";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/build/index.js CHANGED
@@ -27,8 +27,10 @@ export { isGlassesConnected, isGlassesReady, isGlassesLinkLayerBusy, waitForGlas
27
27
  export { decideReconnect, decideConnectButtonAction, } from "./services/ConnectionCoordinator";
28
28
  // OTA install policy (watchdog timings + failure copy) + display-state
29
29
  // derivation, consumed by the OTA screens and their tests.
30
- export { MINIMUM_OTA_STATUS_BUILD, MAX_RETRIES, RETRY_INTERVAL_MS, PROGRESS_TIMEOUT_MS, DOWNLOAD_STUCK_TIMEOUT_MS, MTK_INSTALL_TIMEOUT_MS, GLOBAL_OTA_TIMEOUT_MS, POST_APK_OTA_START_DELAY_MS, PING_INTERVAL_MS, QUERY_REPLY_TIMEOUT_MS, OtaProgressMessages, } from "./services/otaInstallPolicy";
30
+ export { MINIMUM_OTA_STATUS_BUILD, MAX_RETRIES, RETRY_INTERVAL_MS, PROGRESS_TIMEOUT_MS, DOWNLOAD_STUCK_TIMEOUT_MS, MTK_INSTALL_TIMEOUT_MS, GLOBAL_OTA_TIMEOUT_MS, PING_INTERVAL_MS, QUERY_REPLY_TIMEOUT_MS, OtaProgressMessages, } from "./services/otaInstallPolicy";
31
31
  export { deriveDisplayState } from "./services/otaDisplayState";
32
+ export { beginOtaAutoChain, clearOtaAutoChainReconnectWait, isOtaAutoChainActive, otaAutoChainFingerprint, otaAutoChainReconnectWaitRemaining, stopOtaAutoChain, tryAdvanceOtaAutoChain, MAX_OTA_AUTO_CHAIN_PASSES, OTA_AUTO_CHAIN_RECONNECT_TIMEOUT_MS, } from "./services/OtaAutoChain";
33
+ export { BES_INSTALL_RESTART_MESSAGE, getOtaErrorMessage, shouldRequireGlassesRebootForBesFailure, shouldShowChangeWifiForOtaDownloadFailure, } from "./services/OtaErrorMapping";
32
34
  export { MediaLibraryPermissions } from "./utils/permissions/MediaLibraryPermissions";
33
35
  export { deriveGalleryDisplayName } from "./utils/permissions/galleryDisplayName";
34
36
  // Cloud connection status enum (read model; the connection store is internal).
@@ -37,7 +39,7 @@ export { WebSocketStatus } from "./stores/connection";
37
39
  // installAppStoreHooks wiring are internal).
38
40
  export { DUMMY_APPLET, saveAppsOrder, getAppsOrder, sortAppsByPackageNamePriority, saveLastOpenTime, getLastOpenTime, sortAppsByLastOpenTime, useApps, useStart, useStop, useSetForeground, useClearForeground, useRefresh, useStopAll, useInstall, useUninstall, useActiveApps, useActiveBackgroundApps, useBackgroundApps, useActiveForegroundApp, useForegroundApp, useActiveBackgroundAppsCount, useLocalMiniApps, } from "./stores/apps";
39
41
  // Pure dev-miniapp launch-route decision (registration itself is internal).
40
- export { decideDevLaunchRoute } from "./utils/devMiniappLaunch";
42
+ export { decideDevLaunchRoute, } from "./utils/devMiniappLaunch";
41
43
  export { HardwareCompatibility } from "./utils/hardware";
42
44
  export { BgTimer, throttle, debounce } from "./utils/timers";
43
45
  // Types (copied from @mentra/types — keep in sync with cloud/packages/types/src)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,2EAA2E;AAC3E,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAuB/B,2EAA2E;AAC3E,6EAA6E;AAC7E,yEAAyE;AACzE,qEAAqE;AACrE,kDAAkD;AAClD,OAAO,EAAC,QAAQ,EAAE,UAAU,EAAC,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAC,wBAAwB,EAAE,gCAAgC,EAAC,MAAM,+BAA+B,CAAA;AAExG,8CAA8C;AAC9C,OAAO,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAA;AAQrD,2DAA2D;AAC3D,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,GAGpB,MAAM,6BAA6B,CAAA;AACpC,yEAAyE;AACzE,OAAO,EACL,eAAe,EACf,yBAAyB,GAI1B,MAAM,kCAAkC,CAAA;AAazC,uEAAuE;AACvE,2DAA2D;AAC3D,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAA;AAe7D,OAAO,EAAC,uBAAuB,EAAC,MAAM,6CAA6C,CAAA;AACnF,OAAO,EAAC,wBAAwB,EAAC,MAAM,wCAAwC,CAAA;AAO/E,+EAA+E;AAC/E,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAA;AAEnD,yEAAyE;AACzE,6CAA6C;AAC7C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,6BAA6B,EAC7B,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,OAAO,EACP,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,4BAA4B,EAC5B,gBAAgB,GAGjB,MAAM,eAAe,CAAA;AAEtB,4EAA4E;AAC5E,OAAO,EAAC,oBAAoB,EAAyC,MAAM,0BAA0B,CAAA;AACrG,OAAO,EAAC,qBAAqB,EAA2B,MAAM,kBAAkB,CAAA;AAChF,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAE1D,iFAAiF;AACjF,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,UAAU,EACV,SAAS,EACT,aAAa,GACd,MAAM,SAAS,CAAA","sourcesContent":["/**\n * `@mentra/engine` — the OEM-facing main entry.\n *\n * The `engine` namespace (configure/start/stop + typed domain facades), the\n * public contract/read-model types, and the pure helpers host UI legitimately\n * renders with (decision functions, sort/order helpers, policy constants,\n * capability tables, timers). Judgment rule: read models, commands, pure\n * functions and types belong here; anything that mutates runtime state or\n * exposes a raw store/service lives on `@mentra/engine/internal`\n * (migration-era surface) or `@mentra/engine/devtools` (debug-only) instead.\n * See cloud-v2/docs/issues/020-glasses-status-boundary/integration-review.md §D.\n */\n\n// The namespaced OEM-facing engine API (the \"(A) host API\"). See ./engine.\nexport {engine} from \"./engine\"\nexport type {\n ReportAttachmentInput,\n ReportContext,\n ReportDetails,\n ReportStatus,\n ReportTrigger,\n ReportSubmitResult,\n EngineSubmitReportInput,\n} from \"./facades/reports\"\nexport type {IslandNotification, IslandNotificationKind} from \"./facades/notifications\"\nexport type {WifiSearchResult} from \"./facades/glassesWifi\"\nexport type {IdentitySnapshot} from \"./services/PairingIdentity\"\nexport type {DisplayMirrorEvent} from \"./facades/displayMirror\"\nexport type {\n IslandConfigureOptions,\n IslandAuth,\n IslandConfigValues,\n IslandAnalytics,\n IslandUiSeams,\n SubjectTokenType,\n} from \"./runtime/bootstrap\"\n\n// Settings contract: the typed key registry (schema descriptors — the same\n// surface engine.settings.descriptor()/keys() reads), the per-key React hook\n// (the hook layer, same precedent as the apps hooks below), and the pure\n// device-model key helpers. The raw useSettingsStore stays internal;\n// imperative access goes through engine.settings.\nexport {SETTINGS, useSetting} from \"./stores/settings\"\nexport {MENTRA_LIVE_SETTING_KEYS, getBluetoothSettingKeysForDevice} from \"./stores/bluetoothSettingKeys\"\n\n// Runtime-shared constants and contract DTOs.\nexport {ISLAND_SETTINGS_KEYS} from \"./runtime/config\"\nexport type {\n CloudClientStatusSnapshot,\n MiniappAuthToken,\n InteropAuditEvent,\n TtsSynthesisResult,\n} from \"./runtime/config\"\n\n// Pure readiness predicates over glasses connection state.\nexport {\n isGlassesConnected,\n isGlassesReady,\n isGlassesLinkLayerBusy,\n waitForGlassesReady,\n type GlassesConnectionStatus,\n type WaitForGlassesReadyOptions,\n} from \"./services/GlassesReadiness\"\n// Pure connect/reconnect decision helpers (host UI renders the outcome).\nexport {\n decideReconnect,\n decideConnectButtonAction,\n type ReconnectDecision,\n type ReconnectDecisionInput,\n type ConnectButtonAction,\n} from \"./services/ConnectionCoordinator\"\n\n// OTA read-model types for host OTA UI (progress screen, error mapping,\n// progress section) — the check/install machinery itself is internal.\nexport type {\n VersionInfo,\n MtkPatch,\n BesFirmware,\n VersionJson,\n OtaCheckResult,\n OtaCheckCurrentGlassesResult,\n OtaCheckCurrentGlassesOptions,\n} from \"./services/OtaUpdateCheckService\"\n// OTA install policy (watchdog timings + failure copy) + display-state\n// derivation, consumed by the OTA screens and their tests.\nexport {\n MINIMUM_OTA_STATUS_BUILD,\n MAX_RETRIES,\n RETRY_INTERVAL_MS,\n PROGRESS_TIMEOUT_MS,\n DOWNLOAD_STUCK_TIMEOUT_MS,\n MTK_INSTALL_TIMEOUT_MS,\n GLOBAL_OTA_TIMEOUT_MS,\n POST_APK_OTA_START_DELAY_MS,\n PING_INTERVAL_MS,\n QUERY_REPLY_TIMEOUT_MS,\n OtaProgressMessages,\n} from \"./services/otaInstallPolicy\"\nexport {deriveDisplayState} from \"./services/otaDisplayState\"\nexport type {DisplayState} from \"./services/otaDisplayState\"\nexport type {\n OtaProgress,\n OtaProgressStatus,\n OtaStatus,\n OtaUpdateInfo,\n OtaSnapshot,\n OtaInstallSnapshot,\n} from \"./facades/ota\"\n\n// Gallery read models: engine.gallery.onNotice payload types, the media\n// permission helper + display-name derivation host gallery UI uses, and the\n// glasses-camera DTO types (re-exported through the host @/types/asg shim).\nexport type {GalleryNotice, GalleryNoticeCode} from \"./services/asg/galleryNotices\"\nexport {MediaLibraryPermissions} from \"./utils/permissions/MediaLibraryPermissions\"\nexport {deriveGalleryDisplayName} from \"./utils/permissions/galleryDisplayName\"\nexport type {PhotoInfo, CaptureFile, CaptureGroup, GalleryResponse, ServerStatus, HealthResponse, GalleryEvent} from \"./types/asg\"\n\n// Bluetooth SDK event types host UI subscribes to via engine facades (the\n// BluetoothSdk singleton passthrough itself is internal).\nexport type {PairFailureEvent, GlassesNotReadyEvent} from \"@mentra/bluetooth-sdk/internal\"\n\n// Cloud connection status enum (read model; the connection store is internal).\nexport {WebSocketStatus} from \"./stores/connection\"\n\n// App-list hook layer + pure list helpers (the raw useAppStatusStore and\n// installAppStoreHooks wiring are internal).\nexport {\n DUMMY_APPLET,\n saveAppsOrder,\n getAppsOrder,\n sortAppsByPackageNamePriority,\n saveLastOpenTime,\n getLastOpenTime,\n sortAppsByLastOpenTime,\n useApps,\n useStart,\n useStop,\n useSetForeground,\n useClearForeground,\n useRefresh,\n useStopAll,\n useInstall,\n useUninstall,\n useActiveApps,\n useActiveBackgroundApps,\n useBackgroundApps,\n useActiveForegroundApp,\n useForegroundApp,\n useActiveBackgroundAppsCount,\n useLocalMiniApps,\n type StartOptions,\n type OrderMap,\n} from \"./stores/apps\"\n\n// Pure dev-miniapp launch-route decision (registration itself is internal).\nexport {decideDevLaunchRoute, type DevLaunchResult, type DevManifest} from \"./utils/devMiniappLaunch\"\nexport {HardwareCompatibility, type CompatibilityResult} from \"./utils/hardware\"\nexport {BgTimer, throttle, debounce} from \"./utils/timers\"\n\n// Types (copied from @mentra/types — keep in sync with cloud/packages/types/src)\nexport {\n HardwareType,\n HardwareRequirementLevel,\n DeviceTypes,\n ControllerTypes,\n HARDWARE_CAPABILITIES,\n getModelCapabilities,\n simulatedGlasses,\n evenRealitiesG1,\n evenRealitiesG2,\n mentraLive,\n vuzixZ100,\n mentraDisplay,\n} from \"./types\"\nexport type {\n HardwareRequirement,\n CameraCapabilities,\n DisplayCapabilities,\n MicrophoneCapabilities,\n SpeakerCapabilities,\n IMUCapabilities,\n ButtonCapabilities,\n LightCapabilities,\n PowerCapabilities,\n Capabilities,\n AppletType,\n AppPermissionType,\n AppletPermission,\n AppletInterface,\n ClientApp,\n} from \"./types\"\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,2EAA2E;AAC3E,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAyB/B,2EAA2E;AAC3E,6EAA6E;AAC7E,yEAAyE;AACzE,qEAAqE;AACrE,kDAAkD;AAClD,OAAO,EAAC,QAAQ,EAAE,UAAU,EAAC,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAC,wBAAwB,EAAE,gCAAgC,EAAC,MAAM,+BAA+B,CAAA;AAExG,8CAA8C;AAC9C,OAAO,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAA;AAQrD,2DAA2D;AAC3D,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,GAGpB,MAAM,6BAA6B,CAAA;AACpC,yEAAyE;AACzE,OAAO,EACL,eAAe,EACf,yBAAyB,GAI1B,MAAM,kCAAkC,CAAA;AAazC,uEAAuE;AACvE,2DAA2D;AAC3D,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAA;AAU7D,OAAO,EACL,iBAAiB,EACjB,8BAA8B,EAC9B,oBAAoB,EACpB,uBAAuB,EACvB,kCAAkC,EAClC,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,mCAAmC,GACpC,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,uCAAuC,EACvC,yCAAyC,GAC1C,MAAM,4BAA4B,CAAA;AAMnC,OAAO,EAAC,uBAAuB,EAAC,MAAM,6CAA6C,CAAA;AACnF,OAAO,EAAC,wBAAwB,EAAC,MAAM,wCAAwC,CAAA;AAO/E,+EAA+E;AAC/E,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAA;AAEnD,yEAAyE;AACzE,6CAA6C;AAC7C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,6BAA6B,EAC7B,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,OAAO,EACP,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,4BAA4B,EAC5B,gBAAgB,GAGjB,MAAM,eAAe,CAAA;AAEtB,4EAA4E;AAC5E,OAAO,EACL,oBAAoB,GAIrB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAC,qBAAqB,EAA2B,MAAM,kBAAkB,CAAA;AAChF,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAE1D,iFAAiF;AACjF,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,UAAU,EACV,SAAS,EACT,aAAa,GACd,MAAM,SAAS,CAAA","sourcesContent":["/**\n * `@mentra/engine` — the OEM-facing main entry.\n *\n * The `engine` namespace (configure/start/stop + typed domain facades), the\n * public contract/read-model types, and the pure helpers host UI legitimately\n * renders with (decision functions, sort/order helpers, policy constants,\n * capability tables, timers). Judgment rule: read models, commands, pure\n * functions and types belong here; anything that mutates runtime state or\n * exposes a raw store/service lives on `@mentra/engine/internal`\n * (migration-era surface) or `@mentra/engine/devtools` (debug-only) instead.\n * See cloud-v2/docs/issues/020-glasses-status-boundary/integration-review.md §D.\n */\n\n// The namespaced OEM-facing engine API (the \"(A) host API\"). See ./engine.\nexport {engine} from \"./engine\"\nexport type {\n ReportAttachmentInput,\n ReportContext,\n ReportDetails,\n ReportStatus,\n ReportTrigger,\n ReportSubmitResult,\n EngineSubmitReportInput,\n} from \"./facades/reports\"\nexport type {IslandNotification, IslandNotificationKind} from \"./facades/notifications\"\nexport type {WifiSearchResult} from \"./facades/glassesWifi\"\nexport type {IdentitySnapshot} from \"./services/PairingIdentity\"\nexport type {DisplayMirrorEvent} from \"./facades/displayMirror\"\nexport type {\n IslandConfigureOptions,\n IslandAuth,\n IslandConfigValues,\n IslandAnalytics,\n IslandUiSeams,\n ScanQrOptions,\n ScanQrResult,\n SubjectTokenType,\n} from \"./runtime/bootstrap\"\n\n// Settings contract: the typed key registry (schema descriptors — the same\n// surface engine.settings.descriptor()/keys() reads), the per-key React hook\n// (the hook layer, same precedent as the apps hooks below), and the pure\n// device-model key helpers. The raw useSettingsStore stays internal;\n// imperative access goes through engine.settings.\nexport {SETTINGS, useSetting} from \"./stores/settings\"\nexport {MENTRA_LIVE_SETTING_KEYS, getBluetoothSettingKeysForDevice} from \"./stores/bluetoothSettingKeys\"\n\n// Runtime-shared constants and contract DTOs.\nexport {ISLAND_SETTINGS_KEYS} from \"./runtime/config\"\nexport type {\n CloudClientStatusSnapshot,\n MiniappAuthToken,\n InteropAuditEvent,\n TtsSynthesisResult,\n} from \"./runtime/config\"\n\n// Pure readiness predicates over glasses connection state.\nexport {\n isGlassesConnected,\n isGlassesReady,\n isGlassesLinkLayerBusy,\n waitForGlassesReady,\n type GlassesConnectionStatus,\n type WaitForGlassesReadyOptions,\n} from \"./services/GlassesReadiness\"\n// Pure connect/reconnect decision helpers (host UI renders the outcome).\nexport {\n decideReconnect,\n decideConnectButtonAction,\n type ReconnectDecision,\n type ReconnectDecisionInput,\n type ConnectButtonAction,\n} from \"./services/ConnectionCoordinator\"\n\n// OTA read-model types for host OTA UI (progress screen, error mapping,\n// progress section) — the check/install machinery itself is internal.\nexport type {\n VersionInfo,\n MtkPatch,\n BesFirmware,\n VersionJson,\n OtaCheckResult,\n OtaCheckCurrentGlassesResult,\n OtaCheckCurrentGlassesOptions,\n} from \"./services/OtaUpdateCheckService\"\n// OTA install policy (watchdog timings + failure copy) + display-state\n// derivation, consumed by the OTA screens and their tests.\nexport {\n MINIMUM_OTA_STATUS_BUILD,\n MAX_RETRIES,\n RETRY_INTERVAL_MS,\n PROGRESS_TIMEOUT_MS,\n DOWNLOAD_STUCK_TIMEOUT_MS,\n MTK_INSTALL_TIMEOUT_MS,\n GLOBAL_OTA_TIMEOUT_MS,\n PING_INTERVAL_MS,\n QUERY_REPLY_TIMEOUT_MS,\n OtaProgressMessages,\n} from \"./services/otaInstallPolicy\"\nexport {deriveDisplayState} from \"./services/otaDisplayState\"\nexport type {DisplayState} from \"./services/otaDisplayState\"\nexport type {\n OtaProgress,\n OtaProgressStatus,\n OtaStatus,\n OtaUpdateInfo,\n OtaSnapshot,\n OtaInstallSnapshot,\n} from \"./facades/ota\"\nexport {\n beginOtaAutoChain,\n clearOtaAutoChainReconnectWait,\n isOtaAutoChainActive,\n otaAutoChainFingerprint,\n otaAutoChainReconnectWaitRemaining,\n stopOtaAutoChain,\n tryAdvanceOtaAutoChain,\n MAX_OTA_AUTO_CHAIN_PASSES,\n OTA_AUTO_CHAIN_RECONNECT_TIMEOUT_MS,\n} from \"./services/OtaAutoChain\"\nexport type {OtaAutoChainAdvanceResult} from \"./services/OtaAutoChain\"\nexport {\n BES_INSTALL_RESTART_MESSAGE,\n getOtaErrorMessage,\n shouldRequireGlassesRebootForBesFailure,\n shouldShowChangeWifiForOtaDownloadFailure,\n} from \"./services/OtaErrorMapping\"\n\n// Gallery read models: engine.gallery.onNotice payload types, the media\n// permission helper + display-name derivation host gallery UI uses, and the\n// glasses-camera DTO types (re-exported through the host @/types/asg shim).\nexport type {GalleryNotice, GalleryNoticeCode} from \"./services/asg/galleryNotices\"\nexport {MediaLibraryPermissions} from \"./utils/permissions/MediaLibraryPermissions\"\nexport {deriveGalleryDisplayName} from \"./utils/permissions/galleryDisplayName\"\nexport type {PhotoInfo, CaptureFile, CaptureGroup, GalleryResponse, ServerStatus, HealthResponse, GalleryEvent} from \"./types/asg\"\n\n// Bluetooth SDK event types host UI subscribes to via engine facades (the\n// BluetoothSdk singleton passthrough itself is internal).\nexport type {PairFailureEvent, GlassesNotReadyEvent} from \"@mentra/bluetooth-sdk/internal\"\n\n// Cloud connection status enum (read model; the connection store is internal).\nexport {WebSocketStatus} from \"./stores/connection\"\n\n// App-list hook layer + pure list helpers (the raw useAppStatusStore and\n// installAppStoreHooks wiring are internal).\nexport {\n DUMMY_APPLET,\n saveAppsOrder,\n getAppsOrder,\n sortAppsByPackageNamePriority,\n saveLastOpenTime,\n getLastOpenTime,\n sortAppsByLastOpenTime,\n useApps,\n useStart,\n useStop,\n useSetForeground,\n useClearForeground,\n useRefresh,\n useStopAll,\n useInstall,\n useUninstall,\n useActiveApps,\n useActiveBackgroundApps,\n useBackgroundApps,\n useActiveForegroundApp,\n useForegroundApp,\n useActiveBackgroundAppsCount,\n useLocalMiniApps,\n type StartOptions,\n type OrderMap,\n} from \"./stores/apps\"\n\n// Pure dev-miniapp launch-route decision (registration itself is internal).\nexport {\n decideDevLaunchRoute,\n type DecideDevLaunchOptions,\n type DevLaunchResult,\n type DevManifest,\n} from \"./utils/devMiniappLaunch\"\nexport {HardwareCompatibility, type CompatibilityResult} from \"./utils/hardware\"\nexport {BgTimer, throttle, debounce} from \"./utils/timers\"\n\n// Types (copied from @mentra/types — keep in sync with cloud/packages/types/src)\nexport {\n HardwareType,\n HardwareRequirementLevel,\n DeviceTypes,\n ControllerTypes,\n HARDWARE_CAPABILITIES,\n getModelCapabilities,\n simulatedGlasses,\n evenRealitiesG1,\n evenRealitiesG2,\n mentraLive,\n vuzixZ100,\n mentraDisplay,\n} from \"./types\"\nexport type {\n HardwareRequirement,\n CameraCapabilities,\n DisplayCapabilities,\n MicrophoneCapabilities,\n SpeakerCapabilities,\n IMUCapabilities,\n ButtonCapabilities,\n LightCapabilities,\n PowerCapabilities,\n Capabilities,\n AppletType,\n AppPermissionType,\n AppletPermission,\n AppletInterface,\n ClientApp,\n} from \"./types\"\n"]}
@@ -15,7 +15,7 @@
15
15
  * types host UI renders with stay on the main entry.
16
16
  */
17
17
  export { default as webviewBridge } from "./services/WebviewBridge";
18
- export { default as appRegistry, normalizeManifestPermissions, normalizeManifestActions, buildHardwareRequirements, saveLocalAppRunningState, registerDevApp, unregisterDevApp, getDevAppRecords, getDevAppSourcePackage, getDevAppAttestation, DEV_APP_PACKAGE_NAME, type DevAppRecord, } from "./services/AppRegistry";
18
+ export { default as appRegistry, normalizeManifestPermissions, normalizeManifestActions, buildHardwareRequirements, saveLocalAppRunningState, registerDevApp, unregisterDevApp, getDevAppRecords, getDevAppSourcePackage, getDevAppAttestation, DEV_APP_PACKAGE_NAME, type DevAppRecord, type MiniappReleaseIdentity, } from "./services/AppRegistry";
19
19
  export { default as displayProcessor } from "./services/DisplayProcessor";
20
20
  export { default as localDisplayManager, type DisplayPayload } from "./services/LocalDisplayManager";
21
21
  export { default as localMiniappRuntime, type InstalledMiniappManifest } from "./services/LocalMiniappRuntime";
@@ -36,7 +36,7 @@ export { default as offlineSpeechModelService, type DownloadStatus as OfflineMod
36
36
  export { default as navigationService } from "./services/NavigationService";
37
37
  export { phoneLocationService, stopPhoneLocation } from "./services/PhoneLocationService";
38
38
  export { fixGlassesClockIfSkewed, maybeFixGlassesClockFromVersionInfo } from "./services/glassesClockSync";
39
- export { getAsgOtaVersionUrl } from "./services/asgOtaVersionUrl";
39
+ export { resolveOtaManifestUrl } from "./services/otaManifestUrl";
40
40
  export { fetchVersionInfo, checkVersionUpdateAvailable, getLatestVersionInfo, findMatchingMtkPatch, checkBesUpdate, checkForOtaUpdate, checkCurrentGlassesForUpdate, } from "./services/OtaUpdateCheckService";
41
41
  export { detectClockSkew, isSyncManifestEmpty, CLOCK_SKEW_TOLERANCE_MS } from "./services/gallerySyncClock";
42
42
  export { gallerySyncService } from "./services/asg/gallerySyncService";
@@ -44,6 +44,7 @@ export { asgCameraApi } from "./services/asg/asgCameraApi";
44
44
  export { localStorageService } from "./services/asg/localStorageService";
45
45
  export { mediaProcessingQueue } from "./services/asg/mediaProcessingQueue";
46
46
  export { gallerySettingsService } from "./services/asg/gallerySettingsService";
47
+ export { cameraRollExportCoordinator, type CameraRollExportSummary } from "./services/asg/cameraRollExportCoordinator";
47
48
  export { INVALID_DOWNLOADED_MEDIA, validateCaptureMetadataForDownload, validateDownloadedMediaFile, } from "./services/asg/galleryMediaValidation";
48
49
  export { emitGalleryNotice, onGalleryNotice } from "./services/asg/galleryNotices";
49
50
  export { phonePhotoCoordinator } from "./services/PhonePhotoCoordinator";
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,0BAA0B,CAAA;AACjE,OAAO,EACL,OAAO,IAAI,WAAW,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,YAAY,GAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,6BAA6B,CAAA;AACvE,OAAO,EAAC,OAAO,IAAI,mBAAmB,EAAE,KAAK,cAAc,EAAC,MAAM,gCAAgC,CAAA;AAClG,OAAO,EAAC,OAAO,IAAI,mBAAmB,EAAE,KAAK,wBAAwB,EAAC,MAAM,gCAAgC,CAAA;AAC5G,OAAO,EAAC,eAAe,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAC,MAAM,4BAA4B,CAAA;AACpH,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,IAAI,uBAAuB,EACtD,KAAK,YAAY,IAAI,oBAAoB,GAC1C,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAC,iBAAiB,EAAE,KAAK,mBAAmB,EAAC,MAAM,yBAAyB,CAAA;AACnF,OAAO,EAAC,cAAc,EAAE,KAAK,oBAAoB,EAAC,MAAM,2BAA2B,CAAA;AACnF,OAAO,EACL,uBAAuB,EACvB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,sBAAsB,GAC5B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAC,mBAAmB,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAC,MAAM,0BAA0B,CAAA;AAClG,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EAAC,OAAO,IAAI,2BAA2B,EAAC,MAAM,wCAAwC,CAAA;AAC7F,OAAO,EAAC,OAAO,IAAI,mBAAmB,EAAC,MAAM,gCAAgC,CAAA;AAC7E,OAAO,EAAC,OAAO,IAAI,oBAAoB,EAAC,MAAM,iCAAiC,CAAA;AAC/E,OAAO,EACL,OAAO,IAAI,eAAe,EAC1B,eAAe,EACf,KAAK,YAAY,IAAI,eAAe,EACpC,KAAK,cAAc,IAAI,iBAAiB,EACxC,KAAK,gBAAgB,IAAI,mBAAmB,EAC5C,KAAK,kBAAkB,IAAI,qBAAqB,GACjD,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAC,OAAO,IAAI,eAAe,EAAE,eAAe,EAAC,MAAM,4BAA4B,CAAA;AACtF,OAAO,EACL,OAAO,IAAI,yBAAyB,EACpC,KAAK,cAAc,IAAI,0BAA0B,EACjD,KAAK,aAAa,IAAI,yBAAyB,GAChD,MAAM,sCAAsC,CAAA;AAE7C,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,8BAA8B,CAAA;AAIzE,OAAO,EAAC,oBAAoB,EAAE,iBAAiB,EAAC,MAAM,iCAAiC,CAAA;AAEvF,OAAO,EAAC,uBAAuB,EAAE,mCAAmC,EAAC,MAAM,6BAA6B,CAAA;AAExG,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAA;AAG/D,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,kCAAkC,CAAA;AAKzC,OAAO,EAAC,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAC,MAAM,6BAA6B,CAAA;AACzG,OAAO,EAAC,kBAAkB,EAAC,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAC,mBAAmB,EAAC,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAC,oBAAoB,EAAC,MAAM,qCAAqC,CAAA;AACxE,OAAO,EAAC,sBAAsB,EAAC,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EACL,wBAAwB,EACxB,kCAAkC,EAClC,2BAA2B,GAC5B,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAC,MAAM,+BAA+B,CAAA;AAGhF,OAAO,EAAC,qBAAqB,EAAC,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAC,sBAAsB,EAAC,MAAM,mCAAmC,CAAA;AAIxE,OAAO,EAAC,eAAe,EAAE,4BAA4B,EAAC,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAC,yBAAyB,EAAC,MAAM,4BAA4B,CAAA;AACpE,YAAY,EAAC,qBAAqB,EAAE,eAAe,EAAE,aAAa,EAAC,MAAM,4BAA4B,CAAA;AACrG,OAAO,EAAC,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAC,MAAM,mBAAmB,CAAA;AACzF,OAAO,EAAC,wBAAwB,EAAE,gCAAgC,EAAC,MAAM,+BAA+B,CAAA;AACxG,OAAO,EAAC,iBAAiB,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAC,MAAM,eAAe,CAAA;AAGzF,OAAO,EAAC,gBAAgB,EAAC,MAAM,sCAAsC,CAAA;AACrE,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAC,oBAAoB,EAAC,MAAM,kCAAkC,CAAA;AAGrE,OAAO,EAAC,SAAS,EAAE,KAAK,QAAQ,EAAC,MAAM,oBAAoB,CAAA;AAK3D,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,gCAAgC,CAAA;AAItE,OAAO,EAAC,OAAO,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAA;AAGvD,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,4BAA4B,CAAA"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"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"}
package/build/internal.js CHANGED
@@ -44,7 +44,7 @@ export { phoneLocationService, stopPhoneLocation } from "./services/PhoneLocatio
44
44
  // Clock-skew fix commands (BLE writes) used by OTA + gallery sync.
45
45
  export { fixGlassesClockIfSkewed, maybeFixGlassesClockFromVersionInfo } from "./services/glassesClockSync";
46
46
  // OTA manifest-URL resolution (dev-override/legacy-build/env/prod).
47
- export { getAsgOtaVersionUrl } from "./services/asgOtaVersionUrl";
47
+ export { resolveOtaManifestUrl } from "./services/otaManifestUrl";
48
48
  // Flat OTA check helpers (network + BLE state). Host usage is a tracked
49
49
  // burn-down surface (§F); the sanctioned path is engine.ota.checkForUpdates().
50
50
  export { fetchVersionInfo, checkVersionUpdateAvailable, getLatestVersionInfo, findMatchingMtkPatch, checkBesUpdate, checkForOtaUpdate, checkCurrentGlassesForUpdate, } from "./services/OtaUpdateCheckService";
@@ -57,6 +57,7 @@ export { asgCameraApi } from "./services/asg/asgCameraApi";
57
57
  export { localStorageService } from "./services/asg/localStorageService";
58
58
  export { mediaProcessingQueue } from "./services/asg/mediaProcessingQueue";
59
59
  export { gallerySettingsService } from "./services/asg/gallerySettingsService";
60
+ export { cameraRollExportCoordinator } from "./services/asg/cameraRollExportCoordinator";
60
61
  export { INVALID_DOWNLOADED_MEDIA, validateCaptureMetadataForDownload, validateDownloadedMediaFile, } from "./services/asg/galleryMediaValidation";
61
62
  export { emitGalleryNotice, onGalleryNotice } from "./services/asg/galleryNotices";
62
63
  // Phone-side capture coordinators.
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `@mentra/engine/internal` — the migration-era runtime surface.\n *\n * Raw zustand stores and service singletons that the Mentra app's host-side\n * services (and the `@/stores/*` / `@/utils/*` shims) still reach into while\n * the typed `engine` facades grow. Everything here either mutates runtime\n * state or exposes a store/service directly, so none of it belongs on the\n * OEM-facing `@mentra/engine` main entry: new host code should read/act\n * through `engine.*` instead.\n *\n * Every `/internal` import in mobile/src is counted (report-only) by\n * scripts/check-mobile-runtime-boundary.sh; the burn-down plan is\n * cloud-v2/docs/issues/020-glasses-status-boundary/integration-review.md §D.\n * Types that only describe these internal surfaces live here with them;\n * types host UI renders with stay on the main entry.\n */\n\n// Miniapp runtime plumbing: WebView bridge, registry, launcher, engine.\nexport {default as webviewBridge} from \"./services/WebviewBridge\"\nexport {\n default as appRegistry,\n normalizeManifestPermissions,\n normalizeManifestActions,\n buildHardwareRequirements,\n saveLocalAppRunningState,\n registerDevApp,\n unregisterDevApp,\n getDevAppRecords,\n getDevAppSourcePackage,\n getDevAppAttestation,\n DEV_APP_PACKAGE_NAME,\n type DevAppRecord,\n} from \"./services/AppRegistry\"\nexport {default as displayProcessor} from \"./services/DisplayProcessor\"\nexport {default as localDisplayManager, type DisplayPayload} from \"./services/LocalDisplayManager\"\nexport {default as localMiniappRuntime, type InstalledMiniappManifest} from \"./services/LocalMiniappRuntime\"\nexport {miniappLauncher, type LaunchHints, type LaunchResult, type ResolvedBundle} from \"./services/MiniappLauncher\"\nexport {\n MentraJSRouter,\n type MentraJSCrustBinding,\n type OutboundMessagePayload as MentraJSOutboundMessage,\n type RouterLogger as MentraJSRouterLogger,\n} from \"./services/MentraJSRouter\"\nexport {buildMentraUiShim, type MentraUiShimOptions} from \"./services/mentraUiShim\"\nexport {MentraUIRouter, type MentraUICrustBinding} from \"./services/MentraUIRouter\"\nexport {\n MentraJSCrashController,\n type CrashState,\n type CrashOutcome,\n type CrashControllerOptions,\n} from \"./services/MentraJSCrashController\"\nexport {ensureMiniappEngine, getMiniappEngine, type MiniappEngine} from \"./services/MiniappEngine\"\nexport {\n redactSecrets,\n MentraJSLogThrottle,\n MentraJSLogRingBuffer,\n type ThrottleOptions,\n} from \"./services/MentraJSLogPipeline\"\n// WebView-injection script builders (miniapp globals + mentra-ui shim).\nexport {\n buildMiniappGlobalsScript,\n getCapsuleMenuRect,\n type BuildMiniappGlobalsOptions,\n type CapsuleMenuRect,\n type MiniappColorScheme,\n type MiniappSafeArea,\n} from \"./utils/miniappGlobals\"\n\n// Speech/audio coordinators and model managers.\nexport {default as localSttFallbackCoordinator} from \"./services/LocalSttFallbackCoordinator\"\nexport {default as micStateCoordinator} from \"./services/MicStateCoordinator\"\nexport {default as audioPlaybackService} from \"./services/AudioPlaybackService\"\nexport {\n default as sttModelManager,\n STTModelManager,\n type LanguageInfo as SttLanguageInfo,\n type LanguageConfig as SttLanguageConfig,\n type DownloadProgress as SttDownloadProgress,\n type ExtractionProgress as SttExtractionProgress,\n} from \"./services/STTModelManager\"\nexport {default as ttsModelManager, TTSModelManager} from \"./services/TTSModelManager\"\nexport {\n default as offlineSpeechModelService,\n type DownloadStatus as OfflineModelDownloadStatus,\n type DownloadStage as OfflineModelDownloadStage,\n} from \"./services/OfflineSpeechModelService\"\n\nexport {default as navigationService} from \"./services/NavigationService\"\n// Phone GPS — the background location task + tier control. Importing this\n// module registers the background task, so the entry that MantleManager loads\n// must keep re-exporting it (was: the main barrel).\nexport {phoneLocationService, stopPhoneLocation} from \"./services/PhoneLocationService\"\n// Clock-skew fix commands (BLE writes) used by OTA + gallery sync.\nexport {fixGlassesClockIfSkewed, maybeFixGlassesClockFromVersionInfo} from \"./services/glassesClockSync\"\n// OTA manifest-URL resolution (dev-override/legacy-build/env/prod).\nexport {getAsgOtaVersionUrl} from \"./services/asgOtaVersionUrl\"\n// Flat OTA check helpers (network + BLE state). Host usage is a tracked\n// burn-down surface (§F); the sanctioned path is engine.ota.checkForUpdates().\nexport {\n fetchVersionInfo,\n checkVersionUpdateAvailable,\n getLatestVersionInfo,\n findMatchingMtkPatch,\n checkBesUpdate,\n checkForOtaUpdate,\n checkCurrentGlassesForUpdate,\n} from \"./services/OtaUpdateCheckService\"\n\n// Gallery cluster — sync orchestrator, glasses-camera HTTP API, media/storage,\n// settings, validation and the service-to-service notice bus. Host gallery UI\n// renders engine.gallery; these are the underlying services.\nexport {detectClockSkew, isSyncManifestEmpty, CLOCK_SKEW_TOLERANCE_MS} from \"./services/gallerySyncClock\"\nexport {gallerySyncService} from \"./services/asg/gallerySyncService\"\nexport {asgCameraApi} from \"./services/asg/asgCameraApi\"\nexport {localStorageService} from \"./services/asg/localStorageService\"\nexport {mediaProcessingQueue} from \"./services/asg/mediaProcessingQueue\"\nexport {gallerySettingsService} from \"./services/asg/gallerySettingsService\"\nexport {\n INVALID_DOWNLOADED_MEDIA,\n validateCaptureMetadataForDownload,\n validateDownloadedMediaFile,\n} from \"./services/asg/galleryMediaValidation\"\nexport {emitGalleryNotice, onGalleryNotice} from \"./services/asg/galleryNotices\"\n\n// Phone-side capture coordinators.\nexport {phonePhotoCoordinator} from \"./services/PhonePhotoCoordinator\"\nexport {phoneStreamCoordinator} from \"./services/PhoneStreamCoordinator\"\n\n// Raw runtime stores (re-exported via the host @/stores/* shims). Read models\n// live on the engine facades; these are the migration escape hatch.\nexport {useDisplayStore, flushDisplayCoalesceForTests} from \"./stores/display\"\nexport {useCoreStore} from \"./stores/core\"\nexport {useConnectionStore} from \"./stores/connection\"\nexport {useCloudClientStatusStore} from \"./stores/cloudClientStatus\"\nexport type {RuntimeAudioTransport, RuntimeSnapshot, RuntimeStatus} from \"./stores/cloudClientStatus\"\nexport {SETTINGS, OFFLINE_APPLETS, useSettingsStore, useSetting} from \"./stores/settings\"\nexport {MENTRA_LIVE_SETTING_KEYS, getBluetoothSettingKeysForDevice} from \"./stores/bluetoothSettingKeys\"\nexport {useAppStatusStore, installAppStoreHooks, type AppStoreHooks} from \"./stores/apps\"\n\n// Cloud client + credentials + v1 comms.\nexport {cloudSecureStore} from \"./utils/cloudClient/cloudSecureStore\"\nexport {cloudClientService} from \"./services/CloudClientService\"\nexport {createCloudUdpSocket} from \"./utils/cloudClient/RnUdpAdapter\"\n\n// Log ring buffer + console interception (bug-report attachments).\nexport {logBuffer, type LogEntry} from \"./utils/devLogging\"\n\n// Bluetooth SDK internal compatibility passthrough. Prefer an engine facade\n// when one exists; this remains an escape hatch for app-only compatibility\n// needs (its event TYPES stay on the main entry).\nexport {default as BluetoothSdk} from \"@mentra/bluetooth-sdk/internal\"\n\n\n// Engine-owned MMKV instance + debug helper.\nexport {storage, printDirectory} from \"./utils/storage\"\n// Process-wide event bus — one shared instance for engine services + host\n// (re-exported via the @/utils/GlobalEventEmitter shim).\nexport {default as GlobalEventEmitter} from \"./utils/GlobalEventEmitter\"\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `@mentra/engine/internal` — the migration-era runtime surface.\n *\n * Raw zustand stores and service singletons that the Mentra app's host-side\n * services (and the `@/stores/*` / `@/utils/*` shims) still reach into while\n * the typed `engine` facades grow. Everything here either mutates runtime\n * state or exposes a store/service directly, so none of it belongs on the\n * OEM-facing `@mentra/engine` main entry: new host code should read/act\n * through `engine.*` instead.\n *\n * Every `/internal` import in mobile/src is counted (report-only) by\n * scripts/check-mobile-runtime-boundary.sh; the burn-down plan is\n * cloud-v2/docs/issues/020-glasses-status-boundary/integration-review.md §D.\n * Types that only describe these internal surfaces live here with them;\n * types host UI renders with stay on the main entry.\n */\n\n// Miniapp runtime plumbing: WebView bridge, registry, launcher, engine.\nexport {default as webviewBridge} from \"./services/WebviewBridge\"\nexport {\n default as appRegistry,\n normalizeManifestPermissions,\n normalizeManifestActions,\n buildHardwareRequirements,\n saveLocalAppRunningState,\n registerDevApp,\n unregisterDevApp,\n getDevAppRecords,\n getDevAppSourcePackage,\n getDevAppAttestation,\n DEV_APP_PACKAGE_NAME,\n type DevAppRecord,\n type MiniappReleaseIdentity,\n} from \"./services/AppRegistry\"\nexport {default as displayProcessor} from \"./services/DisplayProcessor\"\nexport {default as localDisplayManager, type DisplayPayload} from \"./services/LocalDisplayManager\"\nexport {default as localMiniappRuntime, type InstalledMiniappManifest} from \"./services/LocalMiniappRuntime\"\nexport {miniappLauncher, type LaunchHints, type LaunchResult, type ResolvedBundle} from \"./services/MiniappLauncher\"\nexport {\n MentraJSRouter,\n type MentraJSCrustBinding,\n type OutboundMessagePayload as MentraJSOutboundMessage,\n type RouterLogger as MentraJSRouterLogger,\n} from \"./services/MentraJSRouter\"\nexport {buildMentraUiShim, type MentraUiShimOptions} from \"./services/mentraUiShim\"\nexport {MentraUIRouter, type MentraUICrustBinding} from \"./services/MentraUIRouter\"\nexport {\n MentraJSCrashController,\n type CrashState,\n type CrashOutcome,\n type CrashControllerOptions,\n} from \"./services/MentraJSCrashController\"\nexport {ensureMiniappEngine, getMiniappEngine, type MiniappEngine} from \"./services/MiniappEngine\"\nexport {\n redactSecrets,\n MentraJSLogThrottle,\n MentraJSLogRingBuffer,\n type ThrottleOptions,\n} from \"./services/MentraJSLogPipeline\"\n// WebView-injection script builders (miniapp globals + mentra-ui shim).\nexport {\n buildMiniappGlobalsScript,\n getCapsuleMenuRect,\n type BuildMiniappGlobalsOptions,\n type CapsuleMenuRect,\n type MiniappColorScheme,\n type MiniappSafeArea,\n} from \"./utils/miniappGlobals\"\n\n// Speech/audio coordinators and model managers.\nexport {default as localSttFallbackCoordinator} from \"./services/LocalSttFallbackCoordinator\"\nexport {default as micStateCoordinator} from \"./services/MicStateCoordinator\"\nexport {default as audioPlaybackService} from \"./services/AudioPlaybackService\"\nexport {\n default as sttModelManager,\n STTModelManager,\n type LanguageInfo as SttLanguageInfo,\n type LanguageConfig as SttLanguageConfig,\n type DownloadProgress as SttDownloadProgress,\n type ExtractionProgress as SttExtractionProgress,\n} from \"./services/STTModelManager\"\nexport {default as ttsModelManager, TTSModelManager} from \"./services/TTSModelManager\"\nexport {\n default as offlineSpeechModelService,\n type DownloadStatus as OfflineModelDownloadStatus,\n type DownloadStage as OfflineModelDownloadStage,\n} from \"./services/OfflineSpeechModelService\"\n\nexport {default as navigationService} from \"./services/NavigationService\"\n// Phone GPS — the background location task + tier control. Importing this\n// module registers the background task, so the entry that MantleManager loads\n// must keep re-exporting it (was: the main barrel).\nexport {phoneLocationService, stopPhoneLocation} from \"./services/PhoneLocationService\"\n// Clock-skew fix commands (BLE writes) used by OTA + gallery sync.\nexport {fixGlassesClockIfSkewed, maybeFixGlassesClockFromVersionInfo} from \"./services/glassesClockSync\"\n// OTA manifest-URL resolution (dev-override/legacy-build/env/prod).\nexport {resolveOtaManifestUrl} from \"./services/otaManifestUrl\"\n// Flat OTA check helpers (network + BLE state). Host usage is a tracked\n// burn-down surface (§F); the sanctioned path is engine.ota.checkForUpdates().\nexport {\n fetchVersionInfo,\n checkVersionUpdateAvailable,\n getLatestVersionInfo,\n findMatchingMtkPatch,\n checkBesUpdate,\n checkForOtaUpdate,\n checkCurrentGlassesForUpdate,\n} from \"./services/OtaUpdateCheckService\"\n\n// Gallery cluster — sync orchestrator, glasses-camera HTTP API, media/storage,\n// settings, validation and the service-to-service notice bus. Host gallery UI\n// renders engine.gallery; these are the underlying services.\nexport {detectClockSkew, isSyncManifestEmpty, CLOCK_SKEW_TOLERANCE_MS} from \"./services/gallerySyncClock\"\nexport {gallerySyncService} from \"./services/asg/gallerySyncService\"\nexport {asgCameraApi} from \"./services/asg/asgCameraApi\"\nexport {localStorageService} from \"./services/asg/localStorageService\"\nexport {mediaProcessingQueue} from \"./services/asg/mediaProcessingQueue\"\nexport {gallerySettingsService} from \"./services/asg/gallerySettingsService\"\nexport {cameraRollExportCoordinator, type CameraRollExportSummary} from \"./services/asg/cameraRollExportCoordinator\"\nexport {\n INVALID_DOWNLOADED_MEDIA,\n validateCaptureMetadataForDownload,\n validateDownloadedMediaFile,\n} from \"./services/asg/galleryMediaValidation\"\nexport {emitGalleryNotice, onGalleryNotice} from \"./services/asg/galleryNotices\"\n\n// Phone-side capture coordinators.\nexport {phonePhotoCoordinator} from \"./services/PhonePhotoCoordinator\"\nexport {phoneStreamCoordinator} from \"./services/PhoneStreamCoordinator\"\n\n// Raw runtime stores (re-exported via the host @/stores/* shims). Read models\n// live on the engine facades; these are the migration escape hatch.\nexport {useDisplayStore, flushDisplayCoalesceForTests} from \"./stores/display\"\nexport {useCoreStore} from \"./stores/core\"\nexport {useConnectionStore} from \"./stores/connection\"\nexport {useCloudClientStatusStore} from \"./stores/cloudClientStatus\"\nexport type {RuntimeAudioTransport, RuntimeSnapshot, RuntimeStatus} from \"./stores/cloudClientStatus\"\nexport {SETTINGS, OFFLINE_APPLETS, useSettingsStore, useSetting} from \"./stores/settings\"\nexport {MENTRA_LIVE_SETTING_KEYS, getBluetoothSettingKeysForDevice} from \"./stores/bluetoothSettingKeys\"\nexport {useAppStatusStore, installAppStoreHooks, type AppStoreHooks} from \"./stores/apps\"\n\n// Cloud client + credentials + v1 comms.\nexport {cloudSecureStore} from \"./utils/cloudClient/cloudSecureStore\"\nexport {cloudClientService} from \"./services/CloudClientService\"\nexport {createCloudUdpSocket} from \"./utils/cloudClient/RnUdpAdapter\"\n\n// Log ring buffer + console interception (bug-report attachments).\nexport {logBuffer, type LogEntry} from \"./utils/devLogging\"\n\n// Bluetooth SDK internal compatibility passthrough. Prefer an engine facade\n// when one exists; this remains an escape hatch for app-only compatibility\n// needs (its event TYPES stay on the main entry).\nexport {default as BluetoothSdk} from \"@mentra/bluetooth-sdk/internal\"\n\n\n// Engine-owned MMKV instance + debug helper.\nexport {storage, printDirectory} from \"./utils/storage\"\n// Process-wide event bus — one shared instance for engine services + host\n// (re-exported via the @/utils/GlobalEventEmitter shim).\nexport {default as GlobalEventEmitter} from \"./utils/GlobalEventEmitter\"\n"]}
@@ -0,0 +1,38 @@
1
+ import React from "react";
2
+ import { type StyleProp, type ViewStyle } from "react-native";
3
+ export type MentraLiveOtaFlowPage = "check" | "progress";
4
+ export type MentraLiveOtaFlowTheme = {
5
+ background: string;
6
+ border: string;
7
+ error: string;
8
+ foreground: string;
9
+ primary: string;
10
+ primaryText: string;
11
+ textDim: string;
12
+ };
13
+ export type MentraLiveOtaFlowTranslate = (key: string, options?: Record<string, string>) => string;
14
+ export type MentraLiveOtaFlowProps = {
15
+ /** Display name used in update copy. */
16
+ deviceName?: string;
17
+ /** Entry page. `progress` exists for recovery/deep-link compatibility. */
18
+ initialPage?: MentraLiveOtaFlowPage;
19
+ /** Start the OTA-only projections. Full engine hosts should pass false. */
20
+ initializeRuntime?: boolean;
21
+ /** Called after the final check or when the user leaves an optional update. */
22
+ onFinished: () => void;
23
+ /** Host-owned Wi-Fi setup for glasses that do not support hotspot OTA. */
24
+ onOpenWifiSetup: () => void;
25
+ /** Lets a host coordinate its global connection overlay with OTA progress and firmware restarts. */
26
+ onFirmwareRestartingChange?: (restarting: boolean, progressActive: boolean) => void;
27
+ /** Enables the existing developer-only escape hatches. */
28
+ allowDevSkip?: boolean;
29
+ /** Enables the existing super-mode interrupted-session escape hatch. */
30
+ superMode?: boolean;
31
+ /** Optional host localization. Defaults to the Mentra App English OTA copy. */
32
+ translate?: MentraLiveOtaFlowTranslate;
33
+ /** Optional host theme. Both hosts use the same layout and state machine. */
34
+ theme?: Partial<MentraLiveOtaFlowTheme>;
35
+ style?: StyleProp<ViewStyle>;
36
+ };
37
+ export declare function MentraLiveOtaFlow({ allowDevSkip, deviceName, initialPage, initializeRuntime, onFinished, onFirmwareRestartingChange, onOpenWifiSetup, style, superMode, theme, translate, }: MentraLiveOtaFlowProps): React.JSX.Element;
38
+ //# sourceMappingURL=MentraLiveOtaFlow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MentraLiveOtaFlow.d.ts","sourceRoot":"","sources":["../../src/react/MentraLiveOtaFlow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAA;AAC9E,OAAO,EAAuD,KAAK,SAAS,EAAE,KAAK,SAAS,EAAC,MAAM,cAAc,CAAA;AAsBjH,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,UAAU,CAAA;AAExD,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAA;AAElG,MAAM,MAAM,sBAAsB,GAAG;IACnC,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,+EAA+E;IAC/E,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,0EAA0E;IAC1E,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,oGAAoG;IACpG,0BAA0B,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,KAAK,IAAI,CAAA;IACnF,0DAA0D;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,0BAA0B,CAAA;IACtC,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAA;IACvC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;CAC7B,CAAA;AA8DD,wBAAgB,iBAAiB,CAAC,EAChC,YAAwD,EACxD,UAA0B,EAC1B,WAAqB,EACrB,iBAAwB,EACxB,UAAU,EACV,0BAA0B,EAC1B,eAAe,EACf,KAAK,EACL,SAAiB,EACjB,KAAK,EACL,SAA4B,GAC7B,EAAE,sBAAsB,qBA2DxB"}