@mentra/sdk 2.1.12 → 2.1.14
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/dist/app/server/index.d.ts +15 -12
- package/dist/app/server/index.d.ts.map +1 -1
- package/dist/app/server/index.js +104 -79
- package/dist/app/session/events.d.ts +35 -23
- package/dist/app/session/events.d.ts.map +1 -1
- package/dist/app/session/events.js +46 -38
- package/dist/app/session/index.d.ts +13 -13
- package/dist/app/session/index.d.ts.map +1 -1
- package/dist/app/session/index.js +237 -204
- package/dist/app/webview/index.d.ts +5 -3
- package/dist/app/webview/index.d.ts.map +1 -1
- package/dist/app/webview/index.js +73 -37
- package/dist/index.d.ts +28 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/types/index.d.ts +29 -27
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -1
- package/dist/types/message-types.d.ts +1 -0
- package/dist/types/message-types.d.ts.map +1 -1
- package/dist/types/message-types.js +6 -5
- package/dist/types/messages/cloud-to-app.d.ts +26 -14
- package/dist/types/messages/cloud-to-app.d.ts.map +1 -1
- package/dist/types/messages/cloud-to-app.js +6 -1
- package/dist/types/streams.d.ts +9 -3
- package/dist/types/streams.d.ts.map +1 -1
- package/dist/types/streams.js +68 -19
- package/package.json +1 -1
@@ -1,10 +1,11 @@
|
|
1
|
-
import { BaseMessage } from
|
2
|
-
import { CloudToAppMessageType } from
|
3
|
-
import { StreamType } from
|
4
|
-
import { AppSettings, AppConfig } from
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
import {
|
1
|
+
import { BaseMessage } from "./base";
|
2
|
+
import { CloudToAppMessageType } from "../message-types";
|
3
|
+
import { ExtendedStreamType, StreamType } from "../streams";
|
4
|
+
import { AppSettings, AppConfig } from "../models";
|
5
|
+
import { DashboardMode } from "../dashboard";
|
6
|
+
import { Capabilities } from "../capabilities";
|
7
|
+
import { LocationUpdate, CalendarEvent, RtmpStreamStatus, PhotoResponse } from "./glasses-to-cloud";
|
8
|
+
import { AppSession } from "../../app/session";
|
8
9
|
/**
|
9
10
|
* Connection acknowledgment to App
|
10
11
|
*/
|
@@ -61,11 +62,20 @@ export interface SettingsUpdate extends BaseMessage {
|
|
61
62
|
packageName: string;
|
62
63
|
settings: AppSettings;
|
63
64
|
}
|
65
|
+
/**
|
66
|
+
* Device capabilities update to App
|
67
|
+
* Sent when the connected glasses model changes or capabilities are updated
|
68
|
+
*/
|
69
|
+
export interface CapabilitiesUpdate extends BaseMessage {
|
70
|
+
type: CloudToAppMessageType.CAPABILITIES_UPDATE;
|
71
|
+
capabilities: Capabilities | null;
|
72
|
+
modelName: string | null;
|
73
|
+
}
|
64
74
|
/**
|
65
75
|
* MentraOS settings update to App
|
66
76
|
*/
|
67
77
|
export interface MentraosSettingsUpdate extends BaseMessage {
|
68
|
-
type:
|
78
|
+
type: "augmentos_settings_update";
|
69
79
|
sessionId: string;
|
70
80
|
settings: Record<string, any>;
|
71
81
|
timestamp: Date;
|
@@ -120,13 +130,14 @@ export interface ToolCall {
|
|
120
130
|
toolParameters: Record<string, string | number | boolean>;
|
121
131
|
timestamp: Date;
|
122
132
|
userId: string;
|
133
|
+
activeSession: AppSession | null;
|
123
134
|
}
|
124
135
|
/**
|
125
136
|
* Stream data to App
|
126
137
|
*/
|
127
138
|
export interface DataStream extends BaseMessage {
|
128
139
|
type: CloudToAppMessageType.DATA_STREAM;
|
129
|
-
streamType:
|
140
|
+
streamType: ExtendedStreamType;
|
130
141
|
data: unknown;
|
131
142
|
}
|
132
143
|
/**
|
@@ -147,7 +158,7 @@ export interface DashboardAlwaysOnChanged extends BaseMessage {
|
|
147
158
|
* Standard connection error (for server compatibility)
|
148
159
|
*/
|
149
160
|
export interface StandardConnectionError extends BaseMessage {
|
150
|
-
type:
|
161
|
+
type: "connection_error";
|
151
162
|
message: string;
|
152
163
|
}
|
153
164
|
/**
|
@@ -167,7 +178,7 @@ export interface OutputStatus {
|
|
167
178
|
/** Friendly name if provided */
|
168
179
|
name?: string;
|
169
180
|
/** Status of this output */
|
170
|
-
status:
|
181
|
+
status: "active" | "error" | "stopped";
|
171
182
|
/** Error message if status is error */
|
172
183
|
error?: string;
|
173
184
|
}
|
@@ -177,7 +188,7 @@ export interface OutputStatus {
|
|
177
188
|
*/
|
178
189
|
export interface ManagedStreamStatus extends BaseMessage {
|
179
190
|
type: CloudToAppMessageType.MANAGED_STREAM_STATUS;
|
180
|
-
status:
|
191
|
+
status: "initializing" | "preparing" | "active" | "stopping" | "stopped" | "error";
|
181
192
|
hlsUrl?: string;
|
182
193
|
dashUrl?: string;
|
183
194
|
webrtcUrl?: string;
|
@@ -199,11 +210,12 @@ export interface AudioPlayResponse extends BaseMessage {
|
|
199
210
|
/**
|
200
211
|
* Union type for all messages from cloud to Apps
|
201
212
|
*/
|
202
|
-
export type CloudToAppMessage = AppConnectionAck | AppConnectionError | StandardConnectionError | DataStream | AppStopped | SettingsUpdate | TranscriptionData | TranslationData | AudioChunk | LocationUpdate | CalendarEvent | PhotoResponse | DashboardModeChanged | DashboardAlwaysOnChanged | CustomMessage | ManagedStreamStatus | MentraosSettingsUpdate | AppMessageReceived | AppUserJoined | AppUserLeft | AppRoomUpdated | AppDirectMessageResponse | RtmpStreamStatus | PhotoResponse | PermissionError | AudioPlayResponse;
|
213
|
+
export type CloudToAppMessage = AppConnectionAck | AppConnectionError | StandardConnectionError | DataStream | AppStopped | SettingsUpdate | CapabilitiesUpdate | TranscriptionData | TranslationData | AudioChunk | LocationUpdate | CalendarEvent | PhotoResponse | DashboardModeChanged | DashboardAlwaysOnChanged | CustomMessage | ManagedStreamStatus | MentraosSettingsUpdate | AppMessageReceived | AppUserJoined | AppUserLeft | AppRoomUpdated | AppDirectMessageResponse | RtmpStreamStatus | PhotoResponse | PermissionError | AudioPlayResponse;
|
203
214
|
export declare function isAppConnectionAck(message: CloudToAppMessage): message is AppConnectionAck;
|
204
215
|
export declare function isAppConnectionError(message: CloudToAppMessage): message is AppConnectionError;
|
205
216
|
export declare function isAppStopped(message: CloudToAppMessage): message is AppStopped;
|
206
217
|
export declare function isSettingsUpdate(message: CloudToAppMessage): message is SettingsUpdate;
|
218
|
+
export declare function isCapabilitiesUpdate(message: CloudToAppMessage): message is CapabilitiesUpdate;
|
207
219
|
export declare function isDataStream(message: CloudToAppMessage): message is DataStream;
|
208
220
|
export declare function isAudioChunk(message: CloudToAppMessage): message is AudioChunk;
|
209
221
|
export declare function isDashboardModeChanged(message: CloudToAppMessage): message is DashboardModeChanged;
|
@@ -253,7 +265,7 @@ export interface AppUserLeft extends BaseMessage {
|
|
253
265
|
export interface AppRoomUpdated extends BaseMessage {
|
254
266
|
type: CloudToAppMessageType.APP_ROOM_UPDATED;
|
255
267
|
roomId: string;
|
256
|
-
updateType:
|
268
|
+
updateType: "user_joined" | "user_left" | "config_changed" | "room_closed";
|
257
269
|
roomData: {
|
258
270
|
memberCount: number;
|
259
271
|
maxUsers?: number;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cloud-to-app.d.ts","sourceRoot":"","sources":["../../../src/types/messages/cloud-to-app.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,
|
1
|
+
{"version":3,"file":"cloud-to-app.d.ts","sourceRoot":"","sources":["../../../src/types/messages/cloud-to-app.ts"],"names":[],"mappings":"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"}
|
@@ -5,6 +5,7 @@ exports.isAppConnectionAck = isAppConnectionAck;
|
|
5
5
|
exports.isAppConnectionError = isAppConnectionError;
|
6
6
|
exports.isAppStopped = isAppStopped;
|
7
7
|
exports.isSettingsUpdate = isSettingsUpdate;
|
8
|
+
exports.isCapabilitiesUpdate = isCapabilitiesUpdate;
|
8
9
|
exports.isDataStream = isDataStream;
|
9
10
|
exports.isAudioChunk = isAudioChunk;
|
10
11
|
exports.isDashboardModeChanged = isDashboardModeChanged;
|
@@ -25,7 +26,8 @@ function isAppConnectionAck(message) {
|
|
25
26
|
return message.type === message_types_1.CloudToAppMessageType.CONNECTION_ACK;
|
26
27
|
}
|
27
28
|
function isAppConnectionError(message) {
|
28
|
-
return message.type === message_types_1.CloudToAppMessageType.CONNECTION_ERROR ||
|
29
|
+
return (message.type === message_types_1.CloudToAppMessageType.CONNECTION_ERROR ||
|
30
|
+
message.type === "connection_error");
|
29
31
|
}
|
30
32
|
function isAppStopped(message) {
|
31
33
|
return message.type === message_types_1.CloudToAppMessageType.APP_STOPPED;
|
@@ -33,6 +35,9 @@ function isAppStopped(message) {
|
|
33
35
|
function isSettingsUpdate(message) {
|
34
36
|
return message.type === message_types_1.CloudToAppMessageType.SETTINGS_UPDATE;
|
35
37
|
}
|
38
|
+
function isCapabilitiesUpdate(message) {
|
39
|
+
return message.type === message_types_1.CloudToAppMessageType.CAPABILITIES_UPDATE;
|
40
|
+
}
|
36
41
|
function isDataStream(message) {
|
37
42
|
return message.type === message_types_1.CloudToAppMessageType.DATA_STREAM;
|
38
43
|
}
|
package/dist/types/streams.d.ts
CHANGED
@@ -72,6 +72,7 @@ export interface LanguageStreamInfo {
|
|
72
72
|
baseType: string;
|
73
73
|
transcribeLanguage: string;
|
74
74
|
translateLanguage?: string;
|
75
|
+
options?: Record<string, string | boolean>;
|
75
76
|
original: ExtendedStreamType;
|
76
77
|
}
|
77
78
|
/**
|
@@ -82,7 +83,7 @@ export declare function isValidLanguageCode(code: string): boolean;
|
|
82
83
|
/**
|
83
84
|
* Parse a subscription string to extract language information
|
84
85
|
*
|
85
|
-
* @param subscription Subscription string (e.g., "transcription:en-US" or "translation:es-ES-to-en-US")
|
86
|
+
* @param subscription Subscription string (e.g., "transcription:en-US" or "translation:es-ES-to-en-US" or "transcription:en-US?no-language-identification=true")
|
86
87
|
* @returns Parsed language stream info or null if not a language-specific subscription
|
87
88
|
*/
|
88
89
|
export declare function parseLanguageStream(subscription: ExtendedStreamType): LanguageStreamInfo | null;
|
@@ -93,16 +94,21 @@ export declare function parseLanguageStream(subscription: ExtendedStreamType): L
|
|
93
94
|
* @param language Language code (e.g., "en-US")
|
94
95
|
* @returns Typed stream identifier
|
95
96
|
*/
|
96
|
-
export declare function createTranscriptionStream(language: string
|
97
|
+
export declare function createTranscriptionStream(language: string, options?: {
|
98
|
+
disableLanguageIdentification?: boolean;
|
99
|
+
}): ExtendedStreamType;
|
97
100
|
/**
|
98
101
|
* Create a translation stream identifier for a language pair
|
99
102
|
* Returns a type-safe stream type that can be used like a StreamType
|
100
103
|
*
|
101
104
|
* @param sourceLanguage Source language code (e.g., "es-ES")
|
102
105
|
* @param targetLanguage Target language code (e.g., "en-US")
|
106
|
+
* @param options Optional configuration options
|
103
107
|
* @returns Typed stream identifier
|
104
108
|
*/
|
105
|
-
export declare function createTranslationStream(sourceLanguage: string, targetLanguage: string
|
109
|
+
export declare function createTranslationStream(sourceLanguage: string, targetLanguage: string, options?: {
|
110
|
+
disableLanguageIdentification?: boolean;
|
111
|
+
}): ExtendedStreamType;
|
106
112
|
/**
|
107
113
|
* Check if a subscription is a valid stream type
|
108
114
|
* This handles both enum-based StreamType values and language-specific stream formats
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../src/types/streams.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,oBAAY,UAAU;IAEpB,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,wBAAwB,6BAA6B;IACrD,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IAGnC,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,GAAG,QAAQ;IACX,WAAW,gBAAgB;IAG3B,kBAAkB,uBAAuB;IACzC,4BAA4B,iCAAiC;IAC7D,cAAc,mBAAmB;IAGjC,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IAGzC,KAAK,UAAU;IACf,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAG/C,GAAG,QAAQ;IACX,QAAQ,MAAM;IAGd,gCAAgC,4BAA4B;IAC5D,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;CAC5B;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,MAAM,CAAC;AAErD;;GAEG;AACH,oBAAY,cAAc;IACxB,iCAAiC;IACjC,QAAQ,aAAa;IAErB,+BAA+B;IAC/B,KAAK,UAAU;IAEf,2BAA2B;IAC3B,KAAK,UAAU;IAEf,0BAA0B;IAC1B,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,cAAc,CAkChE,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG;IAAE,qBAAqB,EAAE,KAAK,CAAA;CAAE,CAAC;AAUxF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,kBAAkB,GAAG,kBAAkB,GAAG,IAAI,
|
1
|
+
{"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../src/types/streams.ts"],"names":[],"mappings":"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"}
|
package/dist/types/streams.js
CHANGED
@@ -122,43 +122,76 @@ function isValidLanguageCode(code) {
|
|
122
122
|
/**
|
123
123
|
* Parse a subscription string to extract language information
|
124
124
|
*
|
125
|
-
* @param subscription Subscription string (e.g., "transcription:en-US" or "translation:es-ES-to-en-US")
|
125
|
+
* @param subscription Subscription string (e.g., "transcription:en-US" or "translation:es-ES-to-en-US" or "transcription:en-US?no-language-identification=true")
|
126
126
|
* @returns Parsed language stream info or null if not a language-specific subscription
|
127
127
|
*/
|
128
128
|
function parseLanguageStream(subscription) {
|
129
|
+
console.log(`🎤 Parsing language stream: ${subscription}`);
|
129
130
|
if (typeof subscription !== 'string') {
|
130
131
|
return null;
|
131
132
|
}
|
132
|
-
//
|
133
|
-
// Handle transcription format (transcription:en-US)
|
133
|
+
// Handle transcription format (transcription:en-US or transcription:en-US?options)
|
134
134
|
if (subscription.startsWith(`${StreamType.TRANSCRIPTION}:`)) {
|
135
|
-
const [baseType,
|
136
|
-
|
137
|
-
// console.log(`🎤 Language code: ${languageCode}`);
|
135
|
+
const [baseType, rest] = subscription.split(':');
|
136
|
+
const [languageCode, queryString] = rest?.split('?') ?? [];
|
138
137
|
if (languageCode && isValidLanguageCode(languageCode)) {
|
138
|
+
const options = {};
|
139
|
+
// Parse query parameters if present
|
140
|
+
if (queryString) {
|
141
|
+
const params = new URLSearchParams(queryString);
|
142
|
+
for (const [key, value] of params.entries()) {
|
143
|
+
// Convert string values to boolean when appropriate
|
144
|
+
if (value === 'true') {
|
145
|
+
options[key] = true;
|
146
|
+
}
|
147
|
+
else if (value === 'false') {
|
148
|
+
options[key] = false;
|
149
|
+
}
|
150
|
+
else {
|
151
|
+
options[key] = value;
|
152
|
+
}
|
153
|
+
}
|
154
|
+
}
|
139
155
|
return {
|
140
156
|
type: StreamType.TRANSCRIPTION,
|
141
157
|
baseType,
|
142
158
|
transcribeLanguage: languageCode,
|
159
|
+
options: Object.keys(options).length > 0 ? options : undefined,
|
143
160
|
original: subscription
|
144
161
|
};
|
145
162
|
}
|
146
163
|
}
|
147
|
-
// Handle translation format (translation:es-ES-to-en-US)
|
164
|
+
// Handle translation format (translation:es-ES-to-en-US or translation:es-ES-to-en-US?options)
|
148
165
|
if (subscription.startsWith(`${StreamType.TRANSLATION}:`)) {
|
149
|
-
const [baseType,
|
166
|
+
const [baseType, rest] = subscription.split(':');
|
167
|
+
const [languagePair, queryString] = rest?.split('?') ?? [];
|
150
168
|
const [sourceLanguage, targetLanguage] = languagePair?.split('-to-') ?? [];
|
151
|
-
// console.log(`🎤 Parsing translation stream: ${subscription}`);
|
152
|
-
// console.log(`🎤 Source language: ${sourceLanguage}`);
|
153
|
-
// console.log(`🎤 Target language: ${targetLanguage}`);
|
154
169
|
if (sourceLanguage && targetLanguage &&
|
155
170
|
isValidLanguageCode(sourceLanguage) &&
|
156
171
|
isValidLanguageCode(targetLanguage)) {
|
172
|
+
const options = {};
|
173
|
+
// Parse query parameters if present
|
174
|
+
if (queryString) {
|
175
|
+
const params = new URLSearchParams(queryString);
|
176
|
+
for (const [key, value] of params.entries()) {
|
177
|
+
// Convert string values to boolean when appropriate
|
178
|
+
if (value === 'true') {
|
179
|
+
options[key] = true;
|
180
|
+
}
|
181
|
+
else if (value === 'false') {
|
182
|
+
options[key] = false;
|
183
|
+
}
|
184
|
+
else {
|
185
|
+
options[key] = value;
|
186
|
+
}
|
187
|
+
}
|
188
|
+
}
|
157
189
|
return {
|
158
190
|
type: StreamType.TRANSLATION,
|
159
191
|
baseType,
|
160
192
|
transcribeLanguage: sourceLanguage,
|
161
193
|
translateLanguage: targetLanguage,
|
194
|
+
options: Object.keys(options).length > 0 ? options : undefined,
|
162
195
|
original: subscription
|
163
196
|
};
|
164
197
|
}
|
@@ -172,11 +205,19 @@ function parseLanguageStream(subscription) {
|
|
172
205
|
* @param language Language code (e.g., "en-US")
|
173
206
|
* @returns Typed stream identifier
|
174
207
|
*/
|
175
|
-
function createTranscriptionStream(language) {
|
176
|
-
|
177
|
-
|
208
|
+
function createTranscriptionStream(language, options) {
|
209
|
+
console.log(`🎤 Creating transcription stream for language: ${language}`);
|
210
|
+
console.log(`🎤 Options: ${JSON.stringify(options)}`);
|
211
|
+
// Defensively remove any query string from the language parameter
|
212
|
+
const languageCode = language.split('?')[0];
|
213
|
+
if (!isValidLanguageCode(languageCode)) {
|
214
|
+
throw new Error(`Invalid language code: ${languageCode}`);
|
178
215
|
}
|
179
|
-
|
216
|
+
const base = `${StreamType.TRANSCRIPTION}:${languageCode}`;
|
217
|
+
if (options?.disableLanguageIdentification) {
|
218
|
+
return `${base}?no-language-identification=true`;
|
219
|
+
}
|
220
|
+
return base;
|
180
221
|
}
|
181
222
|
/**
|
182
223
|
* Create a translation stream identifier for a language pair
|
@@ -184,13 +225,21 @@ function createTranscriptionStream(language) {
|
|
184
225
|
*
|
185
226
|
* @param sourceLanguage Source language code (e.g., "es-ES")
|
186
227
|
* @param targetLanguage Target language code (e.g., "en-US")
|
228
|
+
* @param options Optional configuration options
|
187
229
|
* @returns Typed stream identifier
|
188
230
|
*/
|
189
|
-
function createTranslationStream(sourceLanguage, targetLanguage) {
|
190
|
-
|
191
|
-
|
231
|
+
function createTranslationStream(sourceLanguage, targetLanguage, options) {
|
232
|
+
// Defensively remove any query string from the language parameters
|
233
|
+
const cleanSourceLanguage = sourceLanguage.split('?')[0];
|
234
|
+
const cleanTargetLanguage = targetLanguage.split('?')[0];
|
235
|
+
if (!isValidLanguageCode(cleanSourceLanguage) || !isValidLanguageCode(cleanTargetLanguage)) {
|
236
|
+
throw new Error(`Invalid language code(s): ${cleanSourceLanguage}, ${cleanTargetLanguage}`);
|
237
|
+
}
|
238
|
+
const base = `${StreamType.TRANSLATION}:${cleanSourceLanguage}-to-${cleanTargetLanguage}`;
|
239
|
+
if (options?.disableLanguageIdentification) {
|
240
|
+
return `${base}?no-language-identification=true`;
|
192
241
|
}
|
193
|
-
return createLanguageStream(
|
242
|
+
return createLanguageStream(base);
|
194
243
|
}
|
195
244
|
/**
|
196
245
|
* Check if a subscription is a valid stream type
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@mentra/sdk",
|
3
|
-
"version": "2.1.
|
3
|
+
"version": "2.1.14",
|
4
4
|
"description": "Build apps for MentraOS smartglasses. This SDK provides everything you need to create real-time smartglasses applications.",
|
5
5
|
"source": "src/index.ts",
|
6
6
|
"main": "dist/index.js",
|