@mentra/engine 3.2.0-dev.235 → 3.2.0-dev.247

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 (44) hide show
  1. package/build/generated/releaseMetadata.js +5 -5
  2. package/build/generated/releaseMetadata.js.map +1 -1
  3. package/build/services/AcsMeetingService.d.ts +70 -0
  4. package/build/services/AcsMeetingService.d.ts.map +1 -1
  5. package/build/services/AcsMeetingService.js +97 -0
  6. package/build/services/AcsMeetingService.js.map +1 -1
  7. package/build/services/AppRegistry.d.ts +2 -12
  8. package/build/services/AppRegistry.d.ts.map +1 -1
  9. package/build/services/AppRegistry.js +2 -37
  10. package/build/services/AppRegistry.js.map +1 -1
  11. package/build/services/CloudClientService.d.ts +1 -1
  12. package/build/services/CloudClientService.d.ts.map +1 -1
  13. package/build/services/CloudClientService.js +2 -2
  14. package/build/services/CloudClientService.js.map +1 -1
  15. package/build/services/LocalMiniappRuntime.d.ts +51 -0
  16. package/build/services/LocalMiniappRuntime.d.ts.map +1 -1
  17. package/build/services/LocalMiniappRuntime.js +228 -6
  18. package/build/services/LocalMiniappRuntime.js.map +1 -1
  19. package/build/services/PhoneNotificationsSync.d.ts +1 -1
  20. package/build/services/PhonePhotoCoordinator.d.ts +3 -2
  21. package/build/services/PhonePhotoCoordinator.d.ts.map +1 -1
  22. package/build/services/PhonePhotoCoordinator.js +19 -14
  23. package/build/services/PhonePhotoCoordinator.js.map +1 -1
  24. package/build/services/SoftapCallTransport.d.ts +64 -0
  25. package/build/services/SoftapCallTransport.d.ts.map +1 -1
  26. package/build/services/SoftapCallTransport.js +103 -3
  27. package/build/services/SoftapCallTransport.js.map +1 -1
  28. package/build/services/manifestPermissions.d.ts +13 -0
  29. package/build/services/manifestPermissions.d.ts.map +1 -0
  30. package/build/services/manifestPermissions.js +42 -0
  31. package/build/services/manifestPermissions.js.map +1 -0
  32. package/build/types/applet.d.ts +13 -1
  33. package/build/types/applet.d.ts.map +1 -1
  34. package/build/types/applet.js.map +1 -1
  35. package/package.json +8 -8
  36. package/src/generated/releaseMetadata.ts +5 -5
  37. package/src/services/AcsMeetingService.ts +138 -0
  38. package/src/services/AppRegistry.ts +3 -40
  39. package/src/services/CloudClientService.ts +2 -2
  40. package/src/services/LocalMiniappRuntime.ts +268 -7
  41. package/src/services/PhonePhotoCoordinator.ts +18 -14
  42. package/src/services/SoftapCallTransport.ts +151 -16
  43. package/src/services/manifestPermissions.ts +44 -0
  44. package/src/types/applet.ts +11 -0
@@ -1,10 +1,10 @@
1
1
  export const ENGINE_RELEASE_METADATA = Object.freeze({
2
2
  "schemaVersion": 1,
3
3
  "familyBaseVersion": "3.2.0",
4
- "releaseIdentity": "3.2.0-dev.235",
5
- "releaseSetId": "mentra-3.2.0-dev.235",
6
- "sourceCommit": "5f25e2687788b3d964e19d17fd6cd4139e3e677e",
7
- "otaManifestUrl": "https://github.com/Mentra-Community/MentraOS/releases/download/mentra-builds-v3.2.0/mentra-live-ota-3.2.0-dev.235.json",
8
- "otaManifestSha256": "a9e9ebec66e2f638ab89f446d87925cdc2c85abf3091ed33e76f01986e658ca7"
4
+ "releaseIdentity": "3.2.0-dev.247",
5
+ "releaseSetId": "mentra-3.2.0-dev.247",
6
+ "sourceCommit": "2be1b25e83b0c8db5cef39294c93b0a3f9ec7aef",
7
+ "otaManifestUrl": "https://github.com/Mentra-Community/MentraOS/releases/download/mentra-builds-v3.2.0/mentra-live-ota-3.2.0-dev.247.json",
8
+ "otaManifestSha256": "cba0e05a180f92e98e3bf47d0acdba2ae81cc79788da1393e80334fb5b26093b"
9
9
  });
10
10
  //# sourceMappingURL=releaseMetadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"releaseMetadata.js","sourceRoot":"","sources":["../../src/generated/releaseMetadata.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,uBAAuB,GAAoC,MAAM,CAAC,MAAM,CAAC;IACpF,eAAe,EAAE,CAAC;IAClB,mBAAmB,EAAE,OAAO;IAC5B,iBAAiB,EAAE,eAAe;IAClC,cAAc,EAAE,sBAAsB;IACtC,cAAc,EAAE,0CAA0C;IAC1D,gBAAgB,EAAE,wHAAwH;IAC1I,mBAAmB,EAAE,kEAAkE;CACxF,CAAC,CAAA","sourcesContent":["/** Generated by release CI. Do not edit in a release checkout. */\nexport interface EngineReleaseMetadata {\n schemaVersion: 1\n familyBaseVersion: string | null\n releaseIdentity: string | null\n releaseSetId: string | null\n sourceCommit: string | null\n otaManifestUrl: string | null\n otaManifestSha256: string | null\n}\n\nexport const ENGINE_RELEASE_METADATA: Readonly<EngineReleaseMetadata> = Object.freeze({\n \"schemaVersion\": 1,\n \"familyBaseVersion\": \"3.2.0\",\n \"releaseIdentity\": \"3.2.0-dev.235\",\n \"releaseSetId\": \"mentra-3.2.0-dev.235\",\n \"sourceCommit\": \"5f25e2687788b3d964e19d17fd6cd4139e3e677e\",\n \"otaManifestUrl\": \"https://github.com/Mentra-Community/MentraOS/releases/download/mentra-builds-v3.2.0/mentra-live-ota-3.2.0-dev.235.json\",\n \"otaManifestSha256\": \"a9e9ebec66e2f638ab89f446d87925cdc2c85abf3091ed33e76f01986e658ca7\"\n})\n"]}
1
+ {"version":3,"file":"releaseMetadata.js","sourceRoot":"","sources":["../../src/generated/releaseMetadata.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,uBAAuB,GAAoC,MAAM,CAAC,MAAM,CAAC;IACpF,eAAe,EAAE,CAAC;IAClB,mBAAmB,EAAE,OAAO;IAC5B,iBAAiB,EAAE,eAAe;IAClC,cAAc,EAAE,sBAAsB;IACtC,cAAc,EAAE,0CAA0C;IAC1D,gBAAgB,EAAE,wHAAwH;IAC1I,mBAAmB,EAAE,kEAAkE;CACxF,CAAC,CAAA","sourcesContent":["/** Generated by release CI. Do not edit in a release checkout. */\nexport interface EngineReleaseMetadata {\n schemaVersion: 1\n familyBaseVersion: string | null\n releaseIdentity: string | null\n releaseSetId: string | null\n sourceCommit: string | null\n otaManifestUrl: string | null\n otaManifestSha256: string | null\n}\n\nexport const ENGINE_RELEASE_METADATA: Readonly<EngineReleaseMetadata> = Object.freeze({\n \"schemaVersion\": 1,\n \"familyBaseVersion\": \"3.2.0\",\n \"releaseIdentity\": \"3.2.0-dev.247\",\n \"releaseSetId\": \"mentra-3.2.0-dev.247\",\n \"sourceCommit\": \"2be1b25e83b0c8db5cef39294c93b0a3f9ec7aef\",\n \"otaManifestUrl\": \"https://github.com/Mentra-Community/MentraOS/releases/download/mentra-builds-v3.2.0/mentra-live-ota-3.2.0-dev.247.json\",\n \"otaManifestSha256\": \"cba0e05a180f92e98e3bf47d0acdba2ae81cc79788da1393e80334fb5b26093b\"\n})\n"]}
@@ -51,6 +51,15 @@ export interface MeetingCapabilities {
51
51
  hangUpForEveryone: MeetingCapability;
52
52
  }
53
53
  export declare function parseMeetingCapabilities(raw: unknown): MeetingCapabilities | undefined;
54
+ /**
55
+ * Read the ACS `CallEndReason` off a native state event.
56
+ *
57
+ * Native flattens it into `endReason_code` / `endReason_subcode` / `endReason_message` rather than
58
+ * a nested object, because the Expo bridge drops nested nulls. Anything non-numeric is discarded:
59
+ * a code that arrived as a string would compare unequal to every entry in the lookup tables and
60
+ * classify a known failure as unknown, which is worse than having no code at all.
61
+ */
62
+ export declare function parseMeetingEndReason(event: Record<string, unknown>): MeetingEndReason | undefined;
54
63
  export interface MeetingState {
55
64
  state: MeetingPhase;
56
65
  muted: boolean;
@@ -78,6 +87,21 @@ export interface MeetingState {
78
87
  * so a consumer keeps the last one it saw rather than treating its absence as a reset.
79
88
  */
80
89
  softap?: SoftapProgress;
90
+ /**
91
+ * ACS `CallEndReason`, forwarded numerically.
92
+ *
93
+ * It is the only machine-readable statement of *why* a join failed, and a miniapp cannot tell a
94
+ * dead meeting link from a dropped network any other way — the human message is localised and
95
+ * reworded between SDK releases, so matching on it would turn an outage into "your link is
96
+ * broken" the first time Microsoft rephrases a sentence.
97
+ */
98
+ endReason?: MeetingEndReason;
99
+ }
100
+ /** Numeric ACS `CallEndReason`. `message` is for logs and bug reports only, never for branching. */
101
+ export interface MeetingEndReason {
102
+ code?: number;
103
+ subcode?: number;
104
+ message?: string;
81
105
  }
82
106
  /**
83
107
  * The call microphone is [ACS_CALL_MIC], and `preferred_mic` governs MentraOS STT capture rather
@@ -151,6 +175,15 @@ export interface DefaultNetworkStatus {
151
175
  usable: boolean;
152
176
  detail: string;
153
177
  }
178
+ /**
179
+ * Which path the wearer took into the call.
180
+ *
181
+ * Diagnostic only — nothing behaves differently — but it is carried all the way to the native
182
+ * traces because the open question about video quality is exactly "do these two differ", and a
183
+ * log that cannot separate them cannot answer it.
184
+ */
185
+ export type AcsCallOrigin = "created" | "joined" | "unknown";
186
+ export declare function parseAcsCallOrigin(value: unknown): AcsCallOrigin;
154
187
  type NativeModule = {
155
188
  prepareAgent?(options: {
156
189
  token: string;
@@ -167,6 +200,7 @@ type NativeModule = {
167
200
  audioSource?: "glasses" | "phone";
168
201
  audioDelayMs?: number;
169
202
  video?: AcsOutgoingVideo;
203
+ origin?: AcsCallOrigin;
170
204
  }): Promise<MeetingState & {
171
205
  ingestUrl?: string;
172
206
  }>;
@@ -184,6 +218,20 @@ type NativeModule = {
184
218
  }): Promise<{
185
219
  completed: boolean;
186
220
  }>;
221
+ /**
222
+ * Wait for the SoftAP WHIP listener's port. `closed: false` means it is still held.
223
+ *
224
+ * Separate from [leaveAndAwait] because the listener outlives the ACS teardown on purpose: it
225
+ * answers `410` for a few seconds so an in-flight request from the glasses gets a status rather
226
+ * than a reset. Absent on natives that predate the barrier.
227
+ */
228
+ awaitIngestClosed?(options: {
229
+ timeoutMs: number;
230
+ }): Promise<{
231
+ closed: boolean;
232
+ }>;
233
+ /** Drop the retiring WHIP listener now, skipping its grace period. */
234
+ forceCloseIngest?(): Promise<void>;
187
235
  /**
188
236
  * End the group call for everyone, then tear this device down. Rejects when the capability is
189
237
  * denied or ACS refuses — and has still left the call. Absent on natives that predate End.
@@ -200,6 +248,8 @@ type NativeModule = {
200
248
  */
201
249
  joinScopedNetwork?(ssid: string, passphrase: string): Promise<string>;
202
250
  joinScopedNetworkWithGateway?(ssid: string, passphrase: string, gateway: string): Promise<string>;
251
+ /** Is this phone's Wi-Fi radio on? Absent on natives that predate the preflight. */
252
+ isWifiEnabled?(): Promise<boolean>;
203
253
  beginTrace?(traceId: string): Promise<void>;
204
254
  leaveScopedNetwork?(): Promise<void>;
205
255
  cancelScopedNetworkJoin?(): Promise<void>;
@@ -305,6 +355,8 @@ declare class AcsMeetingService {
305
355
  * wearer's voice at a native session that has already left the meeting.
306
356
  */
307
357
  private callGeneration;
358
+ /** Stamped on the host-side state traces so they can be grouped the same way the native ones are. */
359
+ private callOrigin;
308
360
  private micTransport;
309
361
  private micSub;
310
362
  /** True between the pin/requirement being taken and released, so release is exactly once. */
@@ -338,6 +390,23 @@ declare class AcsMeetingService {
338
390
  * publish video only. Read by the SoftAP orchestrator between the meeting join and the publish.
339
391
  */
340
392
  glassesLc3UplinkActive(): boolean;
393
+ /**
394
+ * Has the SoftAP video receiver released its port?
395
+ *
396
+ * A native that cannot answer reports `true`: it also predates the tombstone this waits out, so
397
+ * there is nothing for the barrier to be waiting on.
398
+ */
399
+ awaitIngestClosed(timeoutMs: number): Promise<boolean>;
400
+ /** Close the retiring WHIP listener now. No-op on natives without it. */
401
+ forceCloseIngest(): Promise<void>;
402
+ /**
403
+ * Is this phone's Wi-Fi radio on?
404
+ *
405
+ * `null` means the question cannot be answered on this host — iOS, or a native that predates the
406
+ * preflight — and callers must treat that as "carry on", not as "off". Refusing a call because
407
+ * we could not ask would break every platform that never had the problem.
408
+ */
409
+ isWifiEnabled(): Promise<boolean | null>;
341
410
  /**
342
411
  * Join the glasses hotspot as a scoped, internet-less network, returning this phone's address on
343
412
  * it. Called before the ACS join, because the local WHIP listener has to bind to that address.
@@ -407,6 +476,7 @@ declare class AcsMeetingService {
407
476
  videoSource: AcsVideoSource;
408
477
  displayName?: string;
409
478
  video?: AcsOutgoingVideo;
479
+ origin?: AcsCallOrigin;
410
480
  }): Promise<MeetingState>;
411
481
  leave(packageName: string): Promise<void>;
412
482
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AcsMeetingService.d.ts","sourceRoot":"","sources":["../../src/services/AcsMeetingService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcsMeetingService.d.ts","sourceRoot":"","sources":["../../src/services/AcsMeetingService.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,23 @@ export function parseMeetingCapabilities(raw) {
28
28
  },
29
29
  };
30
30
  }
31
+ /**
32
+ * Read the ACS `CallEndReason` off a native state event.
33
+ *
34
+ * Native flattens it into `endReason_code` / `endReason_subcode` / `endReason_message` rather than
35
+ * a nested object, because the Expo bridge drops nested nulls. Anything non-numeric is discarded:
36
+ * a code that arrived as a string would compare unequal to every entry in the lookup tables and
37
+ * classify a known failure as unknown, which is worse than having no code at all.
38
+ */
39
+ export function parseMeetingEndReason(event) {
40
+ const num = (value) => (typeof value === "number" && Number.isFinite(value) ? value : undefined);
41
+ const code = num(event.endReason_code);
42
+ const subcode = num(event.endReason_subcode);
43
+ const message = typeof event.endReason_message === "string" ? event.endReason_message : undefined;
44
+ if (code === undefined && subcode === undefined && !message)
45
+ return undefined;
46
+ return { ...(code !== undefined ? { code } : {}), ...(subcode !== undefined ? { subcode } : {}), ...(message ? { message } : {}) };
47
+ }
31
48
  /**
32
49
  * The call microphone is [ACS_CALL_MIC], and `preferred_mic` governs MentraOS STT capture rather
33
50
  * than this call.
@@ -170,6 +187,9 @@ export function parseAcsVideoSource(raw) {
170
187
  }
171
188
  throw new Error(`unsupported videoSource.type: ${String(value.type)}`);
172
189
  }
190
+ export function parseAcsCallOrigin(value) {
191
+ return value === "created" || value === "joined" ? value : "unknown";
192
+ }
173
193
  let nativeModule;
174
194
  function getNative() {
175
195
  if (nativeModule !== undefined)
@@ -319,6 +339,8 @@ class AcsMeetingService {
319
339
  * wearer's voice at a native session that has already left the meeting.
320
340
  */
321
341
  callGeneration = 0;
342
+ /** Stamped on the host-side state traces so they can be grouped the same way the native ones are. */
343
+ callOrigin = "unknown";
322
344
  micTransport = "whip";
323
345
  micSub = null;
324
346
  /** True between the pin/requirement being taken and released, so release is exactly once. */
@@ -362,6 +384,36 @@ class AcsMeetingService {
362
384
  glassesLc3UplinkActive() {
363
385
  return this.micTransport === "ble-lc3";
364
386
  }
387
+ /**
388
+ * Has the SoftAP video receiver released its port?
389
+ *
390
+ * A native that cannot answer reports `true`: it also predates the tombstone this waits out, so
391
+ * there is nothing for the barrier to be waiting on.
392
+ */
393
+ async awaitIngestClosed(timeoutMs) {
394
+ const native = getNative();
395
+ if (!native?.awaitIngestClosed)
396
+ return true;
397
+ const outcome = await native.awaitIngestClosed({ timeoutMs });
398
+ return outcome.closed;
399
+ }
400
+ /** Close the retiring WHIP listener now. No-op on natives without it. */
401
+ async forceCloseIngest() {
402
+ await getNative()?.forceCloseIngest?.();
403
+ }
404
+ /**
405
+ * Is this phone's Wi-Fi radio on?
406
+ *
407
+ * `null` means the question cannot be answered on this host — iOS, or a native that predates the
408
+ * preflight — and callers must treat that as "carry on", not as "off". Refusing a call because
409
+ * we could not ask would break every platform that never had the problem.
410
+ */
411
+ async isWifiEnabled() {
412
+ const native = getNative();
413
+ if (!native?.isWifiEnabled)
414
+ return null;
415
+ return await native.isWifiEnabled();
416
+ }
365
417
  /**
366
418
  * Join the glasses hotspot as a scoped, internet-less network, returning this phone's address on
367
419
  * it. Called before the ACS join, because the local WHIP listener has to bind to that address.
@@ -601,6 +653,8 @@ class AcsMeetingService {
601
653
  preferredMic: useSettingsStore.getState().getSetting(SETTINGS.preferred_mic.key),
602
654
  });
603
655
  const joinStartedAt = Date.now();
656
+ const origin = parseAcsCallOrigin(args.origin);
657
+ this.callOrigin = origin;
604
658
  softapTrace("acs_native_join", {
605
659
  packageName,
606
660
  generation,
@@ -609,6 +663,18 @@ class AcsMeetingService {
609
663
  micTransport: this.micTransport,
610
664
  audioDelayMs: lc3Uplink ? SOFTAP_LC3_AUDIO_DELAY_MS : 0,
611
665
  video: video ? `${video.width}x${video.height}@${video.fps}` : "default",
666
+ origin,
667
+ });
668
+ // Duplicated from the native `native_join_options` line on purpose: if the native trace is
669
+ // missing from a capture — a bug report with only the JS log, a crash before export — this is
670
+ // the only record of what the two paths actually asked for.
671
+ softapTrace("acs_join_options", {
672
+ origin,
673
+ transport: args.videoSource.type,
674
+ width: video?.width ?? 0,
675
+ height: video?.height ?? 0,
676
+ fps: video?.fps ?? 0,
677
+ maxBitrateBps: video?.maxBitrateBps ?? 0,
612
678
  });
613
679
  try {
614
680
  const state = await native.join({
@@ -618,6 +684,7 @@ class AcsMeetingService {
618
684
  videoSource: args.videoSource,
619
685
  displayName: args.displayName,
620
686
  audioSource: resolved.source,
687
+ origin,
621
688
  ...(lc3Uplink ? { audioDelayMs: SOFTAP_LC3_AUDIO_DELAY_MS } : {}),
622
689
  ...(video ? { video } : {}),
623
690
  });
@@ -1093,8 +1160,22 @@ class AcsMeetingService {
1093
1160
  }
1094
1161
  bindNative(native, packageName) {
1095
1162
  this.unbindNative();
1163
+ // Captured at bind, checked on every event. `unbindNative` removes the listener, but an event
1164
+ // already dispatched onto the JS queue still runs — and this is the one path where that lands
1165
+ // as the *previous* call's `disconnected` ending the call the wearer just started. Every other
1166
+ // callback that can outlive a session (mic PCM, the in-flight join) is fenced the same way.
1167
+ const generation = this.callGeneration;
1096
1168
  this.subscriptions = [
1097
1169
  native.addListener("onState", (event) => {
1170
+ if (generation !== this.callGeneration) {
1171
+ softapTraceFailure("softap_stale_callback", {
1172
+ source: "acs_state",
1173
+ generation,
1174
+ current: this.callGeneration,
1175
+ state: String(event.state ?? "unknown"),
1176
+ });
1177
+ return;
1178
+ }
1098
1179
  const audioSafety = parseAudioSafety(event.audioSafety);
1099
1180
  if (audioSafety === "unsafe") {
1100
1181
  console.error("[AcsMeeting] phase=audio-unsafe", {
@@ -1109,6 +1190,7 @@ class AcsMeetingService {
1109
1190
  ? { code: event.endReason_code, subcode: event.endReason_subcode }
1110
1191
  : undefined;
1111
1192
  const capabilities = parseMeetingCapabilities(event.capabilities);
1193
+ const endReason = parseMeetingEndReason(event);
1112
1194
  const state = {
1113
1195
  state: event.state ?? "idle",
1114
1196
  muted: Boolean(event.muted),
@@ -1124,10 +1206,24 @@ class AcsMeetingService {
1124
1206
  ...(mediaSourceReason ? { mediaSourceReason } : {}),
1125
1207
  ...(callEndReason ? { callEndReason } : {}),
1126
1208
  ...(participants ? { participants } : {}),
1209
+ ...(endReason ? { endReason } : {}),
1127
1210
  // Absent means unknown, so keep the last known verdict rather than clearing it.
1128
1211
  ...((capabilities ?? this.lastState.capabilities) ? { capabilities: capabilities ?? this.lastState.capabilities } : {}),
1129
1212
  };
1213
+ const previous = this.lastState.state;
1130
1214
  this.lastState = state;
1215
+ if (state.state !== previous) {
1216
+ // The host's own copy of the transition. Native already traces `acs_call_state` with
1217
+ // timings; this one survives a capture where the native trace is absent, and is the
1218
+ // line the miniapp's timeline is reconciled against.
1219
+ softapTrace("acs_state", {
1220
+ state: state.state,
1221
+ previous,
1222
+ origin: this.callOrigin,
1223
+ mediaSource: state.mediaSource ?? "unknown",
1224
+ micTransport: state.micTransport ?? "unknown",
1225
+ });
1226
+ }
1131
1227
  console.log("[AcsMeeting] phase=native-state", {
1132
1228
  state: state.state,
1133
1229
  muted: state.muted,
@@ -1140,6 +1236,7 @@ class AcsMeetingService {
1140
1236
  callEndReason: state.callEndReason,
1141
1237
  micTransport: state.micTransport,
1142
1238
  participants: participants?.length,
1239
+ endReason: endReason ? `${endReason.code ?? "?"}/${endReason.subcode ?? "?"}` : undefined,
1143
1240
  });
1144
1241
  this.settleFirstFrameWaiters(mediaSource);
1145
1242
  this.onState?.(packageName, state);