@@ -16,6 +16,8 @@ import {
16
16
APP_BOXEL_MESSAGE_MSGTYPE ,
17
17
APP_BOXEL_ROOM_SKILLS_EVENT_TYPE ,
18
18
APP_BOXEL_ACTIVE_LLM ,
19
+ APP_BOXEL_REALM_SERVER_EVENT_MSGTYPE ,
20
+ APP_BOXEL_REALM_EVENT_TYPE ,
19
21
APP_BOXEL_COMMAND_DEFINITIONS_MSGTYPE ,
20
22
} from ' @cardstack/runtime-common/matrix-constants' ;
21
23
import { type SerializedFile } from ' ./file-api' ;
@@ -274,6 +276,75 @@ export interface CommandResultWithNoOutputContent {
274
276
commandRequestId: string ;
275
277
}
276
278
279
+ export interface RealmServerEvent extends BaseMatrixEvent {
280
+ type: ' m.room.message' ;
281
+ content: RealmServerEventContent ;
282
+ }
283
+
284
+ export interface RealmServerEventContent {
285
+ msgtype: typeof APP_BOXEL_REALM_SERVER_EVENT_MSGTYPE ;
286
+ body: string ;
287
+ }
288
+
289
+ export interface RealmEvent extends BaseMatrixEvent {
290
+ type: typeof APP_BOXEL_REALM_EVENT_TYPE ;
291
+ content: RealmEventContent ;
292
+ }
293
+
294
+ export type RealmEventContent =
295
+ | IndexRealmEventContent
296
+ | UpdateRealmEventContent ;
297
+
298
+ export type IndexRealmEventContent =
299
+ | IncrementalIndexEventContent
300
+ | FullIndexEventContent
301
+ | CopiedIndexEventContent
302
+ | IncrementalIndexInitiationContent ;
303
+
304
+ export interface IncrementalIndexEventContent {
305
+ eventName: ' index' ;
306
+ indexType: ' incremental' ;
307
+ invalidations: string [];
308
+ clientRequestId? : string | null ;
309
+ }
310
+
311
+ interface FullIndexEventContent {
312
+ eventName: ' index' ;
313
+ indexType: ' full' ;
314
+ }
315
+
316
+ interface CopiedIndexEventContent {
317
+ eventName: ' index' ;
318
+ indexType: ' copy' ;
319
+ sourceRealmURL: string ;
320
+ }
321
+
322
+ interface IncrementalIndexInitiationContent {
323
+ eventName: ' index' ;
324
+ indexType: ' incremental-index-initiation' ;
325
+ updatedFile: string ;
326
+ }
327
+
328
+ export type UpdateRealmEventContent =
329
+ | FileAddedEventContent
330
+ | FileUpdatedEventContent
331
+ | FileRemovedEventContent ;
332
+
333
+ interface FileAddedEventContent {
334
+ eventName: ' update' ;
335
+ added: string ;
336
+ }
337
+
338
+ interface FileUpdatedEventContent {
339
+ eventName: ' update' ;
340
+ updated: string ;
341
+ }
342
+
343
+ interface FileRemovedEventContent {
344
+ eventName: ' update' ;
345
+ removed: string ;
346
+ }
347
+
277
348
export type MatrixEvent =
278
349
| RoomCreateEvent
279
350
| RoomJoinRules
@@ -282,6 +353,8 @@ export type MatrixEvent =
282
353
| CommandResultEvent
283
354
| CommandDefinitionsEvent
284
355
| CardMessageEvent
356
+ | RealmServerEvent
357
+ | RealmEvent
285
358
| RoomNameEvent
286
359
| RoomTopicEvent
287
360
| InviteEvent
0 commit comments