@mentra/engine 3.1.0-dev.91 → 3.1.0-dev.95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/build/facades/ota.d.ts +1 -1
- package/build/facades/ota.js +1 -1
- package/build/facades/ota.js.map +1 -1
- package/build/generated/releaseMetadata.js +5 -5
- package/build/generated/releaseMetadata.js.map +1 -1
- package/build/index.d.ts +1 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/services/DisplayProcessor.d.ts +3 -3
- package/build/services/DisplayProcessor.js +3 -3
- package/build/services/DisplayProcessor.js.map +1 -1
- package/build/services/LocalDisplayManager.d.ts +2 -3
- package/build/services/LocalDisplayManager.d.ts.map +1 -1
- package/build/services/LocalDisplayManager.js +2 -3
- package/build/services/LocalDisplayManager.js.map +1 -1
- package/build/services/PhonePhotoCoordinator.js +1 -1
- package/build/services/PhonePhotoCoordinator.js.map +1 -1
- package/build/services/StreamLifecycleController.d.ts +3 -3
- package/build/services/StreamLifecycleController.js +3 -3
- package/build/services/StreamLifecycleController.js.map +1 -1
- package/build/types/applet.d.ts +1 -1
- package/build/types/applet.js +1 -1
- package/build/types/applet.js.map +1 -1
- package/build/types/capabilities/even-realities-g1.d.ts.map +1 -1
- package/build/types/capabilities/even-realities-g1.js +2 -0
- package/build/types/capabilities/even-realities-g1.js.map +1 -1
- package/build/types/capabilities/even-realities-g2.d.ts.map +1 -1
- package/build/types/capabilities/even-realities-g2.js +2 -0
- package/build/types/capabilities/even-realities-g2.js.map +1 -1
- package/build/types/capabilities/mentra-display.d.ts.map +1 -1
- package/build/types/capabilities/mentra-display.js +2 -0
- package/build/types/capabilities/mentra-display.js.map +1 -1
- package/build/types/capabilities/mentra-live.d.ts.map +1 -1
- package/build/types/capabilities/mentra-live.js +2 -0
- package/build/types/capabilities/mentra-live.js.map +1 -1
- package/build/types/capabilities/nimo.d.ts +9 -0
- package/build/types/capabilities/nimo.d.ts.map +1 -0
- package/build/types/capabilities/nimo.js +57 -0
- package/build/types/capabilities/nimo.js.map +1 -0
- package/build/types/capabilities/none.d.ts.map +1 -1
- package/build/types/capabilities/none.js +2 -0
- package/build/types/capabilities/none.js.map +1 -1
- package/build/types/capabilities/simulated-glasses.d.ts.map +1 -1
- package/build/types/capabilities/simulated-glasses.js +2 -0
- package/build/types/capabilities/simulated-glasses.js.map +1 -1
- package/build/types/capabilities/vuzix-z100.d.ts.map +1 -1
- package/build/types/capabilities/vuzix-z100.js +2 -0
- package/build/types/capabilities/vuzix-z100.js.map +1 -1
- package/build/types/enums.d.ts +2 -1
- package/build/types/enums.d.ts.map +1 -1
- package/build/types/enums.js +1 -0
- package/build/types/enums.js.map +1 -1
- package/build/types/hardware.d.ts +3 -2
- package/build/types/hardware.d.ts.map +1 -1
- package/build/types/hardware.js +3 -1
- package/build/types/hardware.js.map +1 -1
- package/build/types/index.d.ts +1 -1
- package/build/types/index.d.ts.map +1 -1
- package/build/types/index.js +1 -1
- package/build/types/index.js.map +1 -1
- package/build/utils/display/composer/ColumnComposer.d.ts +1 -1
- package/build/utils/display/composer/ColumnComposer.js +1 -1
- package/build/utils/display/composer/ColumnComposer.js.map +1 -1
- package/package.json +6 -6
- package/src/facades/ota.ts +1 -1
- package/src/generated/releaseMetadata.ts +5 -5
- package/src/index.ts +1 -0
- package/src/services/DisplayProcessor.ts +3 -3
- package/src/services/LocalDisplayManager.ts +2 -3
- package/src/services/PhonePhotoCoordinator.ts +1 -1
- package/src/services/StreamLifecycleController.ts +3 -3
- package/src/types/applet.ts +1 -1
- package/src/types/capabilities/even-realities-g1.ts +3 -0
- package/src/types/capabilities/even-realities-g2.ts +3 -0
- package/src/types/capabilities/mentra-display.ts +3 -0
- package/src/types/capabilities/mentra-live.ts +3 -0
- package/src/types/capabilities/nimo.ts +59 -0
- package/src/types/capabilities/none.ts +3 -0
- package/src/types/capabilities/simulated-glasses.ts +3 -0
- package/src/types/capabilities/vuzix-z100.ts +3 -0
- package/src/types/enums.ts +1 -0
- package/src/types/hardware.ts +4 -2
- package/src/types/index.ts +1 -0
- package/src/utils/display/composer/ColumnComposer.ts +1 -1
|
@@ -12,9 +12,9 @@ export interface EngineReleaseMetadata {
|
|
|
12
12
|
export const ENGINE_RELEASE_METADATA: Readonly<EngineReleaseMetadata> = Object.freeze({
|
|
13
13
|
"schemaVersion": 1,
|
|
14
14
|
"familyBaseVersion": "3.1.0",
|
|
15
|
-
"releaseIdentity": "3.1.0-dev.
|
|
16
|
-
"releaseSetId": "mentra-3.1.0-dev.
|
|
17
|
-
"sourceCommit": "
|
|
18
|
-
"otaManifestUrl": "https://github.com/Mentra-Community/MentraOS/releases/download/mentra-builds-v3.1.0/mentra-live-ota-3.1.0-dev.
|
|
19
|
-
"otaManifestSha256": "
|
|
15
|
+
"releaseIdentity": "3.1.0-dev.95",
|
|
16
|
+
"releaseSetId": "mentra-3.1.0-dev.95",
|
|
17
|
+
"sourceCommit": "84b6e22828cf1f07f8e2c337461ce9168457fb94",
|
|
18
|
+
"otaManifestUrl": "https://github.com/Mentra-Community/MentraOS/releases/download/mentra-builds-v3.1.0/mentra-live-ota-3.1.0-dev.95.json",
|
|
19
|
+
"otaManifestSha256": "ff0e9bc4f223dd30be4fd3c820c7fb1ef3a0ba1711b9a33ef94c68401a78d214"
|
|
20
20
|
})
|
package/src/index.ts
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
* DisplayProcessor
|
|
3
3
|
*
|
|
4
4
|
* Processes display events with pixel-accurate text wrapping using the same
|
|
5
|
-
* display
|
|
6
|
-
*
|
|
5
|
+
* Engine display utilities. This ensures the mobile preview matches exactly
|
|
6
|
+
* what is shown on the glasses.
|
|
7
7
|
*
|
|
8
8
|
* Key responsibilities:
|
|
9
9
|
* 1. Intercept display events before sending to native SGC
|
|
10
10
|
* 2. Wrap text using the correct device profile (G1, etc.)
|
|
11
11
|
* 3. Ensure GlassesDisplayMirror shows exactly what glasses will show
|
|
12
12
|
*
|
|
13
|
-
* @see
|
|
13
|
+
* @see notes/miniapp-display-api-redesign.md for the current display design
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
import {
|
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
* LocalDisplayManager
|
|
3
3
|
*
|
|
4
4
|
* Phone-side arbiter for display requests originating from LOCAL miniapps
|
|
5
|
-
* (the @mentra/miniapp SDK).
|
|
6
|
-
*
|
|
7
|
-
* for the features that matter on the phone:
|
|
5
|
+
* (the @mentra/miniapp SDK). Preserves the retired cloud display manager's
|
|
6
|
+
* user-facing behavior for the features that matter on the phone:
|
|
8
7
|
*
|
|
9
8
|
* - boot message ("Starting <AppName>…") with a bounded window
|
|
10
9
|
* - durationMs auto-clear
|
|
@@ -166,7 +166,7 @@ export class PhonePhotoCoordinator {
|
|
|
166
166
|
// to time out. Fail fast with a typed error.
|
|
167
167
|
//
|
|
168
168
|
// We DON'T pre-check `hasCamera` here — the canonical capability data
|
|
169
|
-
// lives in `getModelCapabilities(deviceModel)` from @mentra/
|
|
169
|
+
// lives in `getModelCapabilities(deviceModel)` from @mentra/engine and
|
|
170
170
|
// pulling that into this file would add a cross-package import. If a
|
|
171
171
|
// cameraless device receives the BLE photo command, the glasses-side
|
|
172
172
|
// handler will return a photo_response error within ~1s and the gated
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* `setActive(true)` starts the timer; each tick sends a keep-alive with a
|
|
4
4
|
* fresh ackId; `maxMissedAcks` consecutive timeouts fire `onTimeout`.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* Phone-owned successor to the retired cloud stream lifecycle controller.
|
|
7
|
+
* It uses the local `LifecycleLogger` interface because pino is not a phone
|
|
8
|
+
* dependency.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
export interface LifecycleLogger {
|
package/src/types/applet.ts
CHANGED
|
@@ -82,6 +82,9 @@ export const evenRealitiesG2: Capabilities = {
|
|
|
82
82
|
// WiFi capabilities - G2 does not support WiFi
|
|
83
83
|
hasWifi: false,
|
|
84
84
|
|
|
85
|
+
// OTA capabilities - G2 firmware updates are not driven by the ASG OTA flow
|
|
86
|
+
hasOta: false,
|
|
87
|
+
|
|
85
88
|
// Dashboard - G2 renders Even Realities' native dashboard in firmware, so
|
|
86
89
|
// MentraOS does not manage the dashboard or expose dashboard settings for it
|
|
87
90
|
hasNativeDashboard: true,
|
|
@@ -0,0 +1,59 @@
|
|
|
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
|
+
|
|
8
|
+
import type {Capabilities} from "../hardware"
|
|
9
|
+
|
|
10
|
+
export const nimo: Capabilities = {
|
|
11
|
+
modelName: "NIMO",
|
|
12
|
+
hasCamera: false,
|
|
13
|
+
camera: null,
|
|
14
|
+
hasDisplay: true,
|
|
15
|
+
display: {
|
|
16
|
+
count: 2,
|
|
17
|
+
isColor: false,
|
|
18
|
+
color: "green",
|
|
19
|
+
canDisplayBitmap: true,
|
|
20
|
+
// Bitmaps render into the 160x160 2bpp navigation widget. The resolution
|
|
21
|
+
// below remains the existing text-display placeholder until hardware
|
|
22
|
+
// screen information is available.
|
|
23
|
+
resolution: {width: 640, height: 400},
|
|
24
|
+
maxTextLines: 5,
|
|
25
|
+
adjustBrightness: true,
|
|
26
|
+
},
|
|
27
|
+
hasMicrophone: true,
|
|
28
|
+
microphone: {
|
|
29
|
+
count: 2,
|
|
30
|
+
hasVAD: false,
|
|
31
|
+
},
|
|
32
|
+
hasSpeaker: false,
|
|
33
|
+
speaker: null,
|
|
34
|
+
hasIMU: true,
|
|
35
|
+
imu: null,
|
|
36
|
+
hasButton: true,
|
|
37
|
+
button: {
|
|
38
|
+
count: 2,
|
|
39
|
+
buttons: [
|
|
40
|
+
{
|
|
41
|
+
type: "press",
|
|
42
|
+
events: ["press", "double_press", "long_press"],
|
|
43
|
+
isCapacitive: true,
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
type: "press",
|
|
47
|
+
events: ["press", "double_press", "long_press"],
|
|
48
|
+
isCapacitive: true,
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
hasLight: false,
|
|
53
|
+
light: null,
|
|
54
|
+
power: {
|
|
55
|
+
hasExternalBattery: false,
|
|
56
|
+
},
|
|
57
|
+
hasWifi: false,
|
|
58
|
+
hasOta: false,
|
|
59
|
+
}
|
package/src/types/enums.ts
CHANGED
package/src/types/hardware.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { evenRealitiesG1 } from "./capabilities/even-realities-g1";
|
|
|
4
4
|
import { evenRealitiesG2 } from "./capabilities/even-realities-g2";
|
|
5
5
|
import { mentraDisplay } from "./capabilities/mentra-display";
|
|
6
6
|
import { mentraLive } from "./capabilities/mentra-live";
|
|
7
|
+
import { nimo } from "./capabilities/nimo";
|
|
7
8
|
import { simulatedGlasses } from "./capabilities/simulated-glasses";
|
|
8
9
|
import { vuzixZ100 } from "./capabilities/vuzix-z100";
|
|
9
10
|
import { none } from "./capabilities/none";
|
|
@@ -158,7 +159,7 @@ export interface Capabilities {
|
|
|
158
159
|
hasWifi: boolean;
|
|
159
160
|
|
|
160
161
|
// OTA capability
|
|
161
|
-
hasOta
|
|
162
|
+
hasOta: boolean;
|
|
162
163
|
|
|
163
164
|
// Native dashboard capability
|
|
164
165
|
// True when the device renders its own dashboard in firmware (e.g. Even
|
|
@@ -180,6 +181,7 @@ export const HARDWARE_CAPABILITIES: Record<string, Capabilities> = {
|
|
|
180
181
|
[mentraLive.modelName]: mentraLive,
|
|
181
182
|
[simulatedGlasses.modelName]: simulatedGlasses,
|
|
182
183
|
[vuzixZ100.modelName]: vuzixZ100,
|
|
184
|
+
[nimo.modelName]: nimo,
|
|
183
185
|
[DeviceTypes.MACH1]: vuzixZ100, // Mach1 uses same Vuzix Ultralite hardware as Z100
|
|
184
186
|
[DeviceTypes.AR99]: {
|
|
185
187
|
...evenRealitiesG1,
|
|
@@ -207,4 +209,4 @@ export const getModelCapabilities = (deviceType: DeviceTypes): Capabilities => {
|
|
|
207
209
|
};
|
|
208
210
|
|
|
209
211
|
// export * from "./capabilities"
|
|
210
|
-
export { simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, vuzixZ100, mentraDisplay };
|
|
212
|
+
export { simulatedGlasses, evenRealitiesG1, evenRealitiesG2, mentraLive, nimo, vuzixZ100, mentraDisplay };
|
package/src/types/index.ts
CHANGED
|
@@ -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
|
|
14
|
+
* @see notes/miniapp-display-api-redesign.md for the current display design
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import type { DisplayProfile } from "../profiles/types";
|