@mentra/sdk 2.1.31-beta.5 โ 2.1.31-beta.6
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.
|
@@ -6,9 +6,25 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { type Express } from "express";
|
|
8
8
|
import { AppSession } from "../session/index";
|
|
9
|
-
import { ToolCall
|
|
9
|
+
import { ToolCall } from "../../types";
|
|
10
10
|
import { Logger } from "pino";
|
|
11
|
+
import { PhotoData } from "../../types/photo-data";
|
|
11
12
|
export declare const GIVE_APP_CONTROL_OF_TOOL_RESPONSE: string;
|
|
13
|
+
/**
|
|
14
|
+
* Pending photo request stored at AppServer level
|
|
15
|
+
* This allows O(1) lookup when photo uploads arrive via HTTP,
|
|
16
|
+
* and survives session reconnections.
|
|
17
|
+
* See: cloud/issues/019-sdk-photo-request-architecture
|
|
18
|
+
*/
|
|
19
|
+
export interface PendingPhotoRequest {
|
|
20
|
+
userId: string;
|
|
21
|
+
sessionId: string;
|
|
22
|
+
session: AppSession;
|
|
23
|
+
resolve: (photo: PhotoData) => void;
|
|
24
|
+
reject: (error: Error) => void;
|
|
25
|
+
timestamp: number;
|
|
26
|
+
timeoutId?: NodeJS.Timeout;
|
|
27
|
+
}
|
|
12
28
|
/**
|
|
13
29
|
* ๐ง Configuration options for App Server
|
|
14
30
|
*
|
|
@@ -48,6 +64,36 @@ export interface AppServerConfig {
|
|
|
48
64
|
/** App instructions string shown to the user */
|
|
49
65
|
appInstructions?: string;
|
|
50
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* ๐ฏ App Server Implementation
|
|
69
|
+
*
|
|
70
|
+
* Base class for creating App servers. Handles:
|
|
71
|
+
* - ๐ Session lifecycle management
|
|
72
|
+
* - ๐ก Webhook endpoints for MentraOS Cloud
|
|
73
|
+
* - ๐ Static file serving
|
|
74
|
+
* - โค๏ธ Health checks
|
|
75
|
+
* - ๐งน Cleanup on shutdown
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```typescript
|
|
79
|
+
* class MyAppServer extends AppServer {
|
|
80
|
+
* protected async onSession(session: AppSession, sessionId: string, userId: string) {
|
|
81
|
+
* // Handle new user sessions here
|
|
82
|
+
* session.events.onTranscription((data) => {
|
|
83
|
+
* session.layouts.showTextWall(data.text);
|
|
84
|
+
* });
|
|
85
|
+
* }
|
|
86
|
+
* }
|
|
87
|
+
*
|
|
88
|
+
* const server = new MyAppServer({
|
|
89
|
+
* packageName: 'org.example.myapp',
|
|
90
|
+
* apiKey: 'your_api_key',
|
|
91
|
+
* publicDir: "/public",
|
|
92
|
+
* });
|
|
93
|
+
*
|
|
94
|
+
* await server.start();
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
51
97
|
export declare class AppServer {
|
|
52
98
|
private config;
|
|
53
99
|
/** Express app instance */
|
|
@@ -61,10 +107,15 @@ export declare class AppServer {
|
|
|
61
107
|
/** App instructions string shown to the user */
|
|
62
108
|
private appInstructions;
|
|
63
109
|
/**
|
|
64
|
-
*
|
|
65
|
-
* This
|
|
110
|
+
* Pending photo requests by requestId - owned by AppServer for HTTP endpoint access.
|
|
111
|
+
* This is the single source of truth for pending photo requests.
|
|
112
|
+
* Stored here (not on CameraModule) because:
|
|
113
|
+
* 1. Photo uploads arrive via HTTP to AppServer, not via WebSocket to session
|
|
114
|
+
* 2. Allows O(1) lookup by requestId instead of iterating all sessions
|
|
115
|
+
* 3. Survives session reconnections (session may be removed from activeSessions temporarily)
|
|
116
|
+
* See: cloud/issues/019-sdk-photo-request-architecture
|
|
66
117
|
*/
|
|
67
|
-
private
|
|
118
|
+
private pendingPhotoRequests;
|
|
68
119
|
readonly logger: Logger;
|
|
69
120
|
constructor(config: AppServerConfig);
|
|
70
121
|
getExpressApp(): Express;
|
|
@@ -167,7 +218,18 @@ export declare class AppServer {
|
|
|
167
218
|
/**
|
|
168
219
|
* ๐งน Cleanup
|
|
169
220
|
* Closes all active sessions and runs cleanup handlers.
|
|
170
|
-
*
|
|
221
|
+
* Does NOT release ownership - we want the cloud to resurrect when we come back up.
|
|
222
|
+
*
|
|
223
|
+
* OWNERSHIP_RELEASE should only be sent for:
|
|
224
|
+
* - switching_clouds: User moved to another cloud, don't compete
|
|
225
|
+
* - user_logout: User explicitly logged out
|
|
226
|
+
*
|
|
227
|
+
* NOT for clean_shutdown, because:
|
|
228
|
+
* - Server is restarting/redeploying
|
|
229
|
+
* - Cloud should resurrect the app (trigger webhook)
|
|
230
|
+
* - User expects their app to keep running
|
|
231
|
+
*
|
|
232
|
+
* See: cloud/issues/023-disposed-appsession-resurrection-bug
|
|
171
233
|
*/
|
|
172
234
|
private cleanup;
|
|
173
235
|
/**
|
|
@@ -176,29 +238,41 @@ export declare class AppServer {
|
|
|
176
238
|
*/
|
|
177
239
|
private setupPhotoUploadEndpoint;
|
|
178
240
|
/**
|
|
179
|
-
*
|
|
180
|
-
*
|
|
241
|
+
* Register a pending photo request.
|
|
242
|
+
* Called by CameraModule when a photo is requested.
|
|
243
|
+
* Stores the request at AppServer level for O(1) lookup when HTTP response arrives.
|
|
244
|
+
*
|
|
245
|
+
* @param requestId - Unique identifier for this photo request
|
|
246
|
+
* @param request - Request details including session, resolve/reject callbacks
|
|
181
247
|
*/
|
|
182
|
-
|
|
248
|
+
registerPhotoRequest(requestId: string, request: Omit<PendingPhotoRequest, "timeoutId">): void;
|
|
183
249
|
/**
|
|
184
|
-
*
|
|
250
|
+
* Get a pending photo request by ID.
|
|
251
|
+
*
|
|
252
|
+
* @param requestId - The request ID to look up
|
|
253
|
+
* @returns The pending request, or undefined if not found
|
|
185
254
|
*/
|
|
186
|
-
|
|
255
|
+
getPhotoRequest(requestId: string): PendingPhotoRequest | undefined;
|
|
187
256
|
/**
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
* delivered even if the user's session disconnects and reconnects.
|
|
257
|
+
* Complete a photo request (success or error).
|
|
258
|
+
* Clears the timeout and removes from the pending map.
|
|
191
259
|
*
|
|
192
|
-
* @param requestId -
|
|
193
|
-
* @
|
|
194
|
-
* @param resolve - Promise resolve function to call with photo data
|
|
195
|
-
* @param reject - Promise reject function to call on error/timeout
|
|
260
|
+
* @param requestId - The request ID to complete
|
|
261
|
+
* @returns The pending request that was completed, or undefined if not found
|
|
196
262
|
*/
|
|
197
|
-
|
|
263
|
+
completePhotoRequest(requestId: string): PendingPhotoRequest | undefined;
|
|
198
264
|
/**
|
|
199
|
-
*
|
|
265
|
+
* Clean up all pending photo requests for a session.
|
|
266
|
+
* Called when a session permanently disconnects.
|
|
267
|
+
*
|
|
268
|
+
* @param sessionId - The session ID to clean up requests for
|
|
200
269
|
*/
|
|
201
|
-
|
|
270
|
+
cleanupPhotoRequestsForSession(sessionId: string): void;
|
|
271
|
+
/**
|
|
272
|
+
* ๐ Setup Mentra Auth Redirect Endpoint
|
|
273
|
+
* Creates a /mentra-auth endpoint that redirects to the MentraOS OAuth flow.
|
|
274
|
+
*/
|
|
275
|
+
private setupMentraAuthRedirect;
|
|
202
276
|
}
|
|
203
277
|
/**
|
|
204
278
|
* @deprecated Use `AppServerConfig` instead. `TpaServerConfig` is deprecated and will be removed in a future version.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/server/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI9C,OAAO,EAKL,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,8 +74,6 @@ export declare class CameraModule {
|
|
|
74
74
|
private packageName;
|
|
75
75
|
private sessionId;
|
|
76
76
|
private logger;
|
|
77
|
-
/** Map to store pending photo request promises */
|
|
78
|
-
private pendingPhotoRequests;
|
|
79
77
|
private isStreaming;
|
|
80
78
|
private currentStreamUrl?;
|
|
81
79
|
private currentStreamState?;
|
|
@@ -108,63 +106,27 @@ export declare class CameraModule {
|
|
|
108
106
|
* ```
|
|
109
107
|
*/
|
|
110
108
|
requestPhoto(options?: PhotoRequestOptions): Promise<PhotoData>;
|
|
111
|
-
/**
|
|
112
|
-
* ๐ฅ Handle photo received from /photo-upload endpoint
|
|
113
|
-
*
|
|
114
|
-
* This method is called internally when a photo response is received.
|
|
115
|
-
* It resolves the corresponding pending promise with the photo data.
|
|
116
|
-
*
|
|
117
|
-
* @param photoData - The photo data received
|
|
118
|
-
* @internal This method is used internally by AppSession
|
|
119
|
-
*/
|
|
120
|
-
handlePhotoReceived(photoData: PhotoData): void;
|
|
121
|
-
/**
|
|
122
|
-
* โ Handle photo error from /photo-upload endpoint
|
|
123
|
-
*
|
|
124
|
-
* This method is called internally when a photo error response is received.
|
|
125
|
-
* It rejects the corresponding pending promise with the error information.
|
|
126
|
-
*
|
|
127
|
-
* @param errorResponse - The error response received
|
|
128
|
-
* @internal This method is used internally by AppSession
|
|
129
|
-
*/
|
|
130
|
-
handlePhotoError(errorResponse: {
|
|
131
|
-
requestId: string;
|
|
132
|
-
success: false;
|
|
133
|
-
error: {
|
|
134
|
-
code: string;
|
|
135
|
-
message: string;
|
|
136
|
-
};
|
|
137
|
-
}): void;
|
|
138
109
|
/**
|
|
139
110
|
* ๐ Check if there's a pending photo request for the given request ID
|
|
111
|
+
* @deprecated Photo requests are now managed at AppServer level. This method delegates to AppServer.
|
|
140
112
|
*
|
|
141
113
|
* @param requestId - The request ID to check
|
|
142
114
|
* @returns true if there's a pending request
|
|
143
115
|
*/
|
|
144
116
|
hasPhotoPendingRequest(requestId: string): boolean;
|
|
145
|
-
/**
|
|
146
|
-
* ๐ Get the number of pending photo requests
|
|
147
|
-
*
|
|
148
|
-
* @returns Number of pending photo requests
|
|
149
|
-
*/
|
|
150
|
-
getPhotoPendingRequestCount(): number;
|
|
151
|
-
/**
|
|
152
|
-
* ๐ Get all pending photo request IDs
|
|
153
|
-
*
|
|
154
|
-
* @returns Array of pending request IDs
|
|
155
|
-
*/
|
|
156
|
-
getPhotoPendingRequestIds(): string[];
|
|
157
117
|
/**
|
|
158
118
|
* โ Cancel a pending photo request
|
|
119
|
+
* @deprecated Photo requests are now managed at AppServer level. This method delegates to AppServer.
|
|
159
120
|
*
|
|
160
121
|
* @param requestId - The request ID to cancel
|
|
161
122
|
* @returns true if the request was cancelled, false if it wasn't found
|
|
162
123
|
*/
|
|
163
124
|
cancelPhotoRequest(requestId: string): boolean;
|
|
164
125
|
/**
|
|
165
|
-
* ๐งน Cancel all pending photo requests
|
|
126
|
+
* ๐งน Cancel all pending photo requests for this session
|
|
127
|
+
* @deprecated Photo requests are now managed at AppServer level. Use AppServer.cleanupPhotoRequestsForSession() instead.
|
|
166
128
|
*
|
|
167
|
-
* @returns Number of requests that were cancelled
|
|
129
|
+
* @returns Number of requests that were cancelled (always 0, cleanup happens at AppServer level)
|
|
168
130
|
*/
|
|
169
131
|
cancelAllPhotoRequests(): number;
|
|
170
132
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../../../src/app/session/modules/camera.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,SAAS,EAIT,gBAAgB,EAEhB,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEzG,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAA0B,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAG/G;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC7C,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;
|
|
1
|
+
{"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../../../src/app/session/modules/camera.ts"],"names":[],"mappings":"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"}
|