@mentra/engine 3.1.0-dev.10 → 3.1.0-dev.102

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 (185) hide show
  1. package/README.md +24 -6
  2. package/build/bluetooth-sdk/ota-transport.d.ts +2 -0
  3. package/build/bluetooth-sdk/ota-transport.d.ts.map +1 -0
  4. package/build/bluetooth-sdk/ota-transport.js +2 -0
  5. package/build/bluetooth-sdk/ota-transport.js.map +1 -0
  6. package/build/engine.d.ts +5 -2
  7. package/build/engine.d.ts.map +1 -1
  8. package/build/facades/ota.d.ts +12 -7
  9. package/build/facades/ota.d.ts.map +1 -1
  10. package/build/facades/ota.js +10 -6
  11. package/build/facades/ota.js.map +1 -1
  12. package/build/facades/pairing.d.ts +4 -0
  13. package/build/facades/pairing.d.ts.map +1 -1
  14. package/build/facades/pairing.js +81 -7
  15. package/build/facades/pairing.js.map +1 -1
  16. package/build/generated/releaseMetadata.js +5 -5
  17. package/build/generated/releaseMetadata.js.map +1 -1
  18. package/build/index.d.ts +3 -3
  19. package/build/index.d.ts.map +1 -1
  20. package/build/index.js +2 -2
  21. package/build/index.js.map +1 -1
  22. package/build/react/MentraLiveOtaFlow.d.ts +8 -2
  23. package/build/react/MentraLiveOtaFlow.d.ts.map +1 -1
  24. package/build/react/MentraLiveOtaFlow.js +256 -354
  25. package/build/react/MentraLiveOtaFlow.js.map +1 -1
  26. package/build/react/index.d.ts +1 -0
  27. package/build/react/index.d.ts.map +1 -1
  28. package/build/react/index.js +1 -0
  29. package/build/react/index.js.map +1 -1
  30. package/build/react/useMentraLiveOta.d.ts +84 -0
  31. package/build/react/useMentraLiveOta.d.ts.map +1 -0
  32. package/build/react/useMentraLiveOta.js +627 -0
  33. package/build/react/useMentraLiveOta.js.map +1 -0
  34. package/build/services/BlobStore.d.ts +2 -0
  35. package/build/services/BlobStore.d.ts.map +1 -1
  36. package/build/services/BlobStore.js +63 -10
  37. package/build/services/BlobStore.js.map +1 -1
  38. package/build/services/DisplayProcessor.d.ts +3 -3
  39. package/build/services/DisplayProcessor.js +3 -3
  40. package/build/services/DisplayProcessor.js.map +1 -1
  41. package/build/services/GlassesStatusProjection.d.ts +15 -2
  42. package/build/services/GlassesStatusProjection.d.ts.map +1 -1
  43. package/build/services/GlassesStatusProjection.js +3 -3
  44. package/build/services/GlassesStatusProjection.js.map +1 -1
  45. package/build/services/HotspotOtaTransport.d.ts.map +1 -1
  46. package/build/services/HotspotOtaTransport.js +8 -7
  47. package/build/services/HotspotOtaTransport.js.map +1 -1
  48. package/build/services/LocalDisplayManager.d.ts +2 -3
  49. package/build/services/LocalDisplayManager.d.ts.map +1 -1
  50. package/build/services/LocalDisplayManager.js +2 -3
  51. package/build/services/LocalDisplayManager.js.map +1 -1
  52. package/build/services/OtaAutoChain.d.ts +9 -2
  53. package/build/services/OtaAutoChain.d.ts.map +1 -1
  54. package/build/services/OtaAutoChain.js +10 -2
  55. package/build/services/OtaAutoChain.js.map +1 -1
  56. package/build/services/OtaInstallCoordinator.d.ts +26 -3
  57. package/build/services/OtaInstallCoordinator.d.ts.map +1 -1
  58. package/build/services/OtaInstallCoordinator.js +35 -13
  59. package/build/services/OtaInstallCoordinator.js.map +1 -1
  60. package/build/services/OtaService.d.ts.map +1 -1
  61. package/build/services/OtaService.js +1 -1
  62. package/build/services/OtaService.js.map +1 -1
  63. package/build/services/OtaUpdateCheckService.d.ts +4 -1
  64. package/build/services/OtaUpdateCheckService.d.ts.map +1 -1
  65. package/build/services/OtaUpdateCheckService.js +21 -5
  66. package/build/services/OtaUpdateCheckService.js.map +1 -1
  67. package/build/services/PhonePhotoCoordinator.js +1 -1
  68. package/build/services/PhonePhotoCoordinator.js.map +1 -1
  69. package/build/services/PhoneStreamCoordinator.d.ts.map +1 -1
  70. package/build/services/PhoneStreamCoordinator.js +9 -6
  71. package/build/services/PhoneStreamCoordinator.js.map +1 -1
  72. package/build/services/StreamLifecycleController.d.ts +3 -3
  73. package/build/services/StreamLifecycleController.js +3 -3
  74. package/build/services/StreamLifecycleController.js.map +1 -1
  75. package/build/services/asg/localNetworkTransport.d.ts.map +1 -1
  76. package/build/services/asg/localNetworkTransport.js +13 -12
  77. package/build/services/asg/localNetworkTransport.js.map +1 -1
  78. package/build/services/glassesClockSync.js +1 -1
  79. package/build/services/glassesClockSync.js.map +1 -1
  80. package/build/services/otaInstallPolicy.d.ts +4 -0
  81. package/build/services/otaInstallPolicy.d.ts.map +1 -1
  82. package/build/services/otaInstallPolicy.js +4 -0
  83. package/build/services/otaInstallPolicy.js.map +1 -1
  84. package/build/services/otaReleaseVersion.d.ts +10 -0
  85. package/build/services/otaReleaseVersion.d.ts.map +1 -0
  86. package/build/services/otaReleaseVersion.js +14 -0
  87. package/build/services/otaReleaseVersion.js.map +1 -0
  88. package/build/stores/appVisibility.d.ts +3 -0
  89. package/build/stores/appVisibility.d.ts.map +1 -0
  90. package/build/stores/appVisibility.js +3 -0
  91. package/build/stores/appVisibility.js.map +1 -0
  92. package/build/stores/apps.d.ts.map +1 -1
  93. package/build/stores/apps.js +7 -1
  94. package/build/stores/apps.js.map +1 -1
  95. package/build/stores/core.d.ts +3 -3
  96. package/build/stores/core.d.ts.map +1 -1
  97. package/build/stores/core.js.map +1 -1
  98. package/build/stores/glasses.d.ts +10 -4
  99. package/build/stores/glasses.d.ts.map +1 -1
  100. package/build/stores/glasses.js.map +1 -1
  101. package/build/types/applet.d.ts +1 -1
  102. package/build/types/applet.js +1 -1
  103. package/build/types/applet.js.map +1 -1
  104. package/build/types/capabilities/even-realities-g1.d.ts.map +1 -1
  105. package/build/types/capabilities/even-realities-g1.js +2 -0
  106. package/build/types/capabilities/even-realities-g1.js.map +1 -1
  107. package/build/types/capabilities/even-realities-g2.d.ts.map +1 -1
  108. package/build/types/capabilities/even-realities-g2.js +2 -0
  109. package/build/types/capabilities/even-realities-g2.js.map +1 -1
  110. package/build/types/capabilities/mentra-display.d.ts.map +1 -1
  111. package/build/types/capabilities/mentra-display.js +2 -0
  112. package/build/types/capabilities/mentra-display.js.map +1 -1
  113. package/build/types/capabilities/mentra-live.d.ts.map +1 -1
  114. package/build/types/capabilities/mentra-live.js +2 -0
  115. package/build/types/capabilities/mentra-live.js.map +1 -1
  116. package/build/types/capabilities/nimo.d.ts +9 -0
  117. package/build/types/capabilities/nimo.d.ts.map +1 -0
  118. package/build/types/capabilities/nimo.js +57 -0
  119. package/build/types/capabilities/nimo.js.map +1 -0
  120. package/build/types/capabilities/none.d.ts.map +1 -1
  121. package/build/types/capabilities/none.js +2 -0
  122. package/build/types/capabilities/none.js.map +1 -1
  123. package/build/types/capabilities/simulated-glasses.d.ts.map +1 -1
  124. package/build/types/capabilities/simulated-glasses.js +2 -0
  125. package/build/types/capabilities/simulated-glasses.js.map +1 -1
  126. package/build/types/capabilities/vuzix-z100.d.ts.map +1 -1
  127. package/build/types/capabilities/vuzix-z100.js +2 -0
  128. package/build/types/capabilities/vuzix-z100.js.map +1 -1
  129. package/build/types/enums.d.ts +2 -1
  130. package/build/types/enums.d.ts.map +1 -1
  131. package/build/types/enums.js +1 -0
  132. package/build/types/enums.js.map +1 -1
  133. package/build/types/hardware.d.ts +3 -2
  134. package/build/types/hardware.d.ts.map +1 -1
  135. package/build/types/hardware.js +3 -1
  136. package/build/types/hardware.js.map +1 -1
  137. package/build/types/index.d.ts +1 -1
  138. package/build/types/index.d.ts.map +1 -1
  139. package/build/types/index.js +1 -1
  140. package/build/types/index.js.map +1 -1
  141. package/build/utils/display/composer/ColumnComposer.d.ts +1 -1
  142. package/build/utils/display/composer/ColumnComposer.js +1 -1
  143. package/build/utils/display/composer/ColumnComposer.js.map +1 -1
  144. package/package.json +13 -6
  145. package/src/bluetooth-sdk/ota-transport.ts +1 -0
  146. package/src/facades/ota.ts +20 -7
  147. package/src/facades/pairing.ts +88 -12
  148. package/src/generated/releaseMetadata.ts +5 -5
  149. package/src/index.ts +3 -0
  150. package/src/react/MentraLiveOtaFlow.tsx +378 -480
  151. package/src/react/index.ts +14 -0
  152. package/src/react/useMentraLiveOta.ts +793 -0
  153. package/src/services/BlobStore.ts +57 -10
  154. package/src/services/DisplayProcessor.ts +3 -3
  155. package/src/services/GlassesStatusProjection.ts +7 -6
  156. package/src/services/HotspotOtaTransport.ts +8 -7
  157. package/src/services/LocalDisplayManager.ts +2 -3
  158. package/src/services/OtaAutoChain.ts +26 -2
  159. package/src/services/OtaInstallCoordinator.ts +37 -13
  160. package/src/services/OtaService.ts +1 -2
  161. package/src/services/OtaUpdateCheckService.ts +26 -8
  162. package/src/services/PhonePhotoCoordinator.ts +1 -1
  163. package/src/services/PhoneStreamCoordinator.ts +10 -6
  164. package/src/services/StreamLifecycleController.ts +3 -3
  165. package/src/services/asg/localNetworkTransport.ts +20 -19
  166. package/src/services/glassesClockSync.ts +1 -1
  167. package/src/services/otaInstallPolicy.ts +4 -0
  168. package/src/services/otaReleaseVersion.ts +22 -0
  169. package/src/stores/appVisibility.ts +3 -0
  170. package/src/stores/apps.ts +7 -1
  171. package/src/stores/core.ts +4 -4
  172. package/src/stores/glasses.ts +13 -6
  173. package/src/types/applet.ts +1 -1
  174. package/src/types/capabilities/even-realities-g1.ts +3 -0
  175. package/src/types/capabilities/even-realities-g2.ts +3 -0
  176. package/src/types/capabilities/mentra-display.ts +3 -0
  177. package/src/types/capabilities/mentra-live.ts +3 -0
  178. package/src/types/capabilities/nimo.ts +59 -0
  179. package/src/types/capabilities/none.ts +3 -0
  180. package/src/types/capabilities/simulated-glasses.ts +3 -0
  181. package/src/types/capabilities/vuzix-z100.ts +3 -0
  182. package/src/types/enums.ts +1 -0
  183. package/src/types/hardware.ts +4 -2
  184. package/src/types/index.ts +1 -0
  185. package/src/utils/display/composer/ColumnComposer.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"applet.js","sourceRoot":"","sources":["../../src/types/applet.ts"],"names":[],"mappings":"AAAA;;GAEG","sourcesContent":["/**\n * @mentra/types - App/Applet types for client interfaces\n */\n\nimport type {ReactNode} from \"react\"\n\nimport {HardwareRequirement} from \"./hardware\"\n\nimport type {CompatibilityResult} from \"../utils/hardware/hardware\"\n\n/**\n * App execution model types\n */\nexport type AppletType = \"standard\" | \"background\" | \"system_dashboard\"\n\n/**\n * Permission types that apps can request\n */\nexport type AppPermissionType =\n | \"ALL\"\n | \"MICROPHONE\"\n | \"CAMERA\"\n | \"CALENDAR\"\n | \"LOCATION\"\n | \"BACKGROUND_LOCATION\"\n | \"READ_NOTIFICATIONS\"\n | \"POST_NOTIFICATIONS\"\n\n/**\n * Permission object with type and description\n */\nexport interface AppletPermission {\n type: AppPermissionType\n description?: string\n required?: boolean\n}\n\n/**\n * Minimal app interface for client home screen display\n * Optimized for fast rendering - only essential fields\n *\n * This is the client-facing interface used by mobile apps.\n * Internal cloud services use AppI from models (more fields).\n */\nexport interface AppletInterface {\n packageName: string\n name: string\n webviewUrl: string\n logoUrl: string\n iconComponent?: ReactNode\n type: AppletType\n permissions: AppletPermission[]\n running: boolean\n /**\n * True while this app's UI WebView is mounted in the Compositor overlay.\n * At most one app is foregrounded at a time. Distinct from `running`:\n * a foregrounded app is always running, but a running app may be\n * backgrounded (JSContext alive, WebView torn down). Normalized to a\n * concrete boolean by the apps store's projectApps; literal call sites\n * may omit it.\n */\n foregrounded?: boolean\n healthy: boolean\n hardwareRequirements: HardwareRequirement[]\n /** ISO date string when the app was installed */\n installedDate?: string\n /** ISO date string when the app was last run. Undefined if never run (app is \"new\") */\n lastActiveAt?: string\n}\n\n/**\n * Runtime applet shape used by the engine apps store and OEM hosts.\n *\n * Extends AppletInterface with the host-side fields the manager / OEM tracks\n * outside the manifest: offline routing, hardware compatibility result,\n * loading/hidden/local flags, lifecycle hooks, screenshot, and the\n * dev-miniapp escape hatches (`devUrl` / `isMiniappDev`) that surface a\n * `mentra-miniapp dev` snapshot.\n */\n/**\n * A manifest-declared action a miniapp exposes for other (system) miniapps to\n * invoke via `session.actions`. Populated from `miniapp.json`'s `actions` field.\n * Shape maps 1:1 onto an MCP tool (id→name, description, parameters→inputSchema).\n */\nexport interface DeclaredAction {\n id: string\n description: string\n /** JSON-Schema input descriptor (MCP-compatible subset). */\n parameters?: Record<string, unknown>\n /** JSON-Schema descriptor for the action's structured result. */\n outputSchema?: Record<string, unknown>\n}\n\nexport interface ClientApp extends AppletInterface {\n offline: boolean\n offlineRoute: string\n compatibility?: CompatibilityResult\n loading: boolean\n local: boolean\n hidden: boolean\n onStart?: () => void\n onStop?: () => void\n screenshot?: string\n runtimePermissions?: string[]\n declaredPermissions?: string[]\n version?: string\n needsPcm?: boolean\n needsTranscript?: boolean\n devUrl?: string\n devPort?: number\n isMiniappDev?: boolean\n /** Manifest-declared actions (for session.miniapps.list + invoke gating). */\n actions?: DeclaredAction[]\n}\n"]}
1
+ {"version":3,"file":"applet.js","sourceRoot":"","sources":["../../src/types/applet.ts"],"names":[],"mappings":"AAAA;;GAEG","sourcesContent":["/**\n * App and miniapp types owned by @mentra/engine.\n */\n\nimport type {ReactNode} from \"react\"\n\nimport {HardwareRequirement} from \"./hardware\"\n\nimport type {CompatibilityResult} from \"../utils/hardware/hardware\"\n\n/**\n * App execution model types\n */\nexport type AppletType = \"standard\" | \"background\" | \"system_dashboard\"\n\n/**\n * Permission types that apps can request\n */\nexport type AppPermissionType =\n | \"ALL\"\n | \"MICROPHONE\"\n | \"CAMERA\"\n | \"CALENDAR\"\n | \"LOCATION\"\n | \"BACKGROUND_LOCATION\"\n | \"READ_NOTIFICATIONS\"\n | \"POST_NOTIFICATIONS\"\n\n/**\n * Permission object with type and description\n */\nexport interface AppletPermission {\n type: AppPermissionType\n description?: string\n required?: boolean\n}\n\n/**\n * Minimal app interface for client home screen display\n * Optimized for fast rendering - only essential fields\n *\n * This is the client-facing interface used by mobile apps.\n * Internal cloud services use AppI from models (more fields).\n */\nexport interface AppletInterface {\n packageName: string\n name: string\n webviewUrl: string\n logoUrl: string\n iconComponent?: ReactNode\n type: AppletType\n permissions: AppletPermission[]\n running: boolean\n /**\n * True while this app's UI WebView is mounted in the Compositor overlay.\n * At most one app is foregrounded at a time. Distinct from `running`:\n * a foregrounded app is always running, but a running app may be\n * backgrounded (JSContext alive, WebView torn down). Normalized to a\n * concrete boolean by the apps store's projectApps; literal call sites\n * may omit it.\n */\n foregrounded?: boolean\n healthy: boolean\n hardwareRequirements: HardwareRequirement[]\n /** ISO date string when the app was installed */\n installedDate?: string\n /** ISO date string when the app was last run. Undefined if never run (app is \"new\") */\n lastActiveAt?: string\n}\n\n/**\n * Runtime applet shape used by the engine apps store and OEM hosts.\n *\n * Extends AppletInterface with the host-side fields the manager / OEM tracks\n * outside the manifest: offline routing, hardware compatibility result,\n * loading/hidden/local flags, lifecycle hooks, screenshot, and the\n * dev-miniapp escape hatches (`devUrl` / `isMiniappDev`) that surface a\n * `mentra-miniapp dev` snapshot.\n */\n/**\n * A manifest-declared action a miniapp exposes for other (system) miniapps to\n * invoke via `session.actions`. Populated from `miniapp.json`'s `actions` field.\n * Shape maps 1:1 onto an MCP tool (id→name, description, parameters→inputSchema).\n */\nexport interface DeclaredAction {\n id: string\n description: string\n /** JSON-Schema input descriptor (MCP-compatible subset). */\n parameters?: Record<string, unknown>\n /** JSON-Schema descriptor for the action's structured result. */\n outputSchema?: Record<string, unknown>\n}\n\nexport interface ClientApp extends AppletInterface {\n offline: boolean\n offlineRoute: string\n compatibility?: CompatibilityResult\n loading: boolean\n local: boolean\n hidden: boolean\n onStart?: () => void\n onStop?: () => void\n screenshot?: string\n runtimePermissions?: string[]\n declaredPermissions?: string[]\n version?: string\n needsPcm?: boolean\n needsTranscript?: boolean\n devUrl?: string\n devPort?: number\n isMiniappDev?: boolean\n /** Manifest-declared actions (for session.miniapps.list + invoke gating). */\n actions?: DeclaredAction[]\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"even-realities-g1.d.ts","sourceRoot":"","sources":["../../../src/types/capabilities/even-realities-g1.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,YAsD7B,CAAC"}
1
+ {"version":3,"file":"even-realities-g1.d.ts","sourceRoot":"","sources":["../../../src/types/capabilities/even-realities-g1.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,YAyD7B,CAAC"}
@@ -51,5 +51,7 @@ export const evenRealitiesG1 = {
51
51
  },
52
52
  // WiFi capabilities - G1 does not support WiFi
53
53
  hasWifi: false,
54
+ // OTA capabilities - G1 firmware updates are not driven by the ASG OTA flow
55
+ hasOta: false,
54
56
  };
55
57
  //# sourceMappingURL=even-realities-g1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"even-realities-g1.js","sourceRoot":"","sources":["../../../src/types/capabilities/even-realities-g1.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAiB;IAC3C,SAAS,EAAE,mBAAmB;IAE9B,kDAAkD;IAClD,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,2DAA2D;IAC3D,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE,KAAK,EAAE,kEAAkE;QAC3F,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACvC,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;QAEtB,4EAA4E;QAC5E,WAAW,EAAE,KAAK;QAClB,gBAAgB,EAAE,CAAC;KACpB;IAED,8DAA8D;IAC9D,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;KACd;IAED,oDAAoD;IACpD,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,IAAI;IAEb,4FAA4F;IAC5F,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,IAAI;IAET,iDAAiD;IACjD,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,+CAA+C;IAC/C,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;IAEX,yDAAyD;IACzD,KAAK,EAAE;QACL,kBAAkB,EAAE,KAAK;KAC1B;IAED,+CAA+C;IAC/C,OAAO,EAAE,KAAK;CACf,CAAC","sourcesContent":["/**\n * @fileoverview Even Realities G1 Hardware Capabilities\n *\n * Capability profile for the Even Realities G1 smart glasses model.\n * Defines the hardware and software features available on this device.\n */\n\nimport type { Capabilities } from \"../hardware\";\n\n/**\n * Even Realities G1 capability profile\n */\nexport const evenRealitiesG1: Capabilities = {\n modelName: \"Even Realities G1\",\n\n // Camera capabilities - G1 does not have a camera\n hasCamera: false,\n camera: null,\n\n // Display capabilities - G1 has a green monochrome display\n hasDisplay: true,\n display: {\n count: 2,\n isColor: false,\n color: \"green\",\n canDisplayBitmap: false, // broken in practice — capability stops lying (design doc §3.4.8)\n resolution: { width: 640, height: 200 },\n fieldOfView: { horizontal: 25 },\n maxTextLines: 5,\n adjustBrightness: true,\n\n // Scene display API — no positioned elements; scenes degrade to text walls.\n canPosition: false,\n maxImageElements: 0,\n },\n\n // Microphone capabilities - G1 has one microphone without VAD\n hasMicrophone: true,\n microphone: {\n count: 1,\n hasVAD: false,\n },\n\n // Speaker capabilities - G1 does not have a speaker\n hasSpeaker: false,\n speaker: null,\n\n // IMU capabilities - G1 has IMU for head-up/down detection but raw data not exposed to apps\n hasIMU: true,\n imu: null,\n\n // Button capabilities - G1 does not have buttons\n hasButton: false,\n button: null,\n\n // Light capabilities - G1 does not have lights\n hasLight: false,\n light: null,\n\n // Power capabilities - G1 does not have external battery\n power: {\n hasExternalBattery: false,\n },\n\n // WiFi capabilities - G1 does not support WiFi\n hasWifi: false,\n};\n"]}
1
+ {"version":3,"file":"even-realities-g1.js","sourceRoot":"","sources":["../../../src/types/capabilities/even-realities-g1.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAiB;IAC3C,SAAS,EAAE,mBAAmB;IAE9B,kDAAkD;IAClD,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,2DAA2D;IAC3D,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE,KAAK,EAAE,kEAAkE;QAC3F,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACvC,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;QAEtB,4EAA4E;QAC5E,WAAW,EAAE,KAAK;QAClB,gBAAgB,EAAE,CAAC;KACpB;IAED,8DAA8D;IAC9D,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;KACd;IAED,oDAAoD;IACpD,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,IAAI;IAEb,4FAA4F;IAC5F,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,IAAI;IAET,iDAAiD;IACjD,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,+CAA+C;IAC/C,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;IAEX,yDAAyD;IACzD,KAAK,EAAE;QACL,kBAAkB,EAAE,KAAK;KAC1B;IAED,+CAA+C;IAC/C,OAAO,EAAE,KAAK;IAEd,4EAA4E;IAC5E,MAAM,EAAE,KAAK;CACd,CAAC","sourcesContent":["/**\n * @fileoverview Even Realities G1 Hardware Capabilities\n *\n * Capability profile for the Even Realities G1 smart glasses model.\n * Defines the hardware and software features available on this device.\n */\n\nimport type { Capabilities } from \"../hardware\";\n\n/**\n * Even Realities G1 capability profile\n */\nexport const evenRealitiesG1: Capabilities = {\n modelName: \"Even Realities G1\",\n\n // Camera capabilities - G1 does not have a camera\n hasCamera: false,\n camera: null,\n\n // Display capabilities - G1 has a green monochrome display\n hasDisplay: true,\n display: {\n count: 2,\n isColor: false,\n color: \"green\",\n canDisplayBitmap: false, // broken in practice — capability stops lying (design doc §3.4.8)\n resolution: { width: 640, height: 200 },\n fieldOfView: { horizontal: 25 },\n maxTextLines: 5,\n adjustBrightness: true,\n\n // Scene display API — no positioned elements; scenes degrade to text walls.\n canPosition: false,\n maxImageElements: 0,\n },\n\n // Microphone capabilities - G1 has one microphone without VAD\n hasMicrophone: true,\n microphone: {\n count: 1,\n hasVAD: false,\n },\n\n // Speaker capabilities - G1 does not have a speaker\n hasSpeaker: false,\n speaker: null,\n\n // IMU capabilities - G1 has IMU for head-up/down detection but raw data not exposed to apps\n hasIMU: true,\n imu: null,\n\n // Button capabilities - G1 does not have buttons\n hasButton: false,\n button: null,\n\n // Light capabilities - G1 does not have lights\n hasLight: false,\n light: null,\n\n // Power capabilities - G1 does not have external battery\n power: {\n hasExternalBattery: false,\n },\n\n // WiFi capabilities - G1 does not support WiFi\n hasWifi: false,\n\n // OTA capabilities - G1 firmware updates are not driven by the ASG OTA flow\n hasOta: false,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"even-realities-g2.d.ts","sourceRoot":"","sources":["../../../src/types/capabilities/even-realities-g2.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,YA2E7B,CAAC"}
1
+ {"version":3,"file":"even-realities-g2.d.ts","sourceRoot":"","sources":["../../../src/types/capabilities/even-realities-g2.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,YA8E7B,CAAC"}
@@ -68,6 +68,8 @@ export const evenRealitiesG2 = {
68
68
  },
69
69
  // WiFi capabilities - G2 does not support WiFi
70
70
  hasWifi: false,
71
+ // OTA capabilities - G2 firmware updates are not driven by the ASG OTA flow
72
+ hasOta: false,
71
73
  // Dashboard - G2 renders Even Realities' native dashboard in firmware, so
72
74
  // MentraOS does not manage the dashboard or expose dashboard settings for it
73
75
  hasNativeDashboard: true,
@@ -1 +1 @@
1
- {"version":3,"file":"even-realities-g2.js","sourceRoot":"","sources":["../../../src/types/capabilities/even-realities-g2.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAiB;IAC3C,SAAS,EAAE,mBAAmB;IAE9B,kDAAkD;IAClD,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,2EAA2E;IAC3E,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACvC,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;QAEtB,mDAAmD;QACnD,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,CAAC,EAAE,gDAAgD;QACpE,gBAAgB,EAAE,CAAC,EAAE,gCAAgC;QACrD,sEAAsE;QACtE,2EAA2E;QAC3E,2EAA2E;QAC3E,+BAA+B;QAC/B,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,kCAAkC;QACpD,eAAe,EAAE,CAAC;QAClB,aAAa,EAAE,IAAI;KACpB;IAED,0EAA0E;IAC1E,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;KACd;IAED,oDAAoD;IACpD,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,IAAI;IAEb,gCAAgC;IAChC,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,IAAI;IAET,qDAAqD;IACrD,SAAS,EAAE,IAAI;IACf,MAAM,EAAE;QACN,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;gBACR,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC;gBACnF,YAAY,EAAE,IAAI;aACnB,CAAC;KACH;IAED,+CAA+C;IAC/C,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;IAEX,qBAAqB;IACrB,KAAK,EAAE;QACL,kBAAkB,EAAE,KAAK;KAC1B;IAED,+CAA+C;IAC/C,OAAO,EAAE,KAAK;IAEd,0EAA0E;IAC1E,6EAA6E;IAC7E,kBAAkB,EAAE,IAAI;CACzB,CAAC","sourcesContent":["/**\n * @fileoverview Even Realities G2 Hardware Capabilities\n *\n * Capability profile for the Even Realities G2 smart glasses model.\n * G2 uses the EvenHub protocol with protobuf-based commands.\n */\n\nimport type { Capabilities } from \"../hardware\";\n\n/**\n * Even Realities G2 capability profile\n */\nexport const evenRealitiesG2: Capabilities = {\n modelName: \"Even Realities G2\",\n\n // Camera capabilities - G2 does not have a camera\n hasCamera: false,\n camera: null,\n\n // Display capabilities - G2 has a green monochrome display (similar to G1)\n hasDisplay: true,\n display: {\n count: 2,\n isColor: false,\n color: \"green\",\n canDisplayBitmap: true,\n resolution: { width: 640, height: 200 },\n fieldOfView: { horizontal: 25 },\n maxTextLines: 8,\n adjustBrightness: true,\n\n // Scene display API — EvenHub retained containers.\n width: 576,\n height: 288,\n canPosition: true,\n maxTextElements: 6, // firmware text-container pool (rects share it)\n maxImageElements: 4, // firmware image-container pool\n // No maxImagePx: the SGC tiles larger images across multiple firmware\n // containers (each ≤200x100 — the hardware-verified per-container transfer\n // envelope). Pathological sizes needing more than the 4-container pool are\n // dropped SGC-side with a log.\n shapes: [\"rect\"], // bordered empty container ≈ rect\n intensityLevels: 2,\n partialUpdate: true,\n },\n\n // Microphone capabilities - G2 has one microphone (right side), LC3 codec\n hasMicrophone: true,\n microphone: {\n count: 1,\n hasVAD: false,\n },\n\n // Speaker capabilities - G2 does not have a speaker\n hasSpeaker: false,\n speaker: null,\n\n // IMU capabilities - G2 has IMU\n hasIMU: true,\n imu: null,\n\n // Button capabilities - G2 has a capacitive touchbar\n hasButton: true,\n button: {\n count: 1,\n buttons: [{\n type: \"swipe1d\",\n events: [\"TAP\", \"DOUBLE_TAP\", \"TRIPLE_TAP\", \"PRESS_HOLD\", \"SWIPE_UP\", \"SWIPE_DOWN\"],\n isCapacitive: true,\n }],\n },\n\n // Light capabilities - G2 does not have lights\n hasLight: false,\n light: null,\n\n // Power capabilities\n power: {\n hasExternalBattery: false,\n },\n\n // WiFi capabilities - G2 does not support WiFi\n hasWifi: false,\n\n // Dashboard - G2 renders Even Realities' native dashboard in firmware, so\n // MentraOS does not manage the dashboard or expose dashboard settings for it\n hasNativeDashboard: true,\n};\n"]}
1
+ {"version":3,"file":"even-realities-g2.js","sourceRoot":"","sources":["../../../src/types/capabilities/even-realities-g2.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAiB;IAC3C,SAAS,EAAE,mBAAmB;IAE9B,kDAAkD;IAClD,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,2EAA2E;IAC3E,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACvC,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;QAEtB,mDAAmD;QACnD,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,CAAC,EAAE,gDAAgD;QACpE,gBAAgB,EAAE,CAAC,EAAE,gCAAgC;QACrD,sEAAsE;QACtE,2EAA2E;QAC3E,2EAA2E;QAC3E,+BAA+B;QAC/B,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,kCAAkC;QACpD,eAAe,EAAE,CAAC;QAClB,aAAa,EAAE,IAAI;KACpB;IAED,0EAA0E;IAC1E,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;KACd;IAED,oDAAoD;IACpD,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,IAAI;IAEb,gCAAgC;IAChC,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,IAAI;IAET,qDAAqD;IACrD,SAAS,EAAE,IAAI;IACf,MAAM,EAAE;QACN,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;gBACR,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC;gBACnF,YAAY,EAAE,IAAI;aACnB,CAAC;KACH;IAED,+CAA+C;IAC/C,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;IAEX,qBAAqB;IACrB,KAAK,EAAE;QACL,kBAAkB,EAAE,KAAK;KAC1B;IAED,+CAA+C;IAC/C,OAAO,EAAE,KAAK;IAEd,4EAA4E;IAC5E,MAAM,EAAE,KAAK;IAEb,0EAA0E;IAC1E,6EAA6E;IAC7E,kBAAkB,EAAE,IAAI;CACzB,CAAC","sourcesContent":["/**\n * @fileoverview Even Realities G2 Hardware Capabilities\n *\n * Capability profile for the Even Realities G2 smart glasses model.\n * G2 uses the EvenHub protocol with protobuf-based commands.\n */\n\nimport type { Capabilities } from \"../hardware\";\n\n/**\n * Even Realities G2 capability profile\n */\nexport const evenRealitiesG2: Capabilities = {\n modelName: \"Even Realities G2\",\n\n // Camera capabilities - G2 does not have a camera\n hasCamera: false,\n camera: null,\n\n // Display capabilities - G2 has a green monochrome display (similar to G1)\n hasDisplay: true,\n display: {\n count: 2,\n isColor: false,\n color: \"green\",\n canDisplayBitmap: true,\n resolution: { width: 640, height: 200 },\n fieldOfView: { horizontal: 25 },\n maxTextLines: 8,\n adjustBrightness: true,\n\n // Scene display API — EvenHub retained containers.\n width: 576,\n height: 288,\n canPosition: true,\n maxTextElements: 6, // firmware text-container pool (rects share it)\n maxImageElements: 4, // firmware image-container pool\n // No maxImagePx: the SGC tiles larger images across multiple firmware\n // containers (each ≤200x100 — the hardware-verified per-container transfer\n // envelope). Pathological sizes needing more than the 4-container pool are\n // dropped SGC-side with a log.\n shapes: [\"rect\"], // bordered empty container ≈ rect\n intensityLevels: 2,\n partialUpdate: true,\n },\n\n // Microphone capabilities - G2 has one microphone (right side), LC3 codec\n hasMicrophone: true,\n microphone: {\n count: 1,\n hasVAD: false,\n },\n\n // Speaker capabilities - G2 does not have a speaker\n hasSpeaker: false,\n speaker: null,\n\n // IMU capabilities - G2 has IMU\n hasIMU: true,\n imu: null,\n\n // Button capabilities - G2 has a capacitive touchbar\n hasButton: true,\n button: {\n count: 1,\n buttons: [{\n type: \"swipe1d\",\n events: [\"TAP\", \"DOUBLE_TAP\", \"TRIPLE_TAP\", \"PRESS_HOLD\", \"SWIPE_UP\", \"SWIPE_DOWN\"],\n isCapacitive: true,\n }],\n },\n\n // Light capabilities - G2 does not have lights\n hasLight: false,\n light: null,\n\n // Power capabilities\n power: {\n hasExternalBattery: false,\n },\n\n // WiFi capabilities - G2 does not support WiFi\n hasWifi: false,\n\n // OTA capabilities - G2 firmware updates are not driven by the ASG OTA flow\n hasOta: false,\n\n // Dashboard - G2 renders Even Realities' native dashboard in firmware, so\n // MentraOS does not manage the dashboard or expose dashboard settings for it\n hasNativeDashboard: true,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mentra-display.d.ts","sourceRoot":"","sources":["../../../src/types/capabilities/mentra-display.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,YA8D3B,CAAC"}
1
+ {"version":3,"file":"mentra-display.d.ts","sourceRoot":"","sources":["../../../src/types/capabilities/mentra-display.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,YAiE3B,CAAC"}
@@ -59,5 +59,7 @@ export const mentraDisplay = {
59
59
  },
60
60
  // WiFi capabilities - Mentra Display does not support WiFi
61
61
  hasWifi: false,
62
+ // OTA capabilities - Mentra Display firmware updates are not driven by the ASG OTA flow
63
+ hasOta: false,
62
64
  };
63
65
  //# sourceMappingURL=mentra-display.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mentra-display.js","sourceRoot":"","sources":["../../../src/types/capabilities/mentra-display.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,SAAS,EAAE,gBAAgB;IAE3B,8DAA8D;IAC9D,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,uEAAuE;IACvE,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACvC,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;QAEtB,wEAAwE;QACxE,mEAAmE;QACnE,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,CAAC,EAAE,iDAAiD;QACrE,gBAAgB,EAAE,CAAC,EAAE,iCAAiC;QACtD,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,gDAAgD;QACzF,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,qDAAqD;QACvE,eAAe,EAAE,CAAC,EAAE,oBAAoB;QACxC,aAAa,EAAE,IAAI;KACpB;IAED,0EAA0E;IAC1E,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;KACd;IAED,gEAAgE;IAChE,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,IAAI;IAEb,wGAAwG;IACxG,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,IAAI;IAET,6DAA6D;IAC7D,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,2DAA2D;IAC3D,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;IAEX,qEAAqE;IACrE,KAAK,EAAE;QACL,kBAAkB,EAAE,KAAK;KAC1B;IAED,2DAA2D;IAC3D,OAAO,EAAE,KAAK;CACf,CAAC","sourcesContent":["/**\n * @fileoverview Mentra Display Hardware Capabilities\n *\n * Capability profile for the Mentra Display smart glasses model.\n * Defines the hardware and software features available on this device.\n */\n\nimport type { Capabilities } from \"../hardware\";\n\n/**\n * Mentra Display capability profile\n */\nexport const mentraDisplay: Capabilities = {\n modelName: \"Mentra Display\",\n\n // Camera capabilities - Mentra Display does not have a camera\n hasCamera: false,\n camera: null,\n\n // Display capabilities - Mentra Display has a green monochrome display\n hasDisplay: true,\n display: {\n count: 2,\n isColor: false,\n color: \"green\",\n canDisplayBitmap: true,\n resolution: { width: 640, height: 480 },\n fieldOfView: { horizontal: 25 },\n maxTextLines: 5,\n adjustBrightness: true,\n\n // Scene display API — firmware canvas components on the 500x220 virtual\n // screen centered in the 640x480 A6N panel (mos_display_config.c).\n width: 500,\n height: 220,\n canPosition: true,\n maxTextElements: 6, // firmware TEXTBOX pool ids 1-6 (rects share it)\n maxImageElements: 4, // firmware BITMAP pool ids 10-13\n maxImagePx: { width: 200, height: 200 }, // CANVAS_IMAGE_MAX_I1_BYTES / NAV_IMAGE_MAX_W/H\n shapes: [\"rect\"], // bordered empty TEXTBOX ≈ rect (no shape primitive)\n intensityLevels: 2, // 1-bpp panel today\n partialUpdate: true,\n },\n\n // Microphone capabilities - Mentra Display has one microphone without VAD\n hasMicrophone: true,\n microphone: {\n count: 1,\n hasVAD: false,\n },\n\n // Speaker capabilities - Mentra Display does not have a speaker\n hasSpeaker: false,\n speaker: null,\n\n // IMU capabilities - Mentra Display has IMU for head-up/down detection but raw data not exposed to apps\n hasIMU: true,\n imu: null,\n\n // Button capabilities - Mentra Display does not have buttons\n hasButton: false,\n button: null,\n\n // Light capabilities - Mentra Display does not have lights\n hasLight: false,\n light: null,\n\n // Power capabilities - Mentra Display does not have external battery\n power: {\n hasExternalBattery: false,\n },\n\n // WiFi capabilities - Mentra Display does not support WiFi\n hasWifi: false,\n};\n"]}
1
+ {"version":3,"file":"mentra-display.js","sourceRoot":"","sources":["../../../src/types/capabilities/mentra-display.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,SAAS,EAAE,gBAAgB;IAE3B,8DAA8D;IAC9D,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,uEAAuE;IACvE,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACvC,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;QAEtB,wEAAwE;QACxE,mEAAmE;QACnE,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,IAAI;QACjB,eAAe,EAAE,CAAC,EAAE,iDAAiD;QACrE,gBAAgB,EAAE,CAAC,EAAE,iCAAiC;QACtD,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,gDAAgD;QACzF,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,qDAAqD;QACvE,eAAe,EAAE,CAAC,EAAE,oBAAoB;QACxC,aAAa,EAAE,IAAI;KACpB;IAED,0EAA0E;IAC1E,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;KACd;IAED,gEAAgE;IAChE,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,IAAI;IAEb,wGAAwG;IACxG,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,IAAI;IAET,6DAA6D;IAC7D,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,2DAA2D;IAC3D,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;IAEX,qEAAqE;IACrE,KAAK,EAAE;QACL,kBAAkB,EAAE,KAAK;KAC1B;IAED,2DAA2D;IAC3D,OAAO,EAAE,KAAK;IAEd,wFAAwF;IACxF,MAAM,EAAE,KAAK;CACd,CAAC","sourcesContent":["/**\n * @fileoverview Mentra Display Hardware Capabilities\n *\n * Capability profile for the Mentra Display smart glasses model.\n * Defines the hardware and software features available on this device.\n */\n\nimport type { Capabilities } from \"../hardware\";\n\n/**\n * Mentra Display capability profile\n */\nexport const mentraDisplay: Capabilities = {\n modelName: \"Mentra Display\",\n\n // Camera capabilities - Mentra Display does not have a camera\n hasCamera: false,\n camera: null,\n\n // Display capabilities - Mentra Display has a green monochrome display\n hasDisplay: true,\n display: {\n count: 2,\n isColor: false,\n color: \"green\",\n canDisplayBitmap: true,\n resolution: { width: 640, height: 480 },\n fieldOfView: { horizontal: 25 },\n maxTextLines: 5,\n adjustBrightness: true,\n\n // Scene display API — firmware canvas components on the 500x220 virtual\n // screen centered in the 640x480 A6N panel (mos_display_config.c).\n width: 500,\n height: 220,\n canPosition: true,\n maxTextElements: 6, // firmware TEXTBOX pool ids 1-6 (rects share it)\n maxImageElements: 4, // firmware BITMAP pool ids 10-13\n maxImagePx: { width: 200, height: 200 }, // CANVAS_IMAGE_MAX_I1_BYTES / NAV_IMAGE_MAX_W/H\n shapes: [\"rect\"], // bordered empty TEXTBOX ≈ rect (no shape primitive)\n intensityLevels: 2, // 1-bpp panel today\n partialUpdate: true,\n },\n\n // Microphone capabilities - Mentra Display has one microphone without VAD\n hasMicrophone: true,\n microphone: {\n count: 1,\n hasVAD: false,\n },\n\n // Speaker capabilities - Mentra Display does not have a speaker\n hasSpeaker: false,\n speaker: null,\n\n // IMU capabilities - Mentra Display has IMU for head-up/down detection but raw data not exposed to apps\n hasIMU: true,\n imu: null,\n\n // Button capabilities - Mentra Display does not have buttons\n hasButton: false,\n button: null,\n\n // Light capabilities - Mentra Display does not have lights\n hasLight: false,\n light: null,\n\n // Power capabilities - Mentra Display does not have external battery\n power: {\n hasExternalBattery: false,\n },\n\n // WiFi capabilities - Mentra Display does not support WiFi\n hasWifi: false,\n\n // OTA capabilities - Mentra Display firmware updates are not driven by the ASG OTA flow\n hasOta: false,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mentra-live.d.ts","sourceRoot":"","sources":["../../../src/types/capabilities/mentra-live.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,YA0FxB,CAAC"}
1
+ {"version":3,"file":"mentra-live.d.ts","sourceRoot":"","sources":["../../../src/types/capabilities/mentra-live.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,YA6FxB,CAAC"}
@@ -88,5 +88,7 @@ export const mentraLive = {
88
88
  },
89
89
  // WiFi capabilities - Mentra Live supports WiFi
90
90
  hasWifi: true,
91
+ // OTA capabilities - Mentra Live supports ASG/BES/MTK OTA updates
92
+ hasOta: true,
91
93
  };
92
94
  //# sourceMappingURL=mentra-live.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mentra-live.js","sourceRoot":"","sources":["../../../src/types/capabilities/mentra-live.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAiB;IACtC,SAAS,EAAE,aAAa;IAExB,8DAA8D;IAC9D,SAAS,EAAE,IAAI;IACf,MAAM,EAAE;QACN,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QACzC,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE;YACL,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,oBAAoB,EAAE,CAAC,MAAM,CAAC;YAC9B,oBAAoB,EAAE;gBACpB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;gBAC7B,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;gBAC5B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;aAC5B;SACF;KACF;IAED,6DAA6D;IAC7D,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,IAAI;IAEb,oEAAoE;IACpE,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,IAAI;KACb;IAED,8DAA8D;IAC9D,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,KAAK;KACjB;IAED,gDAAgD;IAChD,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE;QACH,SAAS,EAAE,CAAC;QACZ,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,IAAI;KACnB;IAED,4DAA4D;IAC5D,SAAS,EAAE,IAAI;IACf,MAAM,EAAE;QACN,KAAK,EAAE,CAAC;QACR,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,CAAC;gBAC/C,YAAY,EAAE,KAAK;aACpB;SACF;KACF;IAED,2EAA2E;IAC3E,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE;QACL,KAAK,EAAE,CAAC;QACR,MAAM,EAAE;YACN;gBACE,EAAE,EAAE,SAAS;gBACb,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,KAAK;gBAClB,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,cAAc;aACzB;YACD;gBACE,EAAE,EAAE,eAAe;gBACnB,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,aAAa;aACxB;SACF;KACF;IAED,kEAAkE;IAClE,KAAK,EAAE;QACL,kBAAkB,EAAE,KAAK;KAC1B;IAED,gDAAgD;IAChD,OAAO,EAAE,IAAI;CACd,CAAC","sourcesContent":["/**\n * @fileoverview Mentra Live Hardware Capabilities\n *\n * Capability profile for the Mentra Live smart glasses model.\n * Defines the hardware and software features available on this device.\n */\n\nimport type { Capabilities } from \"../hardware\";\n\n/**\n * Mentra Live capability profile\n */\nexport const mentraLive: Capabilities = {\n modelName: \"Mentra Live\",\n\n // Camera capabilities - Mentra Live has camera with streaming\n hasCamera: true,\n camera: {\n resolution: { width: 1920, height: 1080 },\n hasHDR: false,\n hasFocus: true,\n video: {\n canRecord: true,\n canStream: true,\n supportedStreamTypes: [\"rtmp\"],\n supportedResolutions: [\n { width: 1920, height: 1080 },\n { width: 1280, height: 720 },\n { width: 640, height: 480 },\n ],\n },\n },\n\n // Display capabilities - Mentra Live does not have a display\n hasDisplay: false,\n display: null,\n\n // Microphone capabilities - Mentra Live has one microphone with VAD\n hasMicrophone: true,\n microphone: {\n count: 1,\n hasVAD: true,\n },\n\n // Speaker capabilities - Mentra Live has one standard speaker\n hasSpeaker: true,\n speaker: {\n count: 1,\n isPrivate: false,\n },\n\n // IMU capabilities - Mentra Live has 6-axis IMU\n hasIMU: true,\n imu: {\n axisCount: 6,\n hasAccelerometer: true,\n hasCompass: false,\n hasGyroscope: true,\n },\n\n // Button capabilities - Mentra Live has one physical button\n hasButton: true,\n button: {\n count: 1,\n buttons: [\n {\n type: \"press\",\n events: [\"press\", \"double_press\", \"long_press\"],\n isCapacitive: false,\n },\n ],\n },\n\n // Light capabilities - Mentra Live has two lights: privacy light + RGB LED\n hasLight: true,\n light: {\n count: 2,\n lights: [\n {\n id: \"privacy\",\n purpose: \"privacy\",\n isFullColor: false,\n color: \"white\",\n position: \"front_facing\",\n },\n {\n id: \"user_feedback\",\n purpose: \"user_feedback\",\n isFullColor: true,\n color: \"rgb\",\n position: \"user_facing\",\n },\n ],\n },\n\n // Power capabilities - Mentra Live does not have external battery\n power: {\n hasExternalBattery: false,\n },\n\n // WiFi capabilities - Mentra Live supports WiFi\n hasWifi: true,\n};\n"]}
1
+ {"version":3,"file":"mentra-live.js","sourceRoot":"","sources":["../../../src/types/capabilities/mentra-live.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAiB;IACtC,SAAS,EAAE,aAAa;IAExB,8DAA8D;IAC9D,SAAS,EAAE,IAAI;IACf,MAAM,EAAE;QACN,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QACzC,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE;YACL,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,oBAAoB,EAAE,CAAC,MAAM,CAAC;YAC9B,oBAAoB,EAAE;gBACpB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;gBAC7B,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;gBAC5B,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;aAC5B;SACF;KACF;IAED,6DAA6D;IAC7D,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,IAAI;IAEb,oEAAoE;IACpE,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,IAAI;KACb;IAED,8DAA8D;IAC9D,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,KAAK;KACjB;IAED,gDAAgD;IAChD,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE;QACH,SAAS,EAAE,CAAC;QACZ,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,IAAI;KACnB;IAED,4DAA4D;IAC5D,SAAS,EAAE,IAAI;IACf,MAAM,EAAE;QACN,KAAK,EAAE,CAAC;QACR,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,CAAC;gBAC/C,YAAY,EAAE,KAAK;aACpB;SACF;KACF;IAED,2EAA2E;IAC3E,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE;QACL,KAAK,EAAE,CAAC;QACR,MAAM,EAAE;YACN;gBACE,EAAE,EAAE,SAAS;gBACb,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,KAAK;gBAClB,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,cAAc;aACzB;YACD;gBACE,EAAE,EAAE,eAAe;gBACnB,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,aAAa;aACxB;SACF;KACF;IAED,kEAAkE;IAClE,KAAK,EAAE;QACL,kBAAkB,EAAE,KAAK;KAC1B;IAED,gDAAgD;IAChD,OAAO,EAAE,IAAI;IAEb,kEAAkE;IAClE,MAAM,EAAE,IAAI;CACb,CAAC","sourcesContent":["/**\n * @fileoverview Mentra Live Hardware Capabilities\n *\n * Capability profile for the Mentra Live smart glasses model.\n * Defines the hardware and software features available on this device.\n */\n\nimport type { Capabilities } from \"../hardware\";\n\n/**\n * Mentra Live capability profile\n */\nexport const mentraLive: Capabilities = {\n modelName: \"Mentra Live\",\n\n // Camera capabilities - Mentra Live has camera with streaming\n hasCamera: true,\n camera: {\n resolution: { width: 1920, height: 1080 },\n hasHDR: false,\n hasFocus: true,\n video: {\n canRecord: true,\n canStream: true,\n supportedStreamTypes: [\"rtmp\"],\n supportedResolutions: [\n { width: 1920, height: 1080 },\n { width: 1280, height: 720 },\n { width: 640, height: 480 },\n ],\n },\n },\n\n // Display capabilities - Mentra Live does not have a display\n hasDisplay: false,\n display: null,\n\n // Microphone capabilities - Mentra Live has one microphone with VAD\n hasMicrophone: true,\n microphone: {\n count: 1,\n hasVAD: true,\n },\n\n // Speaker capabilities - Mentra Live has one standard speaker\n hasSpeaker: true,\n speaker: {\n count: 1,\n isPrivate: false,\n },\n\n // IMU capabilities - Mentra Live has 6-axis IMU\n hasIMU: true,\n imu: {\n axisCount: 6,\n hasAccelerometer: true,\n hasCompass: false,\n hasGyroscope: true,\n },\n\n // Button capabilities - Mentra Live has one physical button\n hasButton: true,\n button: {\n count: 1,\n buttons: [\n {\n type: \"press\",\n events: [\"press\", \"double_press\", \"long_press\"],\n isCapacitive: false,\n },\n ],\n },\n\n // Light capabilities - Mentra Live has two lights: privacy light + RGB LED\n hasLight: true,\n light: {\n count: 2,\n lights: [\n {\n id: \"privacy\",\n purpose: \"privacy\",\n isFullColor: false,\n color: \"white\",\n position: \"front_facing\",\n },\n {\n id: \"user_feedback\",\n purpose: \"user_feedback\",\n isFullColor: true,\n color: \"rgb\",\n position: \"user_facing\",\n },\n ],\n },\n\n // Power capabilities - Mentra Live does not have external battery\n power: {\n hasExternalBattery: false,\n },\n\n // WiFi capabilities - Mentra Live supports WiFi\n hasWifi: true,\n\n // OTA capabilities - Mentra Live supports ASG/BES/MTK OTA updates\n hasOta: true,\n};\n"]}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @fileoverview NIMO hardware capabilities.
3
+ *
4
+ * NIMO uses framed UART-over-BLE for widget content and a separate Opus
5
+ * microphone channel.
6
+ */
7
+ import type { Capabilities } from "../hardware";
8
+ export declare const nimo: Capabilities;
9
+ //# sourceMappingURL=nimo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nimo.d.ts","sourceRoot":"","sources":["../../../src/types/capabilities/nimo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAA;AAE7C,eAAO,MAAM,IAAI,EAAE,YAiDlB,CAAA"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @fileoverview NIMO hardware capabilities.
3
+ *
4
+ * NIMO uses framed UART-over-BLE for widget content and a separate Opus
5
+ * microphone channel.
6
+ */
7
+ export const nimo = {
8
+ modelName: "NIMO",
9
+ hasCamera: false,
10
+ camera: null,
11
+ hasDisplay: true,
12
+ display: {
13
+ count: 2,
14
+ isColor: false,
15
+ color: "green",
16
+ canDisplayBitmap: true,
17
+ // Bitmaps render into the 160x160 2bpp navigation widget. The resolution
18
+ // below remains the existing text-display placeholder until hardware
19
+ // screen information is available.
20
+ resolution: { width: 640, height: 400 },
21
+ maxTextLines: 5,
22
+ adjustBrightness: true,
23
+ },
24
+ hasMicrophone: true,
25
+ microphone: {
26
+ count: 2,
27
+ hasVAD: false,
28
+ },
29
+ hasSpeaker: false,
30
+ speaker: null,
31
+ hasIMU: true,
32
+ imu: null,
33
+ hasButton: true,
34
+ button: {
35
+ count: 2,
36
+ buttons: [
37
+ {
38
+ type: "press",
39
+ events: ["press", "double_press", "long_press"],
40
+ isCapacitive: true,
41
+ },
42
+ {
43
+ type: "press",
44
+ events: ["press", "double_press", "long_press"],
45
+ isCapacitive: true,
46
+ },
47
+ ],
48
+ },
49
+ hasLight: false,
50
+ light: null,
51
+ power: {
52
+ hasExternalBattery: false,
53
+ },
54
+ hasWifi: false,
55
+ hasOta: false,
56
+ };
57
+ //# sourceMappingURL=nimo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nimo.js","sourceRoot":"","sources":["../../../src/types/capabilities/nimo.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,IAAI,GAAiB;IAChC,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE,IAAI;QACtB,yEAAyE;QACzE,qEAAqE;QACrE,mCAAmC;QACnC,UAAU,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC;QACrC,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;KACvB;IACD,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;KACd;IACD,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,IAAI;IACT,SAAS,EAAE,IAAI;IACf,MAAM,EAAE;QACN,KAAK,EAAE,CAAC;QACR,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,CAAC;gBAC/C,YAAY,EAAE,IAAI;aACnB;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,CAAC;gBAC/C,YAAY,EAAE,IAAI;aACnB;SACF;KACF;IACD,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;IACX,KAAK,EAAE;QACL,kBAAkB,EAAE,KAAK;KAC1B;IACD,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,KAAK;CACd,CAAA","sourcesContent":["/**\n * @fileoverview NIMO hardware capabilities.\n *\n * NIMO uses framed UART-over-BLE for widget content and a separate Opus\n * microphone channel.\n */\n\nimport type {Capabilities} from \"../hardware\"\n\nexport const nimo: Capabilities = {\n modelName: \"NIMO\",\n hasCamera: false,\n camera: null,\n hasDisplay: true,\n display: {\n count: 2,\n isColor: false,\n color: \"green\",\n canDisplayBitmap: true,\n // Bitmaps render into the 160x160 2bpp navigation widget. The resolution\n // below remains the existing text-display placeholder until hardware\n // screen information is available.\n resolution: {width: 640, height: 400},\n maxTextLines: 5,\n adjustBrightness: true,\n },\n hasMicrophone: true,\n microphone: {\n count: 2,\n hasVAD: false,\n },\n hasSpeaker: false,\n speaker: null,\n hasIMU: true,\n imu: null,\n hasButton: true,\n button: {\n count: 2,\n buttons: [\n {\n type: \"press\",\n events: [\"press\", \"double_press\", \"long_press\"],\n isCapacitive: true,\n },\n {\n type: \"press\",\n events: [\"press\", \"double_press\", \"long_press\"],\n isCapacitive: true,\n },\n ],\n },\n hasLight: false,\n light: null,\n power: {\n hasExternalBattery: false,\n },\n hasWifi: false,\n hasOta: false,\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"none.d.ts","sourceRoot":"","sources":["../../../src/types/capabilities/none.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,YA8DlB,CAAC"}
1
+ {"version":3,"file":"none.d.ts","sourceRoot":"","sources":["../../../src/types/capabilities/none.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,YAiElB,CAAC"}
@@ -61,5 +61,7 @@ export const none = {
61
61
  },
62
62
  // WiFi capabilities - does not support WiFi
63
63
  hasWifi: false,
64
+ // OTA capabilities - none profile does not support OTA
65
+ hasOta: false,
64
66
  };
65
67
  //# sourceMappingURL=none.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"none.js","sourceRoot":"","sources":["../../../src/types/capabilities/none.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAiB;IAChC,SAAS,EAAE,MAAM;IAEjB,+CAA+C;IAC/C,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,wDAAwD;IACxD,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE,KAAK;QACvB,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACvC,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;KACvB;IAED,yDAAyD;IACzD,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;KACd;IAED,uDAAuD;IACvD,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,KAAK;KACjB;IAED,0CAA0C;IAC1C,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,IAAI;IAET,iDAAiD;IACjD,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE;QACN,KAAK,EAAE,CAAC;QACR,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,CAAC,OAAO,CAAC;gBACjB,YAAY,EAAE,KAAK;aACpB;SACF;KACF;IAED,4CAA4C;IAC5C,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;IAEX,sDAAsD;IACtD,KAAK,EAAE;QACL,kBAAkB,EAAE,KAAK;KAC1B;IAED,4CAA4C;IAC5C,OAAO,EAAE,KAAK;CACf,CAAC","sourcesContent":["/**\n * @fileoverview Simulated Glasses Hardware Capabilities\n *\n * Capability profile for the Simulated Glasses model.\n * Defines the hardware and software features available on this device.\n * This profile matches the Vuzix Z100 capabilities for testing purposes.\n */\n\nimport type { Capabilities } from \"../hardware\";\n\n/**\n * Simulated Glasses capability profile\n */\nexport const none: Capabilities = {\n modelName: \"None\",\n\n // Camera capabilities - does not have a camera\n hasCamera: false,\n camera: null,\n\n // Display capabilities - has a green monochrome display\n hasDisplay: false,\n display: {\n count: 1,\n isColor: false,\n color: \"green\",\n canDisplayBitmap: false,\n resolution: { width: 640, height: 480 },\n fieldOfView: { horizontal: 30 },\n maxTextLines: 7,\n adjustBrightness: true,\n },\n\n // Microphone capabilities - has a microphone (phone mic)\n hasMicrophone: false,\n microphone: {\n count: 1,\n hasVAD: false,\n },\n\n // Speaker capabilities - has a speaker (phone speaker)\n hasSpeaker: false,\n speaker: {\n count: 1,\n isPrivate: false,\n },\n\n // IMU capabilities - does not have an IMU\n hasIMU: false,\n imu: null,\n\n // Button capabilities - Has one simulated button\n hasButton: false,\n button: {\n count: 1,\n buttons: [\n {\n type: \"press\",\n events: [\"press\"],\n isCapacitive: false,\n },\n ],\n },\n\n // Light capabilities - does not have lights\n hasLight: false,\n light: null,\n\n // Power capabilities - does not have external battery\n power: {\n hasExternalBattery: false,\n },\n\n // WiFi capabilities - does not support WiFi\n hasWifi: false,\n};\n"]}
1
+ {"version":3,"file":"none.js","sourceRoot":"","sources":["../../../src/types/capabilities/none.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAiB;IAChC,SAAS,EAAE,MAAM;IAEjB,+CAA+C;IAC/C,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,wDAAwD;IACxD,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE,KAAK;QACvB,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACvC,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;KACvB;IAED,yDAAyD;IACzD,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;KACd;IAED,uDAAuD;IACvD,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,KAAK;KACjB;IAED,0CAA0C;IAC1C,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,IAAI;IAET,iDAAiD;IACjD,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE;QACN,KAAK,EAAE,CAAC;QACR,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,CAAC,OAAO,CAAC;gBACjB,YAAY,EAAE,KAAK;aACpB;SACF;KACF;IAED,4CAA4C;IAC5C,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;IAEX,sDAAsD;IACtD,KAAK,EAAE;QACL,kBAAkB,EAAE,KAAK;KAC1B;IAED,4CAA4C;IAC5C,OAAO,EAAE,KAAK;IAEd,uDAAuD;IACvD,MAAM,EAAE,KAAK;CACd,CAAC","sourcesContent":["/**\n * @fileoverview Simulated Glasses Hardware Capabilities\n *\n * Capability profile for the Simulated Glasses model.\n * Defines the hardware and software features available on this device.\n * This profile matches the Vuzix Z100 capabilities for testing purposes.\n */\n\nimport type { Capabilities } from \"../hardware\";\n\n/**\n * Simulated Glasses capability profile\n */\nexport const none: Capabilities = {\n modelName: \"None\",\n\n // Camera capabilities - does not have a camera\n hasCamera: false,\n camera: null,\n\n // Display capabilities - has a green monochrome display\n hasDisplay: false,\n display: {\n count: 1,\n isColor: false,\n color: \"green\",\n canDisplayBitmap: false,\n resolution: { width: 640, height: 480 },\n fieldOfView: { horizontal: 30 },\n maxTextLines: 7,\n adjustBrightness: true,\n },\n\n // Microphone capabilities - has a microphone (phone mic)\n hasMicrophone: false,\n microphone: {\n count: 1,\n hasVAD: false,\n },\n\n // Speaker capabilities - has a speaker (phone speaker)\n hasSpeaker: false,\n speaker: {\n count: 1,\n isPrivate: false,\n },\n\n // IMU capabilities - does not have an IMU\n hasIMU: false,\n imu: null,\n\n // Button capabilities - Has one simulated button\n hasButton: false,\n button: {\n count: 1,\n buttons: [\n {\n type: \"press\",\n events: [\"press\"],\n isCapacitive: false,\n },\n ],\n },\n\n // Light capabilities - does not have lights\n hasLight: false,\n light: null,\n\n // Power capabilities - does not have external battery\n power: {\n hasExternalBattery: false,\n },\n\n // WiFi capabilities - does not support WiFi\n hasWifi: false,\n\n // OTA capabilities - none profile does not support OTA\n hasOta: false,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"simulated-glasses.d.ts","sourceRoot":"","sources":["../../../src/types/capabilities/simulated-glasses.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,YA8D9B,CAAC"}
1
+ {"version":3,"file":"simulated-glasses.d.ts","sourceRoot":"","sources":["../../../src/types/capabilities/simulated-glasses.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,YAiE9B,CAAC"}
@@ -61,5 +61,7 @@ export const simulatedGlasses = {
61
61
  },
62
62
  // WiFi capabilities - does not support WiFi
63
63
  hasWifi: false,
64
+ // OTA capabilities - simulated glasses do not support OTA
65
+ hasOta: false,
64
66
  };
65
67
  //# sourceMappingURL=simulated-glasses.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"simulated-glasses.js","sourceRoot":"","sources":["../../../src/types/capabilities/simulated-glasses.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAiB;IAC5C,SAAS,EAAE,mBAAmB;IAE9B,+CAA+C;IAC/C,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,wDAAwD;IACxD,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE,KAAK;QACvB,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACvC,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;KACvB;IAED,yDAAyD;IACzD,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;KACd;IAED,uDAAuD;IACvD,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,KAAK;KACjB;IAED,0CAA0C;IAC1C,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,IAAI;IAET,iDAAiD;IACjD,SAAS,EAAE,IAAI;IACf,MAAM,EAAE;QACN,KAAK,EAAE,CAAC;QACR,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,CAAC,OAAO,CAAC;gBACjB,YAAY,EAAE,KAAK;aACpB;SACF;KACF;IAED,4CAA4C;IAC5C,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;IAEX,sDAAsD;IACtD,KAAK,EAAE;QACL,kBAAkB,EAAE,KAAK;KAC1B;IAED,4CAA4C;IAC5C,OAAO,EAAE,KAAK;CACf,CAAC","sourcesContent":["/**\n * @fileoverview Simulated Glasses Hardware Capabilities\n *\n * Capability profile for the Simulated Glasses model.\n * Defines the hardware and software features available on this device.\n * This profile matches the Vuzix Z100 capabilities for testing purposes.\n */\n\nimport type { Capabilities } from \"../hardware\";\n\n/**\n * Simulated Glasses capability profile\n */\nexport const simulatedGlasses: Capabilities = {\n modelName: \"Simulated Glasses\",\n\n // Camera capabilities - does not have a camera\n hasCamera: false,\n camera: null,\n\n // Display capabilities - has a green monochrome display\n hasDisplay: true,\n display: {\n count: 1,\n isColor: false,\n color: \"green\",\n canDisplayBitmap: false,\n resolution: { width: 640, height: 480 },\n fieldOfView: { horizontal: 30 },\n maxTextLines: 7,\n adjustBrightness: true,\n },\n\n // Microphone capabilities - has a microphone (phone mic)\n hasMicrophone: true,\n microphone: {\n count: 1,\n hasVAD: false,\n },\n\n // Speaker capabilities - has a speaker (phone speaker)\n hasSpeaker: true,\n speaker: {\n count: 1,\n isPrivate: false,\n },\n\n // IMU capabilities - does not have an IMU\n hasIMU: false,\n imu: null,\n\n // Button capabilities - Has one simulated button\n hasButton: true,\n button: {\n count: 1,\n buttons: [\n {\n type: \"press\",\n events: [\"press\"],\n isCapacitive: false,\n },\n ],\n },\n\n // Light capabilities - does not have lights\n hasLight: false,\n light: null,\n\n // Power capabilities - does not have external battery\n power: {\n hasExternalBattery: false,\n },\n\n // WiFi capabilities - does not support WiFi\n hasWifi: false,\n};\n"]}
1
+ {"version":3,"file":"simulated-glasses.js","sourceRoot":"","sources":["../../../src/types/capabilities/simulated-glasses.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAiB;IAC5C,SAAS,EAAE,mBAAmB;IAE9B,+CAA+C;IAC/C,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,wDAAwD;IACxD,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE,KAAK;QACvB,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACvC,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;KACvB;IAED,yDAAyD;IACzD,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,KAAK;KACd;IAED,uDAAuD;IACvD,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,KAAK;KACjB;IAED,0CAA0C;IAC1C,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,IAAI;IAET,iDAAiD;IACjD,SAAS,EAAE,IAAI;IACf,MAAM,EAAE;QACN,KAAK,EAAE,CAAC;QACR,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,CAAC,OAAO,CAAC;gBACjB,YAAY,EAAE,KAAK;aACpB;SACF;KACF;IAED,4CAA4C;IAC5C,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;IAEX,sDAAsD;IACtD,KAAK,EAAE;QACL,kBAAkB,EAAE,KAAK;KAC1B;IAED,4CAA4C;IAC5C,OAAO,EAAE,KAAK;IAEd,0DAA0D;IAC1D,MAAM,EAAE,KAAK;CACd,CAAC","sourcesContent":["/**\n * @fileoverview Simulated Glasses Hardware Capabilities\n *\n * Capability profile for the Simulated Glasses model.\n * Defines the hardware and software features available on this device.\n * This profile matches the Vuzix Z100 capabilities for testing purposes.\n */\n\nimport type { Capabilities } from \"../hardware\";\n\n/**\n * Simulated Glasses capability profile\n */\nexport const simulatedGlasses: Capabilities = {\n modelName: \"Simulated Glasses\",\n\n // Camera capabilities - does not have a camera\n hasCamera: false,\n camera: null,\n\n // Display capabilities - has a green monochrome display\n hasDisplay: true,\n display: {\n count: 1,\n isColor: false,\n color: \"green\",\n canDisplayBitmap: false,\n resolution: { width: 640, height: 480 },\n fieldOfView: { horizontal: 30 },\n maxTextLines: 7,\n adjustBrightness: true,\n },\n\n // Microphone capabilities - has a microphone (phone mic)\n hasMicrophone: true,\n microphone: {\n count: 1,\n hasVAD: false,\n },\n\n // Speaker capabilities - has a speaker (phone speaker)\n hasSpeaker: true,\n speaker: {\n count: 1,\n isPrivate: false,\n },\n\n // IMU capabilities - does not have an IMU\n hasIMU: false,\n imu: null,\n\n // Button capabilities - Has one simulated button\n hasButton: true,\n button: {\n count: 1,\n buttons: [\n {\n type: \"press\",\n events: [\"press\"],\n isCapacitive: false,\n },\n ],\n },\n\n // Light capabilities - does not have lights\n hasLight: false,\n light: null,\n\n // Power capabilities - does not have external battery\n power: {\n hasExternalBattery: false,\n },\n\n // WiFi capabilities - does not support WiFi\n hasWifi: false,\n\n // OTA capabilities - simulated glasses do not support OTA\n hasOta: false,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vuzix-z100.d.ts","sourceRoot":"","sources":["../../../src/types/capabilities/vuzix-z100.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,YAmDvB,CAAC"}
1
+ {"version":3,"file":"vuzix-z100.d.ts","sourceRoot":"","sources":["../../../src/types/capabilities/vuzix-z100.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,YAsDvB,CAAC"}
@@ -48,5 +48,7 @@ export const vuzixZ100 = {
48
48
  },
49
49
  // WiFi capabilities - does not support WiFi
50
50
  hasWifi: false,
51
+ // OTA capabilities - Z100 firmware updates are not driven by the ASG OTA flow
52
+ hasOta: false,
51
53
  };
52
54
  //# sourceMappingURL=vuzix-z100.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vuzix-z100.js","sourceRoot":"","sources":["../../../src/types/capabilities/vuzix-z100.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAiB;IACrC,SAAS,EAAE,YAAY;IAEvB,+CAA+C;IAC/C,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,wDAAwD;IACxD,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE,KAAK;QACvB,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACvC,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;QAEtB,4EAA4E;QAC5E,WAAW,EAAE,KAAK;QAClB,gBAAgB,EAAE,CAAC;KACpB;IAED,uDAAuD;IACvD,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,IAAI;IAEhB,iDAAiD;IACjD,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,IAAI;IAEb,0CAA0C;IAC1C,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,IAAI;IAET,8CAA8C;IAC9C,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,4CAA4C;IAC5C,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;IAEX,sDAAsD;IACtD,KAAK,EAAE;QACL,kBAAkB,EAAE,KAAK;KAC1B;IAED,4CAA4C;IAC5C,OAAO,EAAE,KAAK;CACf,CAAC","sourcesContent":["/**\n * @fileoverview Vuzix Z100 Hardware Capabilities\n *\n * Capability profile for the Vuzix Z100 smart glasses model.\n * Defines the hardware and software features available on this device.\n */\n\nimport type { Capabilities } from \"../hardware\";\n\n/**\n * Vuzix Z100 capability profile\n */\nexport const vuzixZ100: Capabilities = {\n modelName: \"Vuzix Z100\",\n\n // Camera capabilities - does not have a camera\n hasCamera: false,\n camera: null,\n\n // Display capabilities - has a green monochrome display\n hasDisplay: true,\n display: {\n count: 1,\n isColor: false,\n color: \"green\",\n canDisplayBitmap: false,\n resolution: { width: 640, height: 480 },\n fieldOfView: { horizontal: 30 },\n maxTextLines: 7,\n adjustBrightness: true,\n\n // Scene display API — no positioned elements; scenes degrade to text walls.\n canPosition: false,\n maxImageElements: 0,\n },\n\n // Microphone capabilities - does not have a microphone\n hasMicrophone: false,\n microphone: null,\n\n // Speaker capabilities - does not have a speaker\n hasSpeaker: false,\n speaker: null,\n\n // IMU capabilities - does not have an IMU\n hasIMU: false,\n imu: null,\n\n // Button capabilities - does not have buttons\n hasButton: false,\n button: null,\n\n // Light capabilities - does not have lights\n hasLight: false,\n light: null,\n\n // Power capabilities - does not have external battery\n power: {\n hasExternalBattery: false,\n },\n\n // WiFi capabilities - does not support WiFi\n hasWifi: false,\n};\n"]}
1
+ {"version":3,"file":"vuzix-z100.js","sourceRoot":"","sources":["../../../src/types/capabilities/vuzix-z100.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAiB;IACrC,SAAS,EAAE,YAAY;IAEvB,+CAA+C;IAC/C,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,wDAAwD;IACxD,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE,KAAK;QACvB,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;QACvC,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,YAAY,EAAE,CAAC;QACf,gBAAgB,EAAE,IAAI;QAEtB,4EAA4E;QAC5E,WAAW,EAAE,KAAK;QAClB,gBAAgB,EAAE,CAAC;KACpB;IAED,uDAAuD;IACvD,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,IAAI;IAEhB,iDAAiD;IACjD,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,IAAI;IAEb,0CAA0C;IAC1C,MAAM,EAAE,KAAK;IACb,GAAG,EAAE,IAAI;IAET,8CAA8C;IAC9C,SAAS,EAAE,KAAK;IAChB,MAAM,EAAE,IAAI;IAEZ,4CAA4C;IAC5C,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE,IAAI;IAEX,sDAAsD;IACtD,KAAK,EAAE;QACL,kBAAkB,EAAE,KAAK;KAC1B;IAED,4CAA4C;IAC5C,OAAO,EAAE,KAAK;IAEd,8EAA8E;IAC9E,MAAM,EAAE,KAAK;CACd,CAAC","sourcesContent":["/**\n * @fileoverview Vuzix Z100 Hardware Capabilities\n *\n * Capability profile for the Vuzix Z100 smart glasses model.\n * Defines the hardware and software features available on this device.\n */\n\nimport type { Capabilities } from \"../hardware\";\n\n/**\n * Vuzix Z100 capability profile\n */\nexport const vuzixZ100: Capabilities = {\n modelName: \"Vuzix Z100\",\n\n // Camera capabilities - does not have a camera\n hasCamera: false,\n camera: null,\n\n // Display capabilities - has a green monochrome display\n hasDisplay: true,\n display: {\n count: 1,\n isColor: false,\n color: \"green\",\n canDisplayBitmap: false,\n resolution: { width: 640, height: 480 },\n fieldOfView: { horizontal: 30 },\n maxTextLines: 7,\n adjustBrightness: true,\n\n // Scene display API — no positioned elements; scenes degrade to text walls.\n canPosition: false,\n maxImageElements: 0,\n },\n\n // Microphone capabilities - does not have a microphone\n hasMicrophone: false,\n microphone: null,\n\n // Speaker capabilities - does not have a speaker\n hasSpeaker: false,\n speaker: null,\n\n // IMU capabilities - does not have an IMU\n hasIMU: false,\n imu: null,\n\n // Button capabilities - does not have buttons\n hasButton: false,\n button: null,\n\n // Light capabilities - does not have lights\n hasLight: false,\n light: null,\n\n // Power capabilities - does not have external battery\n power: {\n hasExternalBattery: false,\n },\n\n // WiFi capabilities - does not support WiFi\n hasWifi: false,\n\n // OTA capabilities - Z100 firmware updates are not driven by the ASG OTA flow\n hasOta: false,\n};\n"]}
@@ -9,7 +9,8 @@ export declare enum DeviceTypes {
9
9
  MACH1 = "Mentra Mach1",
10
10
  Z100 = "Vuzix Z100",
11
11
  NEX = "Mentra Display",
12
- FRAME = "Brilliant Frame"
12
+ FRAME = "Brilliant Frame",
13
+ NIMO = "NIMO"
13
14
  }
14
15
  export declare enum ControllerTypes {
15
16
  R1 = "Even Realities R1"
@@ -1 +1 @@
1
- {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../src/types/enums.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAC,MAAM,0BAA0B,CAAA;AAE/E,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,SAAS,sBAAsB;IAC/B,IAAI,SAAS;IACb,EAAE,sBAAsB;IACxB,EAAE,sBAAsB;IACxB,IAAI,gBAAgB;IACpB,KAAK,iBAAiB;IACtB,IAAI,eAAe;IACnB,GAAG,mBAAmB;IACtB,KAAK,oBAAoB;CAC1B;AAED,oBAAY,eAAe;IACzB,EAAE,sBAAsB;CACzB"}
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../src/types/enums.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAC,MAAM,0BAA0B,CAAA;AAE/E,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,SAAS,sBAAsB;IAC/B,IAAI,SAAS;IACb,EAAE,sBAAsB;IACxB,EAAE,sBAAsB;IACxB,IAAI,gBAAgB;IACpB,KAAK,iBAAiB;IACtB,IAAI,eAAe;IACnB,GAAG,mBAAmB;IACtB,KAAK,oBAAoB;IACzB,IAAI,SAAS;CACd;AAED,oBAAY,eAAe;IACzB,EAAE,sBAAsB;CACzB"}
@@ -11,6 +11,7 @@ export var DeviceTypes;
11
11
  DeviceTypes["Z100"] = "Vuzix Z100";
12
12
  DeviceTypes["NEX"] = "Mentra Display";
13
13
  DeviceTypes["FRAME"] = "Brilliant Frame";
14
+ DeviceTypes["NIMO"] = "NIMO";
14
15
  })(DeviceTypes || (DeviceTypes = {}));
15
16
  export var ControllerTypes;
16
17
  (function (ControllerTypes) {
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/types/enums.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAC,MAAM,0BAA0B,CAAA;AAE/E,MAAM,CAAN,IAAY,WAWX;AAXD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,8CAA+B,CAAA;IAC/B,4BAAa,CAAA;IACb,uCAAwB,CAAA;IACxB,uCAAwB,CAAA;IACxB,mCAAoB,CAAA;IACpB,qCAAsB,CAAA;IACtB,kCAAmB,CAAA;IACnB,qCAAsB,CAAA;IACtB,wCAAyB,CAAA;AAC3B,CAAC,EAXW,WAAW,KAAX,WAAW,QAWtB;AAED,MAAM,CAAN,IAAY,eAEX;AAFD,WAAY,eAAe;IACzB,2CAAwB,CAAA;AAC1B,CAAC,EAFW,eAAe,KAAf,eAAe,QAE1B","sourcesContent":["export {HardwareType, HardwareRequirementLevel} from \"@mentra/miniapp/hardware\"\n\nexport enum DeviceTypes {\n NONE = \"None\",\n SIMULATED = \"Simulated Glasses\",\n AR99 = \"AR99\",\n G1 = \"Even Realities G1\",\n G2 = \"Even Realities G2\",\n LIVE = \"Mentra Live\",\n MACH1 = \"Mentra Mach1\",\n Z100 = \"Vuzix Z100\",\n NEX = \"Mentra Display\",\n FRAME = \"Brilliant Frame\",\n}\n\nexport enum ControllerTypes {\n R1 = \"Even Realities R1\",\n}\n"]}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../src/types/enums.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAC,MAAM,0BAA0B,CAAA;AAE/E,MAAM,CAAN,IAAY,WAYX;AAZD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,8CAA+B,CAAA;IAC/B,4BAAa,CAAA;IACb,uCAAwB,CAAA;IACxB,uCAAwB,CAAA;IACxB,mCAAoB,CAAA;IACpB,qCAAsB,CAAA;IACtB,kCAAmB,CAAA;IACnB,qCAAsB,CAAA;IACtB,wCAAyB,CAAA;IACzB,4BAAa,CAAA;AACf,CAAC,EAZW,WAAW,KAAX,WAAW,QAYtB;AAED,MAAM,CAAN,IAAY,eAEX;AAFD,WAAY,eAAe;IACzB,2CAAwB,CAAA;AAC1B,CAAC,EAFW,eAAe,KAAf,eAAe,QAE1B","sourcesContent":["export {HardwareType, HardwareRequirementLevel} from \"@mentra/miniapp/hardware\"\n\nexport enum DeviceTypes {\n NONE = \"None\",\n SIMULATED = \"Simulated Glasses\",\n AR99 = \"AR99\",\n G1 = \"Even Realities G1\",\n G2 = \"Even Realities G2\",\n LIVE = \"Mentra Live\",\n MACH1 = \"Mentra Mach1\",\n Z100 = \"Vuzix Z100\",\n NEX = \"Mentra Display\",\n FRAME = \"Brilliant Frame\",\n NIMO = \"NIMO\",\n}\n\nexport enum ControllerTypes {\n R1 = \"Even Realities R1\",\n}\n"]}
@@ -3,6 +3,7 @@ import { evenRealitiesG1 } from "./capabilities/even-realities-g1";
3
3
  import { evenRealitiesG2 } from "./capabilities/even-realities-g2";
4
4
  import { mentraDisplay } from "./capabilities/mentra-display";
5
5
  import { mentraLive } from "./capabilities/mentra-live";
6
+ import { nimo } from "./capabilities/nimo";
6
7
  import { simulatedGlasses } from "./capabilities/simulated-glasses";
7
8
  import { vuzixZ100 } from "./capabilities/vuzix-z100";
8
9
  import { DeviceTypes } from "./enums";
@@ -137,7 +138,7 @@ export interface Capabilities {
137
138
  light: LightCapabilities | null;
138
139
  power: PowerCapabilities;
139
140
  hasWifi: boolean;
140
- hasOta?: boolean;
141
+ hasOta: boolean;
141
142
  hasNativeDashboard?: boolean;
142
143
  }
143
144
  /**
@@ -147,5 +148,5 @@ export interface Capabilities {
147
148
  */
148
149
  export declare const HARDWARE_CAPABILITIES: Record<string, Capabilities>;
149
150
  export declare const getModelCapabilities: (deviceType: DeviceTypes) => Capabilities;
150
- export { simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, vuzixZ100, mentraDisplay };
151
+ export { simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, nimo, vuzixZ100, mentraDisplay };
151
152
  //# sourceMappingURL=hardware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hardware.d.ts","sourceRoot":"","sources":["../../src/types/hardware.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE;QACL,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;QAChC,oBAAoB,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC5D,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,WAAW,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAK3B,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sEAAsE;IACtE,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;QACtC,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,EAAE,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,SAAS,GAAG,eAAe,GAAG,SAAS,CAAC;QACjD,WAAW,EAAE,OAAO,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;KAChE,EAAE,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAGlB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAGlC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAGpC,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAG1C,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAGpC,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,eAAe,GAAG,IAAI,CAAC;IAG5B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAGlC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAGhC,KAAK,EAAE,iBAAiB,CAAC;IAGzB,OAAO,EAAE,OAAO,CAAC;IAGjB,MAAM,CAAC,EAAE,OAAO,CAAC;IAOjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAuB9D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,YAAY,WAAW,KAAG,YAM9D,CAAC;AAGF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"hardware.d.ts","sourceRoot":"","sources":["../../src/types/hardware.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { evenRealitiesG1 } from "./capabilities/even-realities-g1";
3
3
  import { evenRealitiesG2 } from "./capabilities/even-realities-g2";
4
4
  import { mentraDisplay } from "./capabilities/mentra-display";
5
5
  import { mentraLive } from "./capabilities/mentra-live";
6
+ import { nimo } from "./capabilities/nimo";
6
7
  import { simulatedGlasses } from "./capabilities/simulated-glasses";
7
8
  import { vuzixZ100 } from "./capabilities/vuzix-z100";
8
9
  import { none } from "./capabilities/none";
@@ -19,6 +20,7 @@ export const HARDWARE_CAPABILITIES = {
19
20
  [mentraLive.modelName]: mentraLive,
20
21
  [simulatedGlasses.modelName]: simulatedGlasses,
21
22
  [vuzixZ100.modelName]: vuzixZ100,
23
+ [nimo.modelName]: nimo,
22
24
  [DeviceTypes.MACH1]: vuzixZ100, // Mach1 uses same Vuzix Ultralite hardware as Z100
23
25
  [DeviceTypes.AR99]: {
24
26
  ...evenRealitiesG1,
@@ -44,5 +46,5 @@ export const getModelCapabilities = (deviceType) => {
44
46
  return HARDWARE_CAPABILITIES[modelName];
45
47
  };
46
48
  // export * from "./capabilities"
47
- export { simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, vuzixZ100, mentraDisplay };
49
+ export { simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, nimo, vuzixZ100, mentraDisplay };
48
50
  //# sourceMappingURL=hardware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hardware.js","sourceRoot":"","sources":["../../src/types/hardware.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAiKtC;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAiC;IACjE,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,eAAe;IAC5C,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,eAAe;IAC5C,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,aAAa;IACxC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,UAAU;IAClC,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,gBAAgB;IAC9C,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS;IAChC,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,mDAAmD;IACnF,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;QAClB,GAAG,eAAe;QAClB,SAAS,EAAE,WAAW,CAAC,IAAI;QAC3B,OAAO,EAAE;YACP,GAAG,eAAe,CAAC,OAAO;YAC1B,gBAAgB,EAAE,KAAK;SACxB;QACD,aAAa,EAAE,IAAI;QACnB,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE;YACV,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,KAAK;SACd;KACF;IACD,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAuB,EAAgB,EAAE;IAC5E,MAAM,SAAS,GAAG,UAAoB,CAAC;IACvC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,iCAAiC;AACjC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC","sourcesContent":["/** Hardware capability types used by the Engine. */\n\nimport { evenRealitiesG1 } from \"./capabilities/even-realities-g1\";\nimport { evenRealitiesG2 } from \"./capabilities/even-realities-g2\";\nimport { mentraDisplay } from \"./capabilities/mentra-display\";\nimport { mentraLive } from \"./capabilities/mentra-live\";\nimport { simulatedGlasses } from \"./capabilities/simulated-glasses\";\nimport { vuzixZ100 } from \"./capabilities/vuzix-z100\";\nimport { none } from \"./capabilities/none\";\nimport { DeviceTypes } from \"./enums\";\n\nexport type { HardwareRequirement } from \"@mentra/miniapp/hardware\";\n\n/**\n * Camera capabilities\n */\nexport interface CameraCapabilities {\n resolution?: { width: number; height: number };\n hasHDR?: boolean;\n hasFocus?: boolean;\n video: {\n canRecord: boolean;\n canStream: boolean;\n supportedStreamTypes?: string[];\n supportedResolutions?: { width: number; height: number }[];\n };\n}\n\n/**\n * Display capabilities\n */\nexport interface DisplayCapabilities {\n count?: number;\n isColor?: boolean;\n color?: string; // e.g., \"green\", \"full_color\", \"pallet\"\n canDisplayBitmap?: boolean;\n resolution?: { width: number; height: number };\n fieldOfView?: { horizontal?: number; vertical?: number };\n maxTextLines?: number;\n adjustBrightness?: boolean;\n\n // --- Scene display API (display.render()) — typed capabilities ---\n // Pure DATA the host scene pipeline acts on generically; a device without\n // canPosition renders scenes via the host degrade path instead.\n /** Public drawable canvas in px — the raw coordinate space for render() boxes. */\n width?: number;\n height?: number;\n /** True ⇒ the device renders positioned elements (containers / canvas components). */\n canPosition?: boolean;\n /** Element budgets. Rects share the text pool on container-based devices. */\n maxTextElements?: number;\n maxImageElements?: number;\n /** Per-image dimension cap (box-level), when the firmware has one. */\n maxImagePx?: { width: number; height: number };\n shapes?: \"rect\"[];\n intensityLevels?: number;\n partialUpdate?: boolean;\n}\n\n/**\n * Microphone capabilities\n */\nexport interface MicrophoneCapabilities {\n count?: number;\n hasVAD?: boolean; // Voice Activity Detection\n}\n\n/**\n * Speaker capabilities\n */\nexport interface SpeakerCapabilities {\n count?: number;\n isPrivate?: boolean; // e.g., bone conduction\n}\n\n/**\n * IMU (Inertial Measurement Unit) capabilities\n */\nexport interface IMUCapabilities {\n axisCount?: number;\n hasAccelerometer?: boolean;\n hasCompass?: boolean;\n hasGyroscope?: boolean;\n}\n\n/**\n * Button capabilities\n */\nexport interface ButtonCapabilities {\n count?: number;\n buttons?: {\n type: \"press\" | \"swipe1d\" | \"swipe2d\";\n events: string[]; // e.g., \"press\", \"double_press\", \"long_press\", \"swipe_up\", \"swipe_down\"\n isCapacitive?: boolean;\n }[];\n}\n\n/**\n * Light capabilities\n */\nexport interface LightCapabilities {\n count?: number;\n lights?: {\n id: string; // Unique identifier for the LED (e.g., \"privacy\", \"user_feedback\")\n purpose: \"privacy\" | \"user_feedback\" | \"general\"; // LED purpose/function\n isFullColor: boolean;\n color?: string; // e.g., \"white\", \"rgb\"\n position?: \"front_facing\" | \"user_facing\" | \"side\" | \"unknown\"; // LED physical position\n }[];\n}\n\n/**\n * Power capabilities\n */\nexport interface PowerCapabilities {\n hasExternalBattery: boolean; // e.g., a case or puck\n}\n\n/**\n * Device hardware capabilities\n * Complete information about what hardware a device has\n */\nexport interface Capabilities {\n modelName: string;\n\n // Camera capabilities\n hasCamera: boolean;\n camera: CameraCapabilities | null;\n\n // Display capabilities\n hasDisplay: boolean;\n display: DisplayCapabilities | null;\n\n // Microphone capabilities\n hasMicrophone: boolean;\n microphone: MicrophoneCapabilities | null;\n\n // Speaker capabilities\n hasSpeaker: boolean;\n speaker: SpeakerCapabilities | null;\n\n // IMU capabilities\n hasIMU: boolean;\n imu: IMUCapabilities | null;\n\n // Button capabilities\n hasButton: boolean;\n button: ButtonCapabilities | null;\n\n // Light capabilities\n hasLight: boolean;\n light: LightCapabilities | null;\n\n // Power capabilities\n power: PowerCapabilities;\n\n // WiFi capability\n hasWifi: boolean;\n\n // OTA capability\n hasOta?: boolean;\n\n // Native dashboard capability\n // True when the device renders its own dashboard in firmware (e.g. Even\n // Realities' built-in dashboard on G2). MentraOS does not manage or expose\n // dashboard settings for these devices. Absent/false means MentraOS owns the\n // dashboard.\n hasNativeDashboard?: boolean;\n}\n\n/**\n * Hardware capability profiles for supported glasses models\n * Key: model_name string (e.g., \"Even Realities G1\", \"Mentra Live\")\n * Value: Capabilities object defining device features\n */\nexport const HARDWARE_CAPABILITIES: Record<string, Capabilities> = {\n [evenRealitiesG1.modelName]: evenRealitiesG1,\n [evenRealitiesG2.modelName]: evenRealitiesG2,\n [mentraDisplay.modelName]: mentraDisplay,\n [mentraLive.modelName]: mentraLive,\n [simulatedGlasses.modelName]: simulatedGlasses,\n [vuzixZ100.modelName]: vuzixZ100,\n [DeviceTypes.MACH1]: vuzixZ100, // Mach1 uses same Vuzix Ultralite hardware as Z100\n [DeviceTypes.AR99]: {\n ...evenRealitiesG1,\n modelName: DeviceTypes.AR99,\n display: {\n ...evenRealitiesG1.display,\n canDisplayBitmap: false,\n },\n hasMicrophone: true,\n hasOta: true,\n microphone: {\n count: 1,\n hasVAD: false,\n },\n },\n [none.modelName]: none,\n};\n\nexport const getModelCapabilities = (deviceType: DeviceTypes): Capabilities => {\n const modelName = deviceType as string;\n if (!HARDWARE_CAPABILITIES[modelName]) {\n return HARDWARE_CAPABILITIES[DeviceTypes.NONE];\n }\n return HARDWARE_CAPABILITIES[modelName];\n};\n\n// export * from \"./capabilities\"\nexport { simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, vuzixZ100, mentraDisplay };\n"]}
1
+ {"version":3,"file":"hardware.js","sourceRoot":"","sources":["../../src/types/hardware.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAiKtC;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAiC;IACjE,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,eAAe;IAC5C,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,eAAe;IAC5C,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,aAAa;IACxC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,UAAU;IAClC,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,gBAAgB;IAC9C,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS;IAChC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI;IACtB,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,mDAAmD;IACnF,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;QAClB,GAAG,eAAe;QAClB,SAAS,EAAE,WAAW,CAAC,IAAI;QAC3B,OAAO,EAAE;YACP,GAAG,eAAe,CAAC,OAAO;YAC1B,gBAAgB,EAAE,KAAK;SACxB;QACD,aAAa,EAAE,IAAI;QACnB,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE;YACV,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,KAAK;SACd;KACF;IACD,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAuB,EAAgB,EAAE;IAC5E,MAAM,SAAS,GAAG,UAAoB,CAAC;IACvC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,iCAAiC;AACjC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC","sourcesContent":["/** Hardware capability types used by the Engine. */\n\nimport { evenRealitiesG1 } from \"./capabilities/even-realities-g1\";\nimport { evenRealitiesG2 } from \"./capabilities/even-realities-g2\";\nimport { mentraDisplay } from \"./capabilities/mentra-display\";\nimport { mentraLive } from \"./capabilities/mentra-live\";\nimport { nimo } from \"./capabilities/nimo\";\nimport { simulatedGlasses } from \"./capabilities/simulated-glasses\";\nimport { vuzixZ100 } from \"./capabilities/vuzix-z100\";\nimport { none } from \"./capabilities/none\";\nimport { DeviceTypes } from \"./enums\";\n\nexport type { HardwareRequirement } from \"@mentra/miniapp/hardware\";\n\n/**\n * Camera capabilities\n */\nexport interface CameraCapabilities {\n resolution?: { width: number; height: number };\n hasHDR?: boolean;\n hasFocus?: boolean;\n video: {\n canRecord: boolean;\n canStream: boolean;\n supportedStreamTypes?: string[];\n supportedResolutions?: { width: number; height: number }[];\n };\n}\n\n/**\n * Display capabilities\n */\nexport interface DisplayCapabilities {\n count?: number;\n isColor?: boolean;\n color?: string; // e.g., \"green\", \"full_color\", \"pallet\"\n canDisplayBitmap?: boolean;\n resolution?: { width: number; height: number };\n fieldOfView?: { horizontal?: number; vertical?: number };\n maxTextLines?: number;\n adjustBrightness?: boolean;\n\n // --- Scene display API (display.render()) — typed capabilities ---\n // Pure DATA the host scene pipeline acts on generically; a device without\n // canPosition renders scenes via the host degrade path instead.\n /** Public drawable canvas in px — the raw coordinate space for render() boxes. */\n width?: number;\n height?: number;\n /** True ⇒ the device renders positioned elements (containers / canvas components). */\n canPosition?: boolean;\n /** Element budgets. Rects share the text pool on container-based devices. */\n maxTextElements?: number;\n maxImageElements?: number;\n /** Per-image dimension cap (box-level), when the firmware has one. */\n maxImagePx?: { width: number; height: number };\n shapes?: \"rect\"[];\n intensityLevels?: number;\n partialUpdate?: boolean;\n}\n\n/**\n * Microphone capabilities\n */\nexport interface MicrophoneCapabilities {\n count?: number;\n hasVAD?: boolean; // Voice Activity Detection\n}\n\n/**\n * Speaker capabilities\n */\nexport interface SpeakerCapabilities {\n count?: number;\n isPrivate?: boolean; // e.g., bone conduction\n}\n\n/**\n * IMU (Inertial Measurement Unit) capabilities\n */\nexport interface IMUCapabilities {\n axisCount?: number;\n hasAccelerometer?: boolean;\n hasCompass?: boolean;\n hasGyroscope?: boolean;\n}\n\n/**\n * Button capabilities\n */\nexport interface ButtonCapabilities {\n count?: number;\n buttons?: {\n type: \"press\" | \"swipe1d\" | \"swipe2d\";\n events: string[]; // e.g., \"press\", \"double_press\", \"long_press\", \"swipe_up\", \"swipe_down\"\n isCapacitive?: boolean;\n }[];\n}\n\n/**\n * Light capabilities\n */\nexport interface LightCapabilities {\n count?: number;\n lights?: {\n id: string; // Unique identifier for the LED (e.g., \"privacy\", \"user_feedback\")\n purpose: \"privacy\" | \"user_feedback\" | \"general\"; // LED purpose/function\n isFullColor: boolean;\n color?: string; // e.g., \"white\", \"rgb\"\n position?: \"front_facing\" | \"user_facing\" | \"side\" | \"unknown\"; // LED physical position\n }[];\n}\n\n/**\n * Power capabilities\n */\nexport interface PowerCapabilities {\n hasExternalBattery: boolean; // e.g., a case or puck\n}\n\n/**\n * Device hardware capabilities\n * Complete information about what hardware a device has\n */\nexport interface Capabilities {\n modelName: string;\n\n // Camera capabilities\n hasCamera: boolean;\n camera: CameraCapabilities | null;\n\n // Display capabilities\n hasDisplay: boolean;\n display: DisplayCapabilities | null;\n\n // Microphone capabilities\n hasMicrophone: boolean;\n microphone: MicrophoneCapabilities | null;\n\n // Speaker capabilities\n hasSpeaker: boolean;\n speaker: SpeakerCapabilities | null;\n\n // IMU capabilities\n hasIMU: boolean;\n imu: IMUCapabilities | null;\n\n // Button capabilities\n hasButton: boolean;\n button: ButtonCapabilities | null;\n\n // Light capabilities\n hasLight: boolean;\n light: LightCapabilities | null;\n\n // Power capabilities\n power: PowerCapabilities;\n\n // WiFi capability\n hasWifi: boolean;\n\n // OTA capability\n hasOta: boolean;\n\n // Native dashboard capability\n // True when the device renders its own dashboard in firmware (e.g. Even\n // Realities' built-in dashboard on G2). MentraOS does not manage or expose\n // dashboard settings for these devices. Absent/false means MentraOS owns the\n // dashboard.\n hasNativeDashboard?: boolean;\n}\n\n/**\n * Hardware capability profiles for supported glasses models\n * Key: model_name string (e.g., \"Even Realities G1\", \"Mentra Live\")\n * Value: Capabilities object defining device features\n */\nexport const HARDWARE_CAPABILITIES: Record<string, Capabilities> = {\n [evenRealitiesG1.modelName]: evenRealitiesG1,\n [evenRealitiesG2.modelName]: evenRealitiesG2,\n [mentraDisplay.modelName]: mentraDisplay,\n [mentraLive.modelName]: mentraLive,\n [simulatedGlasses.modelName]: simulatedGlasses,\n [vuzixZ100.modelName]: vuzixZ100,\n [nimo.modelName]: nimo,\n [DeviceTypes.MACH1]: vuzixZ100, // Mach1 uses same Vuzix Ultralite hardware as Z100\n [DeviceTypes.AR99]: {\n ...evenRealitiesG1,\n modelName: DeviceTypes.AR99,\n display: {\n ...evenRealitiesG1.display,\n canDisplayBitmap: false,\n },\n hasMicrophone: true,\n hasOta: true,\n microphone: {\n count: 1,\n hasVAD: false,\n },\n },\n [none.modelName]: none,\n};\n\nexport const getModelCapabilities = (deviceType: DeviceTypes): Capabilities => {\n const modelName = deviceType as string;\n if (!HARDWARE_CAPABILITIES[modelName]) {\n return HARDWARE_CAPABILITIES[DeviceTypes.NONE];\n }\n return HARDWARE_CAPABILITIES[modelName];\n};\n\n// export * from \"./capabilities\"\nexport { simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, nimo, vuzixZ100, mentraDisplay };\n"]}
@@ -2,6 +2,6 @@
2
2
  * are re-exported from @mentra/miniapp, their canonical owner. */
3
3
  export { HardwareType, HardwareRequirementLevel, DeviceTypes, ControllerTypes } from "./enums";
4
4
  export type { HardwareRequirement, CameraCapabilities, DisplayCapabilities, MicrophoneCapabilities, SpeakerCapabilities, IMUCapabilities, ButtonCapabilities, LightCapabilities, PowerCapabilities, Capabilities, } from "./hardware";
5
- export { HARDWARE_CAPABILITIES, getModelCapabilities, simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, vuzixZ100, mentraDisplay, } from "./hardware";
5
+ export { HARDWARE_CAPABILITIES, getModelCapabilities, simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, nimo, vuzixZ100, mentraDisplay, } from "./hardware";
6
6
  export type { AppletType, AppPermissionType, AppletPermission, AppletInterface, ClientApp } from "./applet";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;kEACkE;AAGlE,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAG5F,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,UAAU,EACV,SAAS,EACT,aAAa,GACd,MAAM,YAAY,CAAA;AAGnB,YAAY,EAAC,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAC,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;kEACkE;AAGlE,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAG5F,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,UAAU,EACV,IAAI,EACJ,SAAS,EACT,aAAa,GACd,MAAM,YAAY,CAAA;AAGnB,YAAY,EAAC,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAC,MAAM,UAAU,CAAA"}
@@ -2,5 +2,5 @@
2
2
  * are re-exported from @mentra/miniapp, their canonical owner. */
3
3
  // Enums (runtime values)
4
4
  export { HardwareType, HardwareRequirementLevel, DeviceTypes, ControllerTypes } from "./enums";
5
- export { HARDWARE_CAPABILITIES, getModelCapabilities, simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, vuzixZ100, mentraDisplay, } from "./hardware";
5
+ export { HARDWARE_CAPABILITIES, getModelCapabilities, simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, nimo, vuzixZ100, mentraDisplay, } from "./hardware";
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;kEACkE;AAElE,yBAAyB;AACzB,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAgB5F,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,UAAU,EACV,SAAS,EACT,aAAa,GACd,MAAM,YAAY,CAAA","sourcesContent":["/** Engine capability types and profiles. Miniapp manifest requirement types\n * are re-exported from @mentra/miniapp, their canonical owner. */\n\n// Enums (runtime values)\nexport {HardwareType, HardwareRequirementLevel, DeviceTypes, ControllerTypes} from \"./enums\"\n\n// Hardware types\nexport type {\n HardwareRequirement,\n CameraCapabilities,\n DisplayCapabilities,\n MicrophoneCapabilities,\n SpeakerCapabilities,\n IMUCapabilities,\n ButtonCapabilities,\n LightCapabilities,\n PowerCapabilities,\n Capabilities,\n} from \"./hardware\"\n\nexport {\n HARDWARE_CAPABILITIES,\n getModelCapabilities,\n simulatedGlasses,\n evenRealitiesG1,\n evenRealitiesG2,\n mentraLive,\n vuzixZ100,\n mentraDisplay,\n} from \"./hardware\"\n\n// Applet types\nexport type {AppletType, AppPermissionType, AppletPermission, AppletInterface, ClientApp} from \"./applet\"\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;kEACkE;AAElE,yBAAyB;AACzB,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,SAAS,CAAA;AAgB5F,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,UAAU,EACV,IAAI,EACJ,SAAS,EACT,aAAa,GACd,MAAM,YAAY,CAAA","sourcesContent":["/** Engine capability types and profiles. Miniapp manifest requirement types\n * are re-exported from @mentra/miniapp, their canonical owner. */\n\n// Enums (runtime values)\nexport {HardwareType, HardwareRequirementLevel, DeviceTypes, ControllerTypes} from \"./enums\"\n\n// Hardware types\nexport type {\n HardwareRequirement,\n CameraCapabilities,\n DisplayCapabilities,\n MicrophoneCapabilities,\n SpeakerCapabilities,\n IMUCapabilities,\n ButtonCapabilities,\n LightCapabilities,\n PowerCapabilities,\n Capabilities,\n} from \"./hardware\"\n\nexport {\n HARDWARE_CAPABILITIES,\n getModelCapabilities,\n simulatedGlasses,\n evenRealitiesG1,\n evenRealitiesG2,\n mentraLive,\n nimo,\n vuzixZ100,\n mentraDisplay,\n} from \"./hardware\"\n\n// Applet types\nexport type {AppletType, AppPermissionType, AppletPermission, AppletInterface, ClientApp} from \"./applet\"\n"]}
@@ -11,7 +11,7 @@
11
11
  * 2. Merges columns line-by-line with pixel-precise space padding
12
12
  * 3. Returns a single pre-composed string ready for native to chunk & send
13
13
  *
14
- * @see cloud/issues/026-mobile-display-processor for design docs
14
+ * @see notes/miniapp-display-api-redesign.md for the current display design
15
15
  */
16
16
  import type { DisplayProfile } from "../profiles/types";
17
17
  import type { BreakMode } from "../wrapper/types";
@@ -11,7 +11,7 @@
11
11
  * 2. Merges columns line-by-line with pixel-precise space padding
12
12
  * 3. Returns a single pre-composed string ready for native to chunk & send
13
13
  *
14
- * @see cloud/issues/026-mobile-display-processor for design docs
14
+ * @see notes/miniapp-display-api-redesign.md for the current display design
15
15
  */
16
16
  import { TextMeasurer } from "../measurer/TextMeasurer";
17
17
  import { TextWrapper } from "../wrapper/TextWrapper";