@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,644 @@
1
+ /**
2
+ * Owns the singleton `@mentra/cloud-client` (CloudClient) for the engine runtime
3
+ * — the keystone move that pulls backend comms INTO engine.
4
+ *
5
+ * engine constructs the client from engine-owned pieces (the native UDP socket,
6
+ * the MMKV secure store, the cloud-status store) plus the two things the host
7
+ * provides through the engine front door: `auth.getSubjectToken` (the one
8
+ * permanent seam — the OEM owns login) and the resolved cloud endpoints
9
+ * (`config.coreUrl/runtimeUrl`, computed host-side from dev/settings). On init it
10
+ * exposes cloud runtime methods directly from this service, so the host no longer
11
+ * injects a cloud adapter — engine owns construction and wiring.
12
+ *
13
+ * The local-miniapp path drives the cloud's transcription/translation through
14
+ * this service.
15
+ */
16
+ import { CloudClient, setNativeHttp, setNativeUdp, setSecureStorage } from "@mentra/cloud-client/react-native";
17
+ import { Platform } from "react-native";
18
+ import BluetoothSdk from "@mentra/bluetooth-sdk/internal";
19
+ import CrustModule from "@mentra/crust";
20
+ import { getAuth, getConfigValues } from "../runtime/bootstrap";
21
+ import { useSettingsStore, SETTINGS } from "../stores/settings";
22
+ import { createCloudUdpSocket } from "../utils/cloudClient/RnUdpAdapter";
23
+ import { cloudSecureStore } from "../utils/cloudClient/cloudSecureStore";
24
+ import { useCloudClientStatusStore } from "../stores/cloudClientStatus";
25
+ import { islandNotifications } from "./NotificationsEmitter";
26
+ import { BgTimer } from "../utils/timers";
27
+ import { logCloudV2TranscriptMetric } from "./CloudTranscriptE2EMetrics";
28
+ import { nativeHttpResponseBody } from "./NativeHttpResponse";
29
+ const LOG_TAG = "cloudClient";
30
+ // Persistent cloud-disconnect detector: the cloud-client reconnect loop is infinite
31
+ // and never surfaces a "giving up" signal, so "persistent failure" = the session has
32
+ // been continuously NOT connected for this long. A quick reconnect cancels it; brief
33
+ // flaps that recover don't fire. Raised as engine.notifications(connection_failed_persistent).
34
+ const CLOUD_PERSISTENT_FAILURE_MS = 60_000;
35
+ /** Cancel the pending persistent-failure alarm + re-arm for the next outage. */
36
+ function clearPersistentFailureAlarm() {
37
+ if (persistentFailureTimer) {
38
+ BgTimer.clearTimeout(persistentFailureTimer);
39
+ persistentFailureTimer = null;
40
+ }
41
+ persistentFailureNotified = false;
42
+ }
43
+ // Neutral last-ditch fallbacks (reachable under `adb reverse`) for when the host
44
+ // passes no endpoints. The host normally resolves the real URLs (dev override /
45
+ // Metro host / env) and hands them in via `engine.configure({config})`.
46
+ const FALLBACK_CORE_URL = "http://localhost:3000";
47
+ const FALLBACK_RUNTIME_URL = "http://localhost:3001";
48
+ const LOCAL_AUTH_PORT = 3002;
49
+ let client = null;
50
+ let connected = false;
51
+ let persistentFailureTimer = null;
52
+ let persistentFailureNotified = false;
53
+ let audioSubscriptions = [];
54
+ let transportsReady = false;
55
+ /** Endpoints to build with — seeded from config, overridable via reconnect(). */
56
+ let endpointsOverride = null;
57
+ let runtimeStatusUnsubscribe = null;
58
+ let transcriptUnsubscribe = null;
59
+ let translationUnsubscribe = null;
60
+ let authStateUnsubscribe = null;
61
+ let localDevRuntimeToken = null;
62
+ let lc3FrameSizeUnsubscribe = null;
63
+ let coreTokenSyncPromise = null;
64
+ const transcriptListeners = new Set();
65
+ const translationListeners = new Set();
66
+ const statusListeners = new Set();
67
+ const connectionListeners = new Set();
68
+ function resolveEndpoints() {
69
+ if (endpointsOverride)
70
+ return endpointsOverride;
71
+ const cfg = getConfigValues();
72
+ return {
73
+ core: cfg.coreUrl?.trim() || FALLBACK_CORE_URL,
74
+ runtime: cfg.runtimeUrl?.trim() || FALLBACK_RUNTIME_URL,
75
+ };
76
+ }
77
+ function getCoreClient() {
78
+ if (!client)
79
+ construct();
80
+ const core = client?.core;
81
+ if (!core)
82
+ throw new Error("cloud client core not configured");
83
+ return core;
84
+ }
85
+ function syncCoreAccessTokenToBluetooth() {
86
+ if (coreTokenSyncPromise)
87
+ return coreTokenSyncPromise;
88
+ coreTokenSyncPromise = syncCoreAccessTokenToBluetoothInternal().finally(() => {
89
+ coreTokenSyncPromise = null;
90
+ });
91
+ return coreTokenSyncPromise;
92
+ }
93
+ async function syncCoreAccessTokenToBluetoothInternal() {
94
+ if (!client)
95
+ construct();
96
+ const c = client;
97
+ if (!c)
98
+ throw new Error("cloud client not initialized");
99
+ const token = await c.auth.getCoreToken();
100
+ if (c !== client) {
101
+ throw new Error("cloud client changed while syncing core token");
102
+ }
103
+ const result = await useSettingsStore.getState().setSetting(SETTINGS.core_token.key, token, false);
104
+ if (result.is_error()) {
105
+ throw result.error;
106
+ }
107
+ try {
108
+ await BluetoothSdk.updateBluetoothSettings({ [SETTINGS.core_token.key]: token });
109
+ }
110
+ catch (err) {
111
+ console.warn(`${LOG_TAG}: direct Bluetooth core_token sync failed: ${err?.message ?? err}`);
112
+ }
113
+ return token;
114
+ }
115
+ function frameSizeBytes() {
116
+ // Read LIVE from the engine settings store (the source of truth) so a
117
+ // reconnect after a glasses swap (G1=20 ↔ G2=40) picks up the new frame size,
118
+ // not the one-time engine.configure({config}) snapshot. Falls back to the
119
+ // config value (set at boot) then 20 when the setting is unset.
120
+ const fromSettings = useSettingsStore.getState().getSetting(SETTINGS.lc3_frame_size.key);
121
+ const size = fromSettings ?? getConfigValues().audioFrameSizeBytes;
122
+ return size === 20 || size === 40 || size === 60 ? size : 20;
123
+ }
124
+ async function getSubjectToken() {
125
+ const a = getAuth();
126
+ if (!a)
127
+ throw new Error("cloudClient: engine.configure({auth}) not called");
128
+ const r = await a.getSubjectToken();
129
+ // IslandAuth's SubjectTokenType is intentionally open (`string & {}`) so OEMs
130
+ // can use other token kinds; cloud-client's is a closed union. The host's
131
+ // actual value ("supabase") is valid — narrow at this boundary.
132
+ return { token: r.token, type: r.type };
133
+ }
134
+ function normalizeExpiresAt(expiresAt) {
135
+ return expiresAt < 10_000_000_000 ? expiresAt * 1000 : expiresAt;
136
+ }
137
+ function shouldUseLocalDevRuntimeToken(endpoints) {
138
+ if (!__DEV__)
139
+ return false;
140
+ try {
141
+ const host = new URL(endpoints.runtime).hostname;
142
+ return host === "localhost" || host === "127.0.0.1" || host === "10.0.2.2";
143
+ }
144
+ catch {
145
+ return false;
146
+ }
147
+ }
148
+ async function getLocalDevRuntimeToken(runtimeEndpoint, opts) {
149
+ const now = Date.now();
150
+ if (!opts?.forceRefresh &&
151
+ localDevRuntimeToken?.runtimeUrl === runtimeEndpoint &&
152
+ localDevRuntimeToken.expiresAtMs - now > 60_000) {
153
+ return localDevRuntimeToken.token;
154
+ }
155
+ const base = new URL(runtimeEndpoint);
156
+ base.port = String(LOCAL_AUTH_PORT);
157
+ base.pathname = "/api/dev/runtime-token";
158
+ base.search = new URLSearchParams({ userId: "local-phone-user", tenantId: "mentra" }).toString();
159
+ const res = await fetch(base.toString());
160
+ if (!res.ok) {
161
+ throw new Error(`cloudClient: local dev runtime token failed (${res.status})`);
162
+ }
163
+ const body = (await res.json());
164
+ if (!body.access_token) {
165
+ throw new Error("cloudClient: local dev runtime token response missing access_token");
166
+ }
167
+ localDevRuntimeToken = {
168
+ runtimeUrl: runtimeEndpoint,
169
+ token: body.access_token,
170
+ expiresAtMs: now + (body.expires_in ?? 300) * 1000,
171
+ };
172
+ return body.access_token;
173
+ }
174
+ function toCloudClientStatusSnapshot(snapshot) {
175
+ return { status: snapshot.status, audioTransport: snapshot.audioTransport };
176
+ }
177
+ function currentRuntimeStatus() {
178
+ const state = useCloudClientStatusStore.getState();
179
+ return { status: state.status, audioTransport: state.audioTransport };
180
+ }
181
+ function setRuntimeStatus(snapshot) {
182
+ useCloudClientStatusStore.getState().setSnapshot(snapshot);
183
+ emitStatus(toCloudClientStatusSnapshot(snapshot));
184
+ }
185
+ function resetRuntimeStatus() {
186
+ useCloudClientStatusStore.getState().reset();
187
+ emitStatus(currentRuntimeStatus());
188
+ }
189
+ function stringifyMeta(meta) {
190
+ if (!meta || typeof meta !== "object")
191
+ return "";
192
+ try {
193
+ return ` ${JSON.stringify(meta)}`;
194
+ }
195
+ catch {
196
+ return "";
197
+ }
198
+ }
199
+ const cloudLogger = {
200
+ debug: (msg, meta) => console.log(`${LOG_TAG}: debug: ${msg}${stringifyMeta(meta)}`),
201
+ info: (msg, meta) => console.log(`${LOG_TAG}: info: ${msg}${stringifyMeta(meta)}`),
202
+ warn: (msg, meta) => console.warn(`${LOG_TAG}: warn: ${msg}${stringifyMeta(meta)}`),
203
+ error: (msg, meta) => console.warn(`${LOG_TAG}: error: ${msg}${stringifyMeta(meta)}`),
204
+ };
205
+ function notifyConnectionListeners(next) {
206
+ for (const l of connectionListeners) {
207
+ try {
208
+ l(next);
209
+ }
210
+ catch (err) {
211
+ console.warn(`${LOG_TAG}: connection listener threw: ${err?.message ?? err}`);
212
+ }
213
+ }
214
+ }
215
+ function extractUnsubscribe(sub) {
216
+ const candidates = [];
217
+ const s = sub;
218
+ if (s && typeof s === "object") {
219
+ candidates.push(s);
220
+ candidates.push(s.value?.subscription);
221
+ candidates.push(s.data?.subscription);
222
+ candidates.push(s.subscription);
223
+ }
224
+ for (const c of candidates) {
225
+ const unsub = c?.unsubscribe;
226
+ if (typeof unsub === "function")
227
+ return unsub;
228
+ }
229
+ return null;
230
+ }
231
+ function ensureAuthWatch() {
232
+ if (authStateUnsubscribe)
233
+ return;
234
+ authStateUnsubscribe = () => { };
235
+ const auth = getAuth();
236
+ if (!auth?.onStateChange)
237
+ return;
238
+ let reconnectPending = false;
239
+ try {
240
+ const sub = auth.onStateChange((event, session) => {
241
+ if (!session?.token)
242
+ return;
243
+ if (connected || reconnectPending)
244
+ return;
245
+ reconnectPending = true;
246
+ console.log(`${LOG_TAG}: auth session available (${event}) while disconnected — reconnecting`);
247
+ try {
248
+ cloudClientService.reconnect();
249
+ }
250
+ finally {
251
+ setTimeout(() => {
252
+ reconnectPending = false;
253
+ }, 0);
254
+ }
255
+ });
256
+ const unsub = extractUnsubscribe(sub);
257
+ if (unsub)
258
+ authStateUnsubscribe = unsub;
259
+ }
260
+ catch (err) {
261
+ console.warn(`${LOG_TAG}: auth watch subscribe failed: ${err?.message ?? err}`);
262
+ }
263
+ }
264
+ function stopAuthWatch() {
265
+ authStateUnsubscribe?.();
266
+ authStateUnsubscribe = null;
267
+ }
268
+ function emitTranscript(data) {
269
+ for (const l of transcriptListeners) {
270
+ try {
271
+ l(data);
272
+ }
273
+ catch (err) {
274
+ console.warn(`${LOG_TAG}: transcript listener threw: ${err?.message ?? err}`);
275
+ }
276
+ }
277
+ }
278
+ function emitTranslation(data) {
279
+ for (const l of translationListeners) {
280
+ try {
281
+ l(data);
282
+ }
283
+ catch (err) {
284
+ console.warn(`${LOG_TAG}: translation listener threw: ${err?.message ?? err}`);
285
+ }
286
+ }
287
+ }
288
+ function emitStatus(snapshot) {
289
+ for (const l of statusListeners) {
290
+ try {
291
+ l(snapshot);
292
+ }
293
+ catch (err) {
294
+ console.warn(`${LOG_TAG}: status listener threw: ${err?.message ?? err}`);
295
+ }
296
+ }
297
+ }
298
+ function ensureTransports() {
299
+ if (transportsReady)
300
+ return;
301
+ transportsReady = true;
302
+ setNativeUdp(() => createCloudUdpSocket());
303
+ setSecureStorage(cloudSecureStore);
304
+ if (Platform.OS !== "android")
305
+ return;
306
+ setNativeHttp(async (input, init) => {
307
+ if (typeof input !== "string" || (init?.body != null && typeof init.body !== "string")) {
308
+ return globalThis.fetch(input, init);
309
+ }
310
+ const headers = Object.fromEntries(new Headers(init?.headers).entries());
311
+ const result = await CrustModule.nativeHttpRequest(init?.method ?? "GET", input, headers, init?.body ?? null);
312
+ return new Response(nativeHttpResponseBody(result.status, result.body), {
313
+ status: result.status,
314
+ statusText: result.statusText,
315
+ headers: result.headers,
316
+ });
317
+ });
318
+ }
319
+ function clearRuntimeEventSubscriptions() {
320
+ runtimeStatusUnsubscribe?.();
321
+ runtimeStatusUnsubscribe = null;
322
+ transcriptUnsubscribe?.();
323
+ transcriptUnsubscribe = null;
324
+ translationUnsubscribe?.();
325
+ translationUnsubscribe = null;
326
+ }
327
+ function startLc3FrameSizeWatcher() {
328
+ if (lc3FrameSizeUnsubscribe)
329
+ return;
330
+ let last = frameSizeBytes();
331
+ lc3FrameSizeUnsubscribe = useSettingsStore.subscribe((state) => state.getSetting(SETTINGS.lc3_frame_size.key), () => {
332
+ const next = frameSizeBytes();
333
+ if (next === last)
334
+ return;
335
+ last = next;
336
+ if (!client)
337
+ return;
338
+ console.log(`${LOG_TAG}: LC3 frame size changed to ${next}; reconnecting runtime`);
339
+ cloudClientService.reconnect();
340
+ });
341
+ }
342
+ function stopLc3FrameSizeWatcher() {
343
+ lc3FrameSizeUnsubscribe?.();
344
+ lc3FrameSizeUnsubscribe = null;
345
+ }
346
+ function construct() {
347
+ ensureTransports();
348
+ const endpoints = resolveEndpoints();
349
+ console.log(`${LOG_TAG}: endpoints ${JSON.stringify(endpoints)}`);
350
+ const coreAuth = { getSubjectToken };
351
+ const auth = shouldUseLocalDevRuntimeToken(endpoints)
352
+ ? {
353
+ core: coreAuth,
354
+ runtime: { getToken: (opts) => getLocalDevRuntimeToken(endpoints.runtime, opts) },
355
+ }
356
+ : { core: coreAuth, runtime: { source: "core" } };
357
+ client = new CloudClient({
358
+ endpoints,
359
+ // The phone LC3-encodes mic audio (even in phone/simulated mode); announce
360
+ // LC3 at 16 kHz with the frame size the encoder emits.
361
+ audio: { codec: "lc3", sampleRate: 16000, frameSizeBytes: frameSizeBytes() },
362
+ auth,
363
+ logger: cloudLogger,
364
+ });
365
+ const c = client;
366
+ clearRuntimeEventSubscriptions();
367
+ runtimeStatusUnsubscribe = c.runtime.onStatusChanged((status) => {
368
+ if (c !== client)
369
+ return;
370
+ setRuntimeStatus(status);
371
+ });
372
+ transcriptUnsubscribe = c.runtime.onTranscript((data) => {
373
+ if (c !== client)
374
+ return;
375
+ logCloudV2TranscriptMetric(data);
376
+ emitTranscript(data);
377
+ });
378
+ translationUnsubscribe = c.runtime.onTranslation((data) => {
379
+ if (c !== client)
380
+ return;
381
+ emitTranslation(data);
382
+ });
383
+ setRuntimeStatus(c.runtime.getStatus());
384
+ c.runtime.onConnected(() => {
385
+ if (c !== client)
386
+ return;
387
+ connected = true;
388
+ console.log(`${LOG_TAG}: runtime connected`);
389
+ // Cloud is up — cancel any pending persistent-failure alarm and re-arm for the
390
+ // next outage.
391
+ clearPersistentFailureAlarm();
392
+ // Re-apply the authoritative subscription set, including the empty set, so
393
+ // a fresh phone launch clears any stale server-side audio subscriptions.
394
+ c.runtime
395
+ .setSubscriptions(audioSubscriptions)
396
+ .catch((err) => console.warn(`${LOG_TAG}: re-applying queued subscriptions failed: ${err?.message ?? err}`));
397
+ notifyConnectionListeners(true);
398
+ });
399
+ c.runtime.onDisconnected((info) => {
400
+ if (c !== client)
401
+ return;
402
+ connected = false;
403
+ console.log(`${LOG_TAG}: runtime disconnected (${info.reason})`);
404
+ // Arm the persistent-failure alarm once; if we're still down when it fires, raise
405
+ // the notification. A reconnect within the window cancels it (onConnected above).
406
+ if (!persistentFailureTimer && !persistentFailureNotified) {
407
+ persistentFailureTimer = BgTimer.setTimeout(() => {
408
+ persistentFailureTimer = null;
409
+ if (connected)
410
+ return;
411
+ persistentFailureNotified = true;
412
+ islandNotifications.emit({
413
+ kind: "connection_failed_persistent",
414
+ reason: `Cloud session has been disconnected for over ${Math.round(CLOUD_PERSISTENT_FAILURE_MS / 1000)}s`,
415
+ metadata: { downForMs: CLOUD_PERSISTENT_FAILURE_MS, lastReason: info.reason },
416
+ timestamp: Date.now(),
417
+ });
418
+ }, CLOUD_PERSISTENT_FAILURE_MS);
419
+ }
420
+ notifyConnectionListeners(false);
421
+ });
422
+ c.runtime.onError((err) => {
423
+ console.warn(`${LOG_TAG}: runtime error: ${err.code}`);
424
+ });
425
+ // Best-effort connect. Do not crash the app if the dev cloud is unreachable.
426
+ c.runtime
427
+ .connect()
428
+ .then(() => console.log(`${LOG_TAG}: connect() resolved`))
429
+ .catch((err) => console.warn(`${LOG_TAG}: connect() failed: ${err?.message ?? err}`));
430
+ syncCoreAccessTokenToBluetooth().catch((err) => console.warn(`${LOG_TAG}: initial Bluetooth core_token sync failed: ${err?.message ?? err}`));
431
+ startLc3FrameSizeWatcher();
432
+ }
433
+ /**
434
+ * engine's cloud client. Owns the singleton CloudClient, its connection state,
435
+ * and the runtime-hook wiring.
436
+ */
437
+ export const cloudClientService = {
438
+ /**
439
+ * Construct (once) + connect the client. Idempotent. Best-effort connect — a
440
+ * failure is logged and the app keeps running. Requires
441
+ * `engine.configure({auth, config})` first.
442
+ */
443
+ init() {
444
+ if (client)
445
+ return;
446
+ ensureAuthWatch();
447
+ construct();
448
+ },
449
+ /**
450
+ * Tear down + rebuild. Pass new endpoints to switch URLs; pass `null` to CLEAR
451
+ * a prior override and fall back to the boot config (so cleared/default cloud
452
+ * URLs don't keep reconnecting to a stale override); omit to keep the current.
453
+ */
454
+ reconnect(endpoints) {
455
+ if (endpoints !== undefined)
456
+ endpointsOverride = endpoints;
457
+ try {
458
+ client?.runtime.close();
459
+ }
460
+ catch (err) {
461
+ console.warn(`${LOG_TAG}: reconnect close() failed: ${err?.message ?? err}`);
462
+ }
463
+ clearRuntimeEventSubscriptions();
464
+ clearPersistentFailureAlarm();
465
+ const wasConnected = connected;
466
+ client = null;
467
+ localDevRuntimeToken = null;
468
+ connected = false;
469
+ resetRuntimeStatus();
470
+ if (wasConnected)
471
+ notifyConnectionListeners(false);
472
+ construct();
473
+ },
474
+ async getPreinstalledMiniappRegistry() {
475
+ if (!client)
476
+ this.init();
477
+ const c = client;
478
+ if (!c?.core)
479
+ throw new Error("cloud client core is unavailable");
480
+ return c.core.miniapps.getRegistry();
481
+ },
482
+ async getMiniappAuthToken(packageName, opts) {
483
+ if (!client)
484
+ this.init();
485
+ const c = client;
486
+ if (!c)
487
+ throw new Error("cloud client not initialized");
488
+ const { token, expiresAt } = await c.auth.getMiniappToken(packageName, opts);
489
+ const identity = c.auth.identity;
490
+ return {
491
+ mentraUserId: identity.mentraUserId,
492
+ tenantId: identity.tenantId,
493
+ token,
494
+ expiresAt: normalizeExpiresAt(expiresAt),
495
+ };
496
+ },
497
+ /** Tear down the client + connection (the engine.stop() lifecycle). */
498
+ stop() {
499
+ try {
500
+ client?.runtime.close();
501
+ }
502
+ catch (err) {
503
+ console.warn(`${LOG_TAG}: stop close() failed: ${err?.message ?? err}`);
504
+ }
505
+ stopLc3FrameSizeWatcher();
506
+ stopAuthWatch();
507
+ clearRuntimeEventSubscriptions();
508
+ clearPersistentFailureAlarm();
509
+ const wasConnected = connected;
510
+ client = null;
511
+ localDevRuntimeToken = null;
512
+ connected = false;
513
+ resetRuntimeStatus();
514
+ if (wasConnected)
515
+ notifyConnectionListeners(false);
516
+ },
517
+ /** Device-side managed photo (cloud-v2): presign now, deliver bytes, await ready. */
518
+ startManagedPhoto(opts = {}) {
519
+ if (!client)
520
+ throw new Error("cloud client not connected");
521
+ return client.runtime.startManagedPhoto(opts);
522
+ },
523
+ awaitManagedPhotoReady(requestId) {
524
+ if (!client)
525
+ throw new Error("cloud client not connected");
526
+ return client.runtime.awaitManagedPhotoReady(requestId);
527
+ },
528
+ /** Managed stream (cloud-v2): provision ingest+playback on the runtime. */
529
+ startManagedStream(opts = {}) {
530
+ if (!client)
531
+ throw new Error("cloud client not connected");
532
+ return client.runtime.startManagedStream(opts);
533
+ },
534
+ getManagedStreamStatus(streamId) {
535
+ if (!client)
536
+ throw new Error("cloud client not connected");
537
+ return client.runtime.getManagedStreamStatus(streamId);
538
+ },
539
+ stopManagedStream(streamId) {
540
+ if (!client)
541
+ throw new Error("cloud client not connected");
542
+ return client.runtime.stopManagedStream(streamId);
543
+ },
544
+ /** Current live-session connection state (handshake completed). */
545
+ isConnected() {
546
+ return connected;
547
+ },
548
+ /** Subscribe to connection-state transitions. Returns an unsubscribe fn. */
549
+ onConnectionChange(listener) {
550
+ connectionListeners.add(listener);
551
+ return () => {
552
+ connectionListeners.delete(listener);
553
+ };
554
+ },
555
+ /** Replace the v2 cloud's audio subscription set for the live session. */
556
+ async setSubscriptions(subs) {
557
+ // Cache unconditionally so the desired set survives a not-yet-connected
558
+ // session and reconnects; the onConnected handler re-applies the cached set.
559
+ audioSubscriptions = subs;
560
+ const c = client;
561
+ if (connected && c) {
562
+ await c.runtime.setSubscriptions(subs);
563
+ }
564
+ },
565
+ sendAudioFrame(frame) {
566
+ client?.runtime.sendAudioFrame(frame);
567
+ },
568
+ onTranscript(cb) {
569
+ transcriptListeners.add(cb);
570
+ return () => {
571
+ transcriptListeners.delete(cb);
572
+ };
573
+ },
574
+ onTranslation(cb) {
575
+ translationListeners.add(cb);
576
+ return () => {
577
+ translationListeners.delete(cb);
578
+ };
579
+ },
580
+ getStatus() {
581
+ return currentRuntimeStatus();
582
+ },
583
+ getCoreUrl() {
584
+ return resolveEndpoints().core;
585
+ },
586
+ syncCoreTokenToBluetooth() {
587
+ return syncCoreAccessTokenToBluetooth();
588
+ },
589
+ onStatusChanged(cb) {
590
+ statusListeners.add(cb);
591
+ return () => {
592
+ statusListeners.delete(cb);
593
+ };
594
+ },
595
+ tts: {
596
+ speak(text, options) {
597
+ if (!client)
598
+ throw new Error("cloud client not connected");
599
+ return client.runtime.tts.speak(text, options);
600
+ },
601
+ },
602
+ maps: {
603
+ directions(req) {
604
+ if (!client)
605
+ throw new Error("cloud client not connected");
606
+ return client.runtime.maps.directions(req);
607
+ },
608
+ reverseGeocode(coord) {
609
+ if (!client)
610
+ throw new Error("cloud client not connected");
611
+ return client.runtime.maps.reverseGeocode(coord);
612
+ },
613
+ placeAutocomplete(req) {
614
+ if (!client)
615
+ throw new Error("cloud client not connected");
616
+ return client.runtime.maps.placeAutocomplete(req);
617
+ },
618
+ placeDetails(req) {
619
+ if (!client)
620
+ throw new Error("cloud client not connected");
621
+ return client.runtime.maps.placeDetails(req);
622
+ },
623
+ },
624
+ core: {
625
+ reports: {
626
+ submit(...args) {
627
+ return getCoreClient().reports.submit(...args);
628
+ },
629
+ addLogs(...args) {
630
+ return getCoreClient().reports.addLogs(...args);
631
+ },
632
+ addScreenshots(...args) {
633
+ return getCoreClient().reports.addScreenshots(...args);
634
+ },
635
+ complete(...args) {
636
+ return getCoreClient().reports.complete(...args);
637
+ },
638
+ },
639
+ },
640
+ hasAudioSubscriptions() {
641
+ return audioSubscriptions.length > 0;
642
+ },
643
+ };
644
+ //# sourceMappingURL=CloudClientService.js.map