@mentra/miniapp 3.2.1-dev.277 → 3.2.1-dev.279

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.
@@ -16,6 +16,15 @@
16
16
  */
17
17
  import { MiniappSession } from "../session";
18
18
  import type { AudioChunkData, UnsubscribeFn, VadData } from "./events";
19
+ /** @internal Which microphone a session wants. */
20
+ export type MicAcquireSource = "glasses" | "phone";
21
+ /** @internal What the session is for. The host maps this to hardware settings. */
22
+ export type MicAcquireUseCase = "voice_call" | "transcription" | "voice_assistant" | "diagnostic";
23
+ /** @internal A held microphone session. Release is idempotent. */
24
+ export interface MicLease {
25
+ readonly sessionId: number;
26
+ release(): Promise<void>;
27
+ }
19
28
  export declare class MicModule {
20
29
  private readonly session;
21
30
  /** All active unsubscribe functions for stop() to tear down at once. */
@@ -48,6 +57,30 @@ export declare class MicModule {
48
57
  * Requires `MICROPHONE` in the miniapp manifest.
49
58
  */
50
59
  setLoudnessGateEnabled(enabled: boolean): Promise<void>;
60
+ /**
61
+ * Take a semantic microphone session.
62
+ *
63
+ * @internal Host-gated, not part of the documented miniapp surface. The
64
+ * `voice_call` use case is restricted to an allowlist of packages and
65
+ * `diagnostic` is engine-only; anything else is rejected with
66
+ * `PERMISSION_DENIED`.
67
+ *
68
+ * You say what you are doing; the Mentra App decides what that requires of
69
+ * the microphone hardware. There is deliberately no way to ask for a gain,
70
+ * a gate, or a threshold from here.
71
+ *
72
+ * Ordering contract for a meeting: acquire *before* `meeting.join()`, and
73
+ * release only *after* `meeting.leave()` resolves or after a terminal
74
+ * meeting state arrives. Releasing earlier unpins the microphone while the
75
+ * call is still reading it, and the call reports the wearer's microphone as
76
+ * unavailable during what was a normal hang-up.
77
+ *
78
+ * Requires `MICROPHONE` in the miniapp manifest.
79
+ */
80
+ acquire(options: {
81
+ source: MicAcquireSource;
82
+ useCase: MicAcquireUseCase;
83
+ }): Promise<MicLease>;
51
84
  /**
52
85
  * Tear down every subscription this module owns. Useful when a component
53
86
  * is unmounting and wants to free everything at once without tracking
@@ -1 +1 @@
1
- {"version":3,"file":"mic.d.ts","sourceRoot":"","sources":["../../src/modules/mic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAC,cAAc,EAAC,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAC,cAAc,EAAE,aAAa,EAAE,OAAO,EAAC,MAAM,UAAU,CAAA;AAEpE,qBAAa,SAAS;IAIR,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;gBAErB,OAAO,EAAE,cAAc;IAEpD;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,aAAa;IAIhE;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,GAAG,aAAa;IAIpE;;;;;;;OAOG;IACH,gCAAgC,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjE;;;;;;OAMG;IACH,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvD;;;;OAIG;IACH,IAAI,IAAI,IAAI;IAWZ,mEAAmE;IACnE,IAAI,aAAa,IAAI,OAAO,CAE3B;IAID,OAAO,CAAC,KAAK;CAOd"}
1
+ {"version":3,"file":"mic.d.ts","sourceRoot":"","sources":["../../src/modules/mic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAC,cAAc,EAAC,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAC,cAAc,EAAE,aAAa,EAAE,OAAO,EAAC,MAAM,UAAU,CAAA;AAEpE,kDAAkD;AAClD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAAA;AAElD,kFAAkF;AAClF,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,eAAe,GAAG,iBAAiB,GAAG,YAAY,CAAA;AAEjG,kEAAkE;AAClE,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED,qBAAa,SAAS;IAIR,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;gBAErB,OAAO,EAAE,cAAc;IAEpD;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,aAAa;IAIhE;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,GAAG,aAAa;IAIpE;;;;;;;OAOG;IACH,gCAAgC,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjE;;;;;;OAMG;IACH,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvD;;;;;;;;;;;;;;;;;;;OAmBG;IACG,OAAO,CAAC,OAAO,EAAE;QAAC,MAAM,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,iBAAiB,CAAA;KAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IA0BjG;;;;OAIG;IACH,IAAI,IAAI,IAAI;IAWZ,mEAAmE;IACnE,IAAI,aAAa,IAAI,OAAO,CAE3B;IAID,OAAO,CAAC,KAAK;CAOd"}
@@ -62,6 +62,52 @@ export class MicModule {
62
62
  enabled,
63
63
  });
64
64
  }
65
+ /**
66
+ * Take a semantic microphone session.
67
+ *
68
+ * @internal Host-gated, not part of the documented miniapp surface. The
69
+ * `voice_call` use case is restricted to an allowlist of packages and
70
+ * `diagnostic` is engine-only; anything else is rejected with
71
+ * `PERMISSION_DENIED`.
72
+ *
73
+ * You say what you are doing; the Mentra App decides what that requires of
74
+ * the microphone hardware. There is deliberately no way to ask for a gain,
75
+ * a gate, or a threshold from here.
76
+ *
77
+ * Ordering contract for a meeting: acquire *before* `meeting.join()`, and
78
+ * release only *after* `meeting.leave()` resolves or after a terminal
79
+ * meeting state arrives. Releasing earlier unpins the microphone while the
80
+ * call is still reading it, and the call reports the wearer's microphone as
81
+ * unavailable during what was a normal hang-up.
82
+ *
83
+ * Requires `MICROPHONE` in the miniapp manifest.
84
+ */
85
+ async acquire(options) {
86
+ const result = await this.session.sendRequest({
87
+ type: MiniappRequestType.MIC_ACQUIRE,
88
+ source: options.source,
89
+ useCase: options.useCase,
90
+ });
91
+ // A host that predates this request resolves it with nothing rather than rejecting. Say so,
92
+ // instead of throwing a destructuring error the caller cannot act on.
93
+ if (typeof result?.sessionId !== "number") {
94
+ throw new Error("This version of the Mentra App does not support microphone sessions");
95
+ }
96
+ const { sessionId } = result;
97
+ let released = false;
98
+ return {
99
+ sessionId,
100
+ release: async () => {
101
+ if (released)
102
+ return;
103
+ released = true;
104
+ await this.session.sendRequest({
105
+ type: MiniappRequestType.MIC_RELEASE,
106
+ sessionId,
107
+ });
108
+ },
109
+ };
110
+ }
65
111
  /**
66
112
  * Tear down every subscription this module owns. Useful when a component
67
113
  * is unmounting and wants to free everything at once without tracking
@@ -1 +1 @@
1
- {"version":3,"file":"mic.js","sourceRoot":"","sources":["../../src/modules/mic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,aAAa,CAAA;AAIjE,MAAM,OAAO,SAAS;IAIpB,YAA6B,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;QAHpD,wEAAwE;QACvD,WAAM,GAAG,IAAI,GAAG,EAAiB,CAAA;IAEK,CAAC;IAExD;;;OAGG;IACH,eAAe,CAAC,OAAgC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAkC,CAAC,CAAC,CAAA;IACvG,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,OAAuC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,EAAE,OAAkC,CAAC,CAAC,CAAA;IAC/G,CAAC;IAED;;;;;;;OAOG;IACH,gCAAgC,CAAC,OAAgB;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAO;YACpC,IAAI,EAAE,kBAAkB,CAAC,mBAAmB;YAC5C,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IACH,sBAAsB,CAAC,OAAgB;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAO;YACpC,IAAI,EAAE,kBAAkB,CAAC,6BAA6B;YACtD,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,CAAC,EAAE,CAAA;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;IAED,mEAAmE;IACnE,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAA;IAC1D,CAAC;IAED,2EAA2E;IAEnE,KAAK,CAAC,KAAoB;QAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACzB,KAAK,EAAE,CAAA;QACT,CAAC,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"mic.js","sourceRoot":"","sources":["../../src/modules/mic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,aAAa,CAAA;AAgBjE,MAAM,OAAO,SAAS;IAIpB,YAA6B,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;QAHpD,wEAAwE;QACvD,WAAM,GAAG,IAAI,GAAG,EAAiB,CAAA;IAEK,CAAC;IAExD;;;OAGG;IACH,eAAe,CAAC,OAAgC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAkC,CAAC,CAAC,CAAA;IACvG,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,OAAuC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,EAAE,OAAkC,CAAC,CAAC,CAAA;IAC/G,CAAC;IAED;;;;;;;OAOG;IACH,gCAAgC,CAAC,OAAgB;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAO;YACpC,IAAI,EAAE,kBAAkB,CAAC,mBAAmB;YAC5C,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;OAMG;IACH,sBAAsB,CAAC,OAAgB;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAO;YACpC,IAAI,EAAE,kBAAkB,CAAC,6BAA6B;YACtD,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,OAAO,CAAC,OAA+D;QAC3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAkC;YAC7E,IAAI,EAAE,kBAAkB,CAAC,WAAW;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAA;QACF,4FAA4F;QAC5F,sEAAsE;QACtE,IAAI,OAAO,MAAM,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA;QACxF,CAAC;QACD,MAAM,EAAC,SAAS,EAAC,GAAG,MAAM,CAAA;QAC1B,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,OAAO;YACL,SAAS;YACT,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,IAAI,QAAQ;oBAAE,OAAM;gBACpB,QAAQ,GAAG,IAAI,CAAA;gBACf,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAO;oBACnC,IAAI,EAAE,kBAAkB,CAAC,WAAW;oBACpC,SAAS;iBACV,CAAC,CAAA;YACJ,CAAC;SACF,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,CAAC,EAAE,CAAA;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;IAED,mEAAmE;IACnE,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAA;IAC1D,CAAC;IAED,2EAA2E;IAEnE,KAAK,CAAC,KAAoB;QAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACzB,KAAK,EAAE,CAAA;QACT,CAAC,CAAA;IACH,CAAC;CACF"}
@@ -97,6 +97,14 @@ export declare enum MiniappRequestType {
97
97
  MIC_SET_VAD_ENABLED = "miniapp_mic_set_vad_enabled",
98
98
  /** Explicitly enable/disable the center-mic loudness gate ("Barrier"). */
99
99
  MIC_SET_LOUDNESS_GATE_ENABLED = "miniapp_mic_set_loudness_gate_enabled",
100
+ /**
101
+ * Take a semantic microphone session. The host decides what the use case
102
+ * requires of the hardware; the caller never names a gain or a threshold.
103
+ * Host-gated per use case — see `MicModule.acquire`.
104
+ */
105
+ MIC_ACQUIRE = "miniapp_mic_acquire",
106
+ /** Release a session taken with MIC_ACQUIRE. */
107
+ MIC_RELEASE = "miniapp_mic_release",
100
108
  /**
101
109
  * Enable or disable Wi-Fi ADB (wireless debugging) on Mentra Live.
102
110
  * SYSTEM-only — host rejects with NOT_PERMITTED for non-system callers.
@@ -295,6 +303,10 @@ export declare enum MiniappErrorCode {
295
303
  TTS_LOCAL_UNAVAILABLE = "TTS_LOCAL_UNAVAILABLE",
296
304
  /** Not connected / pre-ACK and transport closed. */
297
305
  NOT_CONNECTED = "NOT_CONNECTED",
306
+ /** A meeting join needs a microphone session the caller does not hold. */
307
+ MIC_SESSION_REQUIRED = "MIC_SESSION_REQUIRED",
308
+ /** A different microphone source is already live; only one can be pinned. */
309
+ MIC_SOURCE_CONFLICT = "MIC_SOURCE_CONFLICT",
298
310
  /**
299
311
  * Caller is not a system app — SYSTEM-only APIs (interop list/start/stop/invoke,
300
312
  * setWifiAdbState) reject with this code.
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/dist/protocol.js CHANGED
@@ -101,6 +101,14 @@ export var MiniappRequestType;
101
101
  MiniappRequestType["MIC_SET_VAD_ENABLED"] = "miniapp_mic_set_vad_enabled";
102
102
  /** Explicitly enable/disable the center-mic loudness gate ("Barrier"). */
103
103
  MiniappRequestType["MIC_SET_LOUDNESS_GATE_ENABLED"] = "miniapp_mic_set_loudness_gate_enabled";
104
+ /**
105
+ * Take a semantic microphone session. The host decides what the use case
106
+ * requires of the hardware; the caller never names a gain or a threshold.
107
+ * Host-gated per use case — see `MicModule.acquire`.
108
+ */
109
+ MiniappRequestType["MIC_ACQUIRE"] = "miniapp_mic_acquire";
110
+ /** Release a session taken with MIC_ACQUIRE. */
111
+ MiniappRequestType["MIC_RELEASE"] = "miniapp_mic_release";
104
112
  /**
105
113
  * Enable or disable Wi-Fi ADB (wireless debugging) on Mentra Live.
106
114
  * SYSTEM-only — host rejects with NOT_PERMITTED for non-system callers.
@@ -319,6 +327,10 @@ export var MiniappErrorCode;
319
327
  MiniappErrorCode["TTS_LOCAL_UNAVAILABLE"] = "TTS_LOCAL_UNAVAILABLE";
320
328
  /** Not connected / pre-ACK and transport closed. */
321
329
  MiniappErrorCode["NOT_CONNECTED"] = "NOT_CONNECTED";
330
+ /** A meeting join needs a microphone session the caller does not hold. */
331
+ MiniappErrorCode["MIC_SESSION_REQUIRED"] = "MIC_SESSION_REQUIRED";
332
+ /** A different microphone source is already live; only one can be pinned. */
333
+ MiniappErrorCode["MIC_SOURCE_CONFLICT"] = "MIC_SOURCE_CONFLICT";
322
334
  // ----- Inter-miniapp interop -----
323
335
  /**
324
336
  * Caller is not a system app — SYSTEM-only APIs (interop list/start/stop/invoke,
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mentra/miniapp",
3
- "version": "3.2.1-dev.277",
3
+ "version": "3.2.1-dev.279",
4
4
  "description": "SDK for building MentraOS local miniapps (browser/WebView)",
5
5
  "author": "Mentra Labs",
6
6
  "license": "Apache-2.0",
@@ -57,7 +57,7 @@
57
57
  }
58
58
  },
59
59
  "dependencies": {
60
- "@mentra/cloud-protocol": "3.2.1-dev.277",
60
+ "@mentra/cloud-protocol": "3.2.1-dev.279",
61
61
  "eventemitter3": "^5.0.1"
62
62
  },
63
63
  "devDependencies": {
@@ -19,6 +19,18 @@ import {MiniappRequestType, MiniappStreamType} from "../protocol"
19
19
  import {MiniappSession} from "../session"
20
20
  import type {AudioChunkData, UnsubscribeFn, VadData} from "./events"
21
21
 
22
+ /** @internal Which microphone a session wants. */
23
+ export type MicAcquireSource = "glasses" | "phone"
24
+
25
+ /** @internal What the session is for. The host maps this to hardware settings. */
26
+ export type MicAcquireUseCase = "voice_call" | "transcription" | "voice_assistant" | "diagnostic"
27
+
28
+ /** @internal A held microphone session. Release is idempotent. */
29
+ export interface MicLease {
30
+ readonly sessionId: number
31
+ release(): Promise<void>
32
+ }
33
+
22
34
  export class MicModule {
23
35
  /** All active unsubscribe functions for stop() to tear down at once. */
24
36
  private readonly unsubs = new Set<UnsubscribeFn>()
@@ -70,6 +82,52 @@ export class MicModule {
70
82
  })
71
83
  }
72
84
 
85
+ /**
86
+ * Take a semantic microphone session.
87
+ *
88
+ * @internal Host-gated, not part of the documented miniapp surface. The
89
+ * `voice_call` use case is restricted to an allowlist of packages and
90
+ * `diagnostic` is engine-only; anything else is rejected with
91
+ * `PERMISSION_DENIED`.
92
+ *
93
+ * You say what you are doing; the Mentra App decides what that requires of
94
+ * the microphone hardware. There is deliberately no way to ask for a gain,
95
+ * a gate, or a threshold from here.
96
+ *
97
+ * Ordering contract for a meeting: acquire *before* `meeting.join()`, and
98
+ * release only *after* `meeting.leave()` resolves or after a terminal
99
+ * meeting state arrives. Releasing earlier unpins the microphone while the
100
+ * call is still reading it, and the call reports the wearer's microphone as
101
+ * unavailable during what was a normal hang-up.
102
+ *
103
+ * Requires `MICROPHONE` in the miniapp manifest.
104
+ */
105
+ async acquire(options: {source: MicAcquireSource; useCase: MicAcquireUseCase}): Promise<MicLease> {
106
+ const result = await this.session.sendRequest<{sessionId: number} | undefined>({
107
+ type: MiniappRequestType.MIC_ACQUIRE,
108
+ source: options.source,
109
+ useCase: options.useCase,
110
+ })
111
+ // A host that predates this request resolves it with nothing rather than rejecting. Say so,
112
+ // instead of throwing a destructuring error the caller cannot act on.
113
+ if (typeof result?.sessionId !== "number") {
114
+ throw new Error("This version of the Mentra App does not support microphone sessions")
115
+ }
116
+ const {sessionId} = result
117
+ let released = false
118
+ return {
119
+ sessionId,
120
+ release: async () => {
121
+ if (released) return
122
+ released = true
123
+ await this.session.sendRequest<void>({
124
+ type: MiniappRequestType.MIC_RELEASE,
125
+ sessionId,
126
+ })
127
+ },
128
+ }
129
+ }
130
+
73
131
  /**
74
132
  * Tear down every subscription this module owns. Useful when a component
75
133
  * is unmounting and wants to free everything at once without tracking
package/src/protocol.ts CHANGED
@@ -119,6 +119,14 @@ export enum MiniappRequestType {
119
119
  MIC_SET_VAD_ENABLED = "miniapp_mic_set_vad_enabled",
120
120
  /** Explicitly enable/disable the center-mic loudness gate ("Barrier"). */
121
121
  MIC_SET_LOUDNESS_GATE_ENABLED = "miniapp_mic_set_loudness_gate_enabled",
122
+ /**
123
+ * Take a semantic microphone session. The host decides what the use case
124
+ * requires of the hardware; the caller never names a gain or a threshold.
125
+ * Host-gated per use case — see `MicModule.acquire`.
126
+ */
127
+ MIC_ACQUIRE = "miniapp_mic_acquire",
128
+ /** Release a session taken with MIC_ACQUIRE. */
129
+ MIC_RELEASE = "miniapp_mic_release",
122
130
 
123
131
  /**
124
132
  * Enable or disable Wi-Fi ADB (wireless debugging) on Mentra Live.
@@ -376,6 +384,12 @@ export enum MiniappErrorCode {
376
384
  /** Not connected / pre-ACK and transport closed. */
377
385
  NOT_CONNECTED = "NOT_CONNECTED",
378
386
 
387
+ /** A meeting join needs a microphone session the caller does not hold. */
388
+ MIC_SESSION_REQUIRED = "MIC_SESSION_REQUIRED",
389
+
390
+ /** A different microphone source is already live; only one can be pinned. */
391
+ MIC_SOURCE_CONFLICT = "MIC_SOURCE_CONFLICT",
392
+
379
393
  // ----- Inter-miniapp interop -----
380
394
  /**
381
395
  * Caller is not a system app — SYSTEM-only APIs (interop list/start/stop/invoke,