@mentra/sdk 2.1.1 โ†’ 2.1.2-alpha.1

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 (60) hide show
  1. package/dist/app/session/events.d.ts +4 -2
  2. package/dist/app/session/events.d.ts.map +1 -1
  3. package/dist/app/session/events.js +3 -0
  4. package/dist/app/session/index.d.ts +21 -5
  5. package/dist/app/session/index.d.ts.map +1 -1
  6. package/dist/app/session/index.js +80 -21
  7. package/dist/app/session/modules/audio.d.ts +190 -0
  8. package/dist/app/session/modules/audio.d.ts.map +1 -0
  9. package/dist/app/session/modules/audio.js +317 -0
  10. package/dist/app/session/modules/camera-managed-extension.d.ts +154 -0
  11. package/dist/app/session/modules/camera-managed-extension.d.ts.map +1 -0
  12. package/dist/app/session/modules/camera-managed-extension.js +239 -0
  13. package/dist/app/session/modules/camera.d.ts +55 -1
  14. package/dist/app/session/modules/camera.d.ts.map +1 -1
  15. package/dist/app/session/modules/camera.js +72 -0
  16. package/dist/app/session/modules/index.d.ts +4 -0
  17. package/dist/app/session/modules/index.d.ts.map +1 -0
  18. package/dist/app/session/modules/index.js +19 -0
  19. package/dist/app/session/modules/location.d.ts +16 -0
  20. package/dist/app/session/modules/location.d.ts.map +1 -0
  21. package/dist/app/session/modules/location.js +55 -0
  22. package/dist/app/webview/index.d.ts.map +1 -1
  23. package/dist/app/webview/index.js +0 -1
  24. package/dist/examples/managed-rtmp-streaming-example.d.ts +2 -0
  25. package/dist/examples/managed-rtmp-streaming-example.d.ts.map +1 -0
  26. package/dist/examples/managed-rtmp-streaming-example.js +158 -0
  27. package/dist/examples/managed-rtmp-streaming-with-restream-example.d.ts +11 -0
  28. package/dist/examples/managed-rtmp-streaming-with-restream-example.d.ts.map +1 -0
  29. package/dist/examples/managed-rtmp-streaming-with-restream-example.js +124 -0
  30. package/dist/index.d.ts +4 -3
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +5 -1
  33. package/dist/types/enums.d.ts +3 -1
  34. package/dist/types/enums.d.ts.map +1 -1
  35. package/dist/types/enums.js +2 -0
  36. package/dist/types/index.d.ts +6 -6
  37. package/dist/types/index.d.ts.map +1 -1
  38. package/dist/types/index.js +7 -1
  39. package/dist/types/message-types.d.ts +16 -4
  40. package/dist/types/message-types.d.ts.map +1 -1
  41. package/dist/types/message-types.js +19 -3
  42. package/dist/types/messages/app-to-cloud.d.ts +76 -3
  43. package/dist/types/messages/app-to-cloud.d.ts.map +1 -1
  44. package/dist/types/messages/app-to-cloud.js +28 -0
  45. package/dist/types/messages/cloud-to-app.d.ts +45 -1
  46. package/dist/types/messages/cloud-to-app.d.ts.map +1 -1
  47. package/dist/types/messages/cloud-to-app.js +8 -0
  48. package/dist/types/messages/cloud-to-glasses.d.ts +38 -1
  49. package/dist/types/messages/cloud-to-glasses.d.ts.map +1 -1
  50. package/dist/types/messages/cloud-to-glasses.js +8 -0
  51. package/dist/types/messages/glasses-to-cloud.d.ts +21 -4
  52. package/dist/types/messages/glasses-to-cloud.d.ts.map +1 -1
  53. package/dist/types/messages/glasses-to-cloud.js +7 -3
  54. package/dist/types/models.d.ts +13 -0
  55. package/dist/types/models.d.ts.map +1 -1
  56. package/dist/types/models.js +9 -0
  57. package/dist/types/streams.d.ts +7 -1
  58. package/dist/types/streams.d.ts.map +1 -1
  59. package/dist/types/streams.js +6 -2
  60. package/package.json +1 -1
@@ -2,7 +2,7 @@
2
2
  * ๐ŸŽฎ Event Manager Module
3
3
  */
4
4
  import EventEmitter from 'events';
5
- import { StreamType, ExtendedStreamType, AppSettings, WebSocketError, ButtonPress, HeadPosition, PhoneNotification, TranscriptionData, TranslationData, GlassesBatteryUpdate, PhoneBatteryUpdate, GlassesConnectionState, LocationUpdate, Vad, NotificationDismissed, AudioChunk, CalendarEvent, VpsCoordinates, CustomMessage, RtmpStreamStatus, PhotoTaken } from '../../types';
5
+ import { StreamType, ExtendedStreamType, AppSettings, WebSocketError, ButtonPress, HeadPosition, PhoneNotification, TranscriptionData, TranslationData, GlassesBatteryUpdate, PhoneBatteryUpdate, GlassesConnectionState, LocationUpdate, Vad, AudioChunk, CalendarEvent, VpsCoordinates, CustomMessage, RtmpStreamStatus, PhotoTaken, ManagedStreamStatus, PhoneNotificationDismissed } from '../../types';
6
6
  import { DashboardMode } from '../../types/dashboard';
7
7
  import { PermissionErrorDetail } from '../../types/messages/cloud-to-app';
8
8
  /** ๐ŸŽฏ Type-safe event handler function */
@@ -52,10 +52,11 @@ export interface StreamDataTypes {
52
52
  [StreamType.LOCATION_UPDATE]: LocationUpdate;
53
53
  [StreamType.CALENDAR_EVENT]: CalendarEvent;
54
54
  [StreamType.VAD]: Vad;
55
- [StreamType.NOTIFICATION_DISMISSED]: NotificationDismissed;
55
+ [StreamType.PHONE_NOTIFICATION_DISMISSED]: PhoneNotificationDismissed;
56
56
  [StreamType.AUDIO_CHUNK]: AudioChunk;
57
57
  [StreamType.VIDEO]: ArrayBuffer;
58
58
  [StreamType.RTMP_STREAM_STATUS]: RtmpStreamStatus;
59
+ [StreamType.MANAGED_STREAM_STATUS]: ManagedStreamStatus;
59
60
  [StreamType.VPS_COORDINATES]: VpsCoordinates;
60
61
  [StreamType.PHOTO_TAKEN]: PhotoTaken;
61
62
  [StreamType.OPEN_DASHBOARD]: never;
@@ -95,6 +96,7 @@ export declare class EventManager {
95
96
  onHeadPosition(handler: Handler<HeadPosition>): () => void;
96
97
  onButtonPress(handler: Handler<ButtonPress>): () => void;
97
98
  onPhoneNotifications(handler: Handler<PhoneNotification>): () => void;
99
+ onPhoneNotificationDismissed(handler: Handler<PhoneNotificationDismissed>): () => void;
98
100
  onGlassesBattery(handler: Handler<GlassesBatteryUpdate>): () => void;
99
101
  onPhoneBattery(handler: Handler<PhoneBatteryUpdate>): () => void;
100
102
  onVoiceActivity(handler: Handler<Vad>): () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/app/session/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/app/session/events.ts"],"names":[],"mappings":"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"}
@@ -71,6 +71,9 @@ class EventManager {
71
71
  onPhoneNotifications(handler) {
72
72
  return this.addHandler(types_1.StreamType.PHONE_NOTIFICATION, handler);
73
73
  }
74
+ onPhoneNotificationDismissed(handler) {
75
+ return this.addHandler(types_1.StreamType.PHONE_NOTIFICATION_DISMISSED, handler);
76
+ }
74
77
  onGlassesBattery(handler) {
75
78
  return this.addHandler(types_1.StreamType.GLASSES_BATTERY_UPDATE, handler);
76
79
  }
@@ -1,8 +1,10 @@
1
1
  import { EventManager, EventData } from './events';
2
2
  import { LayoutManager } from './layouts';
3
3
  import { SettingsManager } from './settings';
4
+ import { LocationManager } from './modules/location';
4
5
  import { CameraModule } from './modules/camera';
5
- import { ExtendedStreamType, ButtonPress, HeadPosition, PhoneNotification, TranscriptionData, TranslationData, AppSettings, AppSetting, AppConfig, VpsCoordinates, PhotoTaken, Capabilities } from '../../types';
6
+ import { AudioManager } from './modules/audio';
7
+ import { ExtendedStreamType, ButtonPress, HeadPosition, PhoneNotification, PhoneNotificationDismissed, TranscriptionData, TranslationData, AppSettings, AppSetting, AppConfig, VpsCoordinates, PhotoTaken, SubscriptionRequest, Capabilities } from '../../types';
6
8
  import { DashboardAPI } from '../../types/dashboard';
7
9
  import { Logger } from 'pino';
8
10
  import { AppServer } from '../server';
@@ -71,6 +73,8 @@ export declare class AppSession {
71
73
  private reconnectAttempts;
72
74
  /** Active event subscriptions */
73
75
  private subscriptions;
76
+ /** Map to store rate options for streams */
77
+ private streamRates;
74
78
  /** Resource tracker for automatic cleanup */
75
79
  private resources;
76
80
  /** Internal settings storage - use public settings API instead */
@@ -95,8 +99,12 @@ export declare class AppSession {
95
99
  readonly settings: SettingsManager;
96
100
  /** ๐Ÿ“Š Dashboard management interface */
97
101
  readonly dashboard: DashboardAPI;
102
+ /** ๐Ÿ“ Location management interface */
103
+ readonly location: LocationManager;
98
104
  /** ๐Ÿ“ท Camera interface for photos and streaming */
99
105
  readonly camera: CameraModule;
106
+ /** ๐Ÿ”Š Audio interface for audio playback */
107
+ readonly audio: AudioManager;
100
108
  readonly appServer: AppServer;
101
109
  readonly logger: Logger;
102
110
  readonly userId: string;
@@ -159,6 +167,13 @@ export declare class AppSession {
159
167
  * @deprecated Use session.events.onPhoneNotifications() instead
160
168
  */
161
169
  onPhoneNotifications(handler: (data: PhoneNotification) => void): () => void;
170
+ /**
171
+ * ๐Ÿ“ฑ Listen for phone notification dismissed events
172
+ * @param handler - Function to handle notification dismissal data
173
+ * @returns Cleanup function to remove the handler
174
+ * @deprecated Use session.events.onPhoneNotificationDismissed() instead
175
+ */
176
+ onPhoneNotificationDismissed(handler: (data: PhoneNotificationDismissed) => void): () => void;
162
177
  /**
163
178
  * ๐Ÿ“ก Listen for VPS coordinates updates
164
179
  * @param handler - Function to handle VPS coordinates
@@ -175,14 +190,14 @@ export declare class AppSession {
175
190
  onPhotoTaken(handler: (data: PhotoTaken) => void): () => void;
176
191
  /**
177
192
  * ๐Ÿ“ฌ Subscribe to a specific event stream
178
- * @param type - Type of event to subscribe to
193
+ * @param sub - A string or a rich subscription object
179
194
  */
180
- subscribe(type: ExtendedStreamType): void;
195
+ subscribe(sub: SubscriptionRequest): void;
181
196
  /**
182
197
  * ๐Ÿ“ญ Unsubscribe from a specific event stream
183
- * @param type - Type of event to unsubscribe from
198
+ * @param sub - The subscription to remove
184
199
  */
185
- unsubscribe(type: ExtendedStreamType): void;
200
+ unsubscribe(sub: SubscriptionRequest): void;
186
201
  /**
187
202
  * ๐ŸŽฏ Generic event listener (pub/sub style)
188
203
  * @param event - Event name to listen for
@@ -416,4 +431,5 @@ export declare class TpaSession extends AppSession {
416
431
  constructor(config: TpaSessionConfig);
417
432
  }
418
433
  export { CameraModule, PhotoRequestOptions, RtmpStreamOptions } from './modules/camera';
434
+ export { AudioManager, AudioPlayOptions, AudioPlayResult, SpeakOptions } from './modules/audio';
419
435
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/session/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/session/index.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.CameraModule = exports.TpaSession = exports.AppSession = void 0;
6
+ exports.AudioManager = exports.CameraModule = exports.TpaSession = exports.AppSession = void 0;
7
7
  /**
8
8
  * ๐ŸŽฏ App Session Module
9
9
  *
@@ -14,11 +14,14 @@ const ws_1 = require("ws");
14
14
  const events_1 = require("./events");
15
15
  const layouts_1 = require("./layouts");
16
16
  const settings_1 = require("./settings");
17
+ const location_1 = require("./modules/location");
17
18
  const camera_1 = require("./modules/camera");
19
+ const audio_1 = require("./modules/audio");
18
20
  const resource_tracker_1 = require("../../utils/resource-tracker");
19
21
  const types_1 = require("../../types");
20
22
  const axios_1 = __importDefault(require("axios"));
21
23
  const events_2 = __importDefault(require("events"));
24
+ const node_fetch_1 = __importDefault(require("node-fetch"));
22
25
  // Import the cloud-to-app specific type guards
23
26
  const cloud_to_app_1 = require("../../types/messages/cloud-to-app");
24
27
  // List of event types that should never be subscribed to as streams
@@ -66,6 +69,8 @@ class AppSession {
66
69
  this.reconnectAttempts = 0;
67
70
  /** Active event subscriptions */
68
71
  this.subscriptions = new Set();
72
+ /** Map to store rate options for streams */
73
+ this.streamRates = new Map();
69
74
  /** Resource tracker for automatic cleanup */
70
75
  this.resources = new resource_tracker_1.ResourceTracker();
71
76
  /** Internal settings storage - use public settings API instead */
@@ -156,6 +161,10 @@ class AppSession {
156
161
  // Initialize camera module with session reference
157
162
  this.camera = new camera_1.CameraModule(this.config.packageName, this.sessionId || 'unknown-session-id', this.send.bind(this), this, // Pass session reference
158
163
  this.logger.child({ module: 'camera' }));
164
+ // Initialize audio module with session reference
165
+ this.audio = new audio_1.AudioManager(this.config.packageName, this.sessionId || 'unknown-session-id', this.send.bind(this), this, // Pass session reference
166
+ this.logger.child({ module: 'audio' }));
167
+ this.location = new location_1.LocationManager(this, this.send.bind(this));
159
168
  }
160
169
  /**
161
170
  * Get the current session ID
@@ -230,6 +239,15 @@ class AppSession {
230
239
  onPhoneNotifications(handler) {
231
240
  return this.events.onPhoneNotifications(handler);
232
241
  }
242
+ /**
243
+ * ๐Ÿ“ฑ Listen for phone notification dismissed events
244
+ * @param handler - Function to handle notification dismissal data
245
+ * @returns Cleanup function to remove the handler
246
+ * @deprecated Use session.events.onPhoneNotificationDismissed() instead
247
+ */
248
+ onPhoneNotificationDismissed(handler) {
249
+ return this.events.onPhoneNotificationDismissed(handler);
250
+ }
233
251
  /**
234
252
  * ๐Ÿ“ก Listen for VPS coordinates updates
235
253
  * @param handler - Function to handle VPS coordinates
@@ -255,28 +273,49 @@ class AppSession {
255
273
  // =====================================
256
274
  /**
257
275
  * ๐Ÿ“ฌ Subscribe to a specific event stream
258
- * @param type - Type of event to subscribe to
276
+ * @param sub - A string or a rich subscription object
259
277
  */
260
- subscribe(type) {
278
+ subscribe(sub) {
279
+ let type;
280
+ let rate;
281
+ if (typeof sub === 'string') {
282
+ type = sub;
283
+ }
284
+ else {
285
+ // it's a LocationStreamRequest object
286
+ type = sub.stream;
287
+ rate = sub.rate;
288
+ }
261
289
  if (APP_TO_APP_EVENT_TYPES.includes(type)) {
262
290
  this.logger.warn(`[AppSession] Attempted to subscribe to App-to-App event type '${type}', which is not a valid stream. Use the event handler (e.g., onAppMessage) instead.`);
263
291
  return;
264
292
  }
265
293
  this.subscriptions.add(type);
294
+ if (rate) {
295
+ this.streamRates.set(type, rate);
296
+ }
266
297
  if (this.ws?.readyState === 1) {
267
298
  this.updateSubscriptions();
268
299
  }
269
300
  }
270
301
  /**
271
302
  * ๐Ÿ“ญ Unsubscribe from a specific event stream
272
- * @param type - Type of event to unsubscribe from
303
+ * @param sub - The subscription to remove
273
304
  */
274
- unsubscribe(type) {
305
+ unsubscribe(sub) {
306
+ let type;
307
+ if (typeof sub === 'string') {
308
+ type = sub;
309
+ }
310
+ else {
311
+ type = sub.stream;
312
+ }
275
313
  if (APP_TO_APP_EVENT_TYPES.includes(type)) {
276
314
  this.logger.warn(`[AppSession] Attempted to unsubscribe from App-to-App event type '${type}', which is not a valid stream.`);
277
315
  return;
278
316
  }
279
317
  this.subscriptions.delete(type);
318
+ this.streamRates.delete(type); // also remove from our rate map
280
319
  if (this.ws?.readyState === 1) {
281
320
  this.updateSubscriptions();
282
321
  }
@@ -306,6 +345,10 @@ class AppSession {
306
345
  if (this.camera) {
307
346
  this.camera.updateSessionId(sessionId);
308
347
  }
348
+ // Update the sessionId in the audio module
349
+ if (this.audio) {
350
+ this.audio.updateSessionId(sessionId);
351
+ }
309
352
  return new Promise((resolve, reject) => {
310
353
  try {
311
354
  // Clear previous resources if reconnecting
@@ -523,6 +566,10 @@ class AppSession {
523
566
  if (this.camera) {
524
567
  this.camera.cancelAllRequests();
525
568
  }
569
+ // Clean up audio module
570
+ if (this.audio) {
571
+ this.audio.cancelAllRequests();
572
+ }
526
573
  // Use the resource tracker to clean up everything
527
574
  this.resources.dispose();
528
575
  // Clean up additional resources not handled by the tracker
@@ -787,6 +834,14 @@ class AppSession {
787
834
  // Update camera module's internal stream state
788
835
  this.camera.updateStreamState(message);
789
836
  }
837
+ else if ((0, cloud_to_app_1.isManagedStreamStatus)(message)) {
838
+ // Emit as a standard stream event if subscribed
839
+ if (this.subscriptions.has(types_1.StreamType.MANAGED_STREAM_STATUS)) {
840
+ this.events.emit(types_1.StreamType.MANAGED_STREAM_STATUS, message);
841
+ }
842
+ // Update camera module's managed stream state
843
+ this.camera.handleManagedStreamStatus(message);
844
+ }
790
845
  else if ((0, types_1.isSettingsUpdate)(message)) {
791
846
  // Store previous settings to check for changes
792
847
  const prevSettings = [...this.settingsData];
@@ -917,6 +972,12 @@ class AppSession {
917
972
  });
918
973
  });
919
974
  }
975
+ else if ((0, types_1.isAudioPlayResponse)(message)) {
976
+ // Delegate audio play response handling to the audio module
977
+ if (this.audio) {
978
+ this.audio.handleAudioPlayResponse(message);
979
+ }
980
+ }
920
981
  else if ((0, cloud_to_app_1.isPhotoResponse)(message)) {
921
982
  // Legacy photo response handling - now photos come directly via webhook
922
983
  // This branch can be removed in the future as all photos now go through /photo-upload
@@ -924,19 +985,7 @@ class AppSession {
924
985
  }
925
986
  // Handle unrecognized message types gracefully
926
987
  else {
927
- console.log(`Unrecognized message type: ${message.type}. Full message details:`, {
928
- messageType: message.type,
929
- fullMessage: message,
930
- messageKeys: Object.keys(message || {}),
931
- messageStringified: JSON.stringify(message, null, 2)
932
- });
933
- // Log all message object details for debugging
934
- this.logger.warn(`Unrecognized message type: ${message.type}. Full message details:`, {
935
- messageType: message.type,
936
- fullMessage: message,
937
- messageKeys: Object.keys(message || {}),
938
- messageStringified: JSON.stringify(message, null, 2)
939
- });
988
+ this.logger.warn(`Unrecognized message type: ${message.type}`);
940
989
  this.events.emit('error', new Error(`Unrecognized message type: ${message.type}`));
941
990
  }
942
991
  }
@@ -1073,10 +1122,18 @@ class AppSession {
1073
1122
  */
1074
1123
  updateSubscriptions() {
1075
1124
  this.logger.info(`[AppSession] updateSubscriptions: sending subscriptions to cloud:`, Array.from(this.subscriptions));
1125
+ // [MODIFIED] builds the array of SubscriptionRequest objects to send to the cloud
1126
+ const subscriptionPayload = Array.from(this.subscriptions).map(stream => {
1127
+ const rate = this.streamRates.get(stream);
1128
+ if (rate && stream === types_1.StreamType.LOCATION_STREAM) {
1129
+ return { stream: 'location_stream', rate: rate };
1130
+ }
1131
+ return stream;
1132
+ });
1076
1133
  const message = {
1077
1134
  type: types_1.AppToCloudMessageType.SUBSCRIPTION_UPDATE,
1078
1135
  packageName: this.config.packageName,
1079
- subscriptions: Array.from(this.subscriptions),
1136
+ subscriptions: subscriptionPayload, // [MODIFIED]
1080
1137
  sessionId: this.sessionId,
1081
1138
  timestamp: new Date()
1082
1139
  };
@@ -1232,7 +1289,7 @@ class AppSession {
1232
1289
  userId: this.userId,
1233
1290
  includeUserProfiles: includeProfiles
1234
1291
  };
1235
- const response = await fetch(url, {
1292
+ const response = await (0, node_fetch_1.default)(url, {
1236
1293
  method: 'POST',
1237
1294
  headers: {
1238
1295
  'Authorization': `Bearer ${appApiKey}`,
@@ -1450,6 +1507,8 @@ class TpaSession extends AppSession {
1450
1507
  }
1451
1508
  }
1452
1509
  exports.TpaSession = TpaSession;
1453
- // Export camera module types for developers
1510
+ // Export module types for developers
1454
1511
  var camera_2 = require("./modules/camera");
1455
1512
  Object.defineProperty(exports, "CameraModule", { enumerable: true, get: function () { return camera_2.CameraModule; } });
1513
+ var audio_2 = require("./modules/audio");
1514
+ Object.defineProperty(exports, "AudioManager", { enumerable: true, get: function () { return audio_2.AudioManager; } });
@@ -0,0 +1,190 @@
1
+ /**
2
+ * ๐Ÿ”Š Audio Module
3
+ *
4
+ * Audio functionality for App Sessions.
5
+ * Handles audio playback on connected glasses.
6
+ */
7
+ import { AudioPlayResponse } from '../../../types';
8
+ import { Logger } from 'pino';
9
+ /**
10
+ * Options for audio playback
11
+ */
12
+ export interface AudioPlayOptions {
13
+ /** URL to audio file for download and play */
14
+ audioUrl: string;
15
+ /** Volume level 0.0-1.0, defaults to 1.0 */
16
+ volume?: number;
17
+ /** Whether to stop other audio playback, defaults to true */
18
+ stopOtherAudio?: boolean;
19
+ }
20
+ /**
21
+ * Options for text-to-speech
22
+ */
23
+ export interface SpeakOptions {
24
+ /** Voice ID to use (optional, defaults to server's ELEVENLABS_DEFAULT_VOICE_ID) */
25
+ voice_id?: string;
26
+ /** Model ID to use (optional, defaults to eleven_flash_v2_5) */
27
+ model_id?: string;
28
+ /** Voice settings object (optional) */
29
+ voice_settings?: {
30
+ stability?: number;
31
+ similarity_boost?: number;
32
+ style?: number;
33
+ use_speaker_boost?: boolean;
34
+ speed?: number;
35
+ };
36
+ /** Volume level 0.0-1.0, defaults to 1.0 */
37
+ volume?: number;
38
+ }
39
+ /**
40
+ * Result of audio playback attempt
41
+ */
42
+ export interface AudioPlayResult {
43
+ /** Whether the audio playback was successful */
44
+ success: boolean;
45
+ /** Error message if playback failed */
46
+ error?: string;
47
+ /** Duration of the audio file in seconds (if available) */
48
+ duration?: number;
49
+ }
50
+ /**
51
+ * ๐Ÿ”Š Audio Module Implementation
52
+ *
53
+ * Audio management for App Sessions.
54
+ * Provides methods for:
55
+ * - ๐ŸŽต Playing audio on glasses
56
+ * - โน๏ธ Stopping audio playback
57
+ * - ๐Ÿ” Monitoring audio request status
58
+ * - ๐Ÿงน Cleanup and cancellation
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * // Play audio
63
+ * const result = await session.audio.playAudio({
64
+ * audioUrl: 'https://example.com/sound.mp3',
65
+ * volume: 0.8
66
+ * });
67
+ *
68
+ * // Stop all audio
69
+ * session.audio.stopAudio();
70
+ * ```
71
+ */
72
+ export declare class AudioManager {
73
+ private send;
74
+ private packageName;
75
+ private sessionId;
76
+ private session?;
77
+ private logger;
78
+ /** Map to store pending audio play request promises */
79
+ private pendingAudioRequests;
80
+ /**
81
+ * Create a new AudioManager
82
+ *
83
+ * @param packageName - The App package name
84
+ * @param sessionId - The current session ID
85
+ * @param send - Function to send messages to the cloud
86
+ * @param session - Reference to the parent AppSession (optional)
87
+ * @param logger - Logger instance for debugging
88
+ */
89
+ constructor(packageName: string, sessionId: string, send: (message: any) => void, session?: any, logger?: Logger);
90
+ /**
91
+ * ๐Ÿ”Š Play audio on the connected glasses
92
+ * @param options - Audio playback configuration
93
+ * @returns Promise that resolves with playback result
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * // Play audio from URL
98
+ * const result = await session.audio.playAudio({
99
+ * audioUrl: 'https://example.com/sound.mp3',
100
+ * volume: 0.8
101
+ * });
102
+ * ```
103
+ */
104
+ playAudio(options: AudioPlayOptions): Promise<AudioPlayResult>;
105
+ /**
106
+ * ๐Ÿ”‡ Stop audio playback on the connected glasses
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * // Stop all currently playing audio
111
+ * session.audio.stopAudio();
112
+ * ```
113
+ */
114
+ stopAudio(): void;
115
+ /**
116
+ * ๐Ÿ—ฃ๏ธ Convert text to speech and play it on the connected glasses
117
+ * @param text - Text to convert to speech (required)
118
+ * @param options - Text-to-speech configuration (optional)
119
+ * @returns Promise that resolves with playback result
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * // Basic text-to-speech
124
+ * const result = await session.audio.speak('Hello, world!');
125
+ *
126
+ * // With custom voice settings
127
+ * const result = await session.audio.speak('Hello, world!', {
128
+ * voice_id: 'your_voice_id',
129
+ * voice_settings: {
130
+ * stability: 0.5,
131
+ * speed: 1.2
132
+ * },
133
+ * volume: 0.8
134
+ * });
135
+ * ```
136
+ */
137
+ speak(text: string, options?: SpeakOptions): Promise<AudioPlayResult>;
138
+ /**
139
+ * ๐Ÿ“ฅ Handle audio play response from cloud
140
+ *
141
+ * This method is called internally when an audio play response is received.
142
+ * It resolves the corresponding pending promise with the response data.
143
+ *
144
+ * @param response - The audio play response received
145
+ * @internal This method is used internally by AppSession
146
+ */
147
+ handleAudioPlayResponse(response: AudioPlayResponse): void;
148
+ /**
149
+ * ๐Ÿ” Check if there are pending audio requests
150
+ * @param requestId - Optional specific request ID to check
151
+ * @returns True if there are pending requests (or specific request exists)
152
+ */
153
+ hasPendingRequest(requestId?: string): boolean;
154
+ /**
155
+ * ๐Ÿ“Š Get the number of pending audio requests
156
+ * @returns Number of pending requests
157
+ */
158
+ getPendingRequestCount(): number;
159
+ /**
160
+ * ๐Ÿ“‹ Get all pending request IDs
161
+ * @returns Array of pending request IDs
162
+ */
163
+ getPendingRequestIds(): string[];
164
+ /**
165
+ * โŒ Cancel a specific audio request
166
+ * @param requestId - The request ID to cancel
167
+ * @returns True if the request was found and cancelled
168
+ */
169
+ cancelAudioRequest(requestId: string): boolean;
170
+ /**
171
+ * ๐Ÿงน Cancel all pending audio requests
172
+ * @returns Number of requests that were cancelled
173
+ */
174
+ cancelAllAudioRequests(): number;
175
+ /**
176
+ * ๐Ÿ”„ Update the session ID when reconnecting
177
+ * @param newSessionId - The new session ID
178
+ * @internal Used by AppSession during reconnection
179
+ */
180
+ updateSessionId(newSessionId: string): void;
181
+ /**
182
+ * ๐Ÿงน Cancel all pending requests (cleanup)
183
+ * @returns Object with count of cancelled requests
184
+ * @internal Used by AppSession during cleanup
185
+ */
186
+ cancelAllRequests(): {
187
+ audioRequests: number;
188
+ };
189
+ }
190
+ //# sourceMappingURL=audio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../../../src/app/session/modules/audio.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,iBAAiB,EAGlB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,cAAc,CAAC,EAAE;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAyB;IACrC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAC,CAAM;IACtB,OAAO,CAAC,MAAM,CAAS;IAEvB,uDAAuD;IACvD,OAAO,CAAC,oBAAoB,CAGvB;IAEL;;;;;;;;OAQG;gBACS,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM;IAYhH;;;;;;;;;;;;;OAaG;IACG,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IA0DpE;;;;;;;;OAQG;IACH,SAAS,IAAI,IAAI;IAoBjB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IA4C/E;;;;;;;;OAQG;IACH,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IA4B1D;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO;IAO9C;;;OAGG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;OAGG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAIhC;;;;OAIG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAW9C;;;OAGG;IACH,sBAAsB,IAAI,MAAM;IAmBhC;;;;OAIG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAK3C;;;;OAIG;IACH,iBAAiB,IAAI;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE;CAI/C"}