@soulcraft/sdk 2.0.2 → 2.2.0

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.
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @module modules/hall/admin
3
+ * @description REST client for the Hall `/admin` API.
4
+ *
5
+ * The admin API provides operational management endpoints for Hall — listing rooms,
6
+ * kicking peers, revoking tokens, viewing config, and reading audit logs.
7
+ *
8
+ * Authentication is via `Authorization: Bearer {admin_secret}` header on all requests.
9
+ * The admin secret is configured in `[admin].secret` in `hall.toml` — it is separate
10
+ * from per-product shared secrets.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { createHallAdmin } from '@soulcraft/sdk/server'
15
+ *
16
+ * const admin = createHallAdmin({
17
+ * hallUrl: 'https://hall.soulcraft.com',
18
+ * secret: process.env.HALL_ADMIN_SECRET!,
19
+ * })
20
+ *
21
+ * // List all rooms
22
+ * const { rooms, count } = await admin.listRooms()
23
+ *
24
+ * // Kick a disruptive peer
25
+ * await admin.kickPeer('room-1', 'user-abc')
26
+ *
27
+ * // View audit trail
28
+ * const { entries } = await admin.getAuditLog(50)
29
+ * ```
30
+ */
31
+ import type { HallAdminOptions, HallAdminClient } from './types.js';
32
+ /**
33
+ * Create a Hall admin REST client.
34
+ *
35
+ * @param options - Hall server URL and admin secret.
36
+ * @returns A `HallAdminClient` ready for use.
37
+ */
38
+ export declare function createHallAdmin(options: HallAdminOptions): HallAdminClient;
39
+ //# sourceMappingURL=admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/modules/hall/admin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAIhB,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CAE1E"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * @module modules/hall/admin
3
+ * @description REST client for the Hall `/admin` API.
4
+ *
5
+ * The admin API provides operational management endpoints for Hall — listing rooms,
6
+ * kicking peers, revoking tokens, viewing config, and reading audit logs.
7
+ *
8
+ * Authentication is via `Authorization: Bearer {admin_secret}` header on all requests.
9
+ * The admin secret is configured in `[admin].secret` in `hall.toml` — it is separate
10
+ * from per-product shared secrets.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { createHallAdmin } from '@soulcraft/sdk/server'
15
+ *
16
+ * const admin = createHallAdmin({
17
+ * hallUrl: 'https://hall.soulcraft.com',
18
+ * secret: process.env.HALL_ADMIN_SECRET!,
19
+ * })
20
+ *
21
+ * // List all rooms
22
+ * const { rooms, count } = await admin.listRooms()
23
+ *
24
+ * // Kick a disruptive peer
25
+ * await admin.kickPeer('room-1', 'user-abc')
26
+ *
27
+ * // View audit trail
28
+ * const { entries } = await admin.getAuditLog(50)
29
+ * ```
30
+ */
31
+ /**
32
+ * Create a Hall admin REST client.
33
+ *
34
+ * @param options - Hall server URL and admin secret.
35
+ * @returns A `HallAdminClient` ready for use.
36
+ */
37
+ export function createHallAdmin(options) {
38
+ return new HallAdminClientImpl(options);
39
+ }
40
+ class HallAdminClientImpl {
41
+ #baseUrl;
42
+ #secret;
43
+ constructor(options) {
44
+ this.#baseUrl = options.hallUrl.replace(/\/$/, '');
45
+ this.#secret = options.secret;
46
+ }
47
+ async listRooms() {
48
+ return this.#get('/admin/rooms');
49
+ }
50
+ async getRoom(roomId) {
51
+ return this.#get(`/admin/rooms/${encodeURIComponent(roomId)}`);
52
+ }
53
+ async closeRoom(roomId) {
54
+ await this.#delete(`/admin/rooms/${encodeURIComponent(roomId)}`);
55
+ }
56
+ async kickPeer(roomId, peerId) {
57
+ await this.#delete(`/admin/rooms/${encodeURIComponent(roomId)}/peers/${encodeURIComponent(peerId)}`);
58
+ }
59
+ async revokeToken(token) {
60
+ await this.#post('/admin/revoke-token', { token });
61
+ }
62
+ async listProducts() {
63
+ return this.#get('/admin/products');
64
+ }
65
+ async listTopics() {
66
+ return this.#get('/admin/pubsub/topics');
67
+ }
68
+ async getConfig() {
69
+ return this.#get('/admin/config');
70
+ }
71
+ async reloadConfig() {
72
+ return this.#post('/admin/config/reload', {});
73
+ }
74
+ async getAuditLog(limit) {
75
+ const qs = limit ? `?limit=${limit}` : '';
76
+ return this.#get(`/admin/audit${qs}`);
77
+ }
78
+ // ── Private helpers ─────────────────────────────────────────────────────────
79
+ async #get(path) {
80
+ const res = await fetch(`${this.#baseUrl}${path}`, {
81
+ headers: { 'Authorization': `Bearer ${this.#secret}` },
82
+ });
83
+ if (!res.ok) {
84
+ throw new Error(`Hall admin ${path}: ${res.status} ${await res.text()}`);
85
+ }
86
+ return res.json();
87
+ }
88
+ async #post(path, body) {
89
+ const res = await fetch(`${this.#baseUrl}${path}`, {
90
+ method: 'POST',
91
+ headers: {
92
+ 'Authorization': `Bearer ${this.#secret}`,
93
+ 'Content-Type': 'application/json',
94
+ },
95
+ body: JSON.stringify(body),
96
+ });
97
+ if (!res.ok) {
98
+ throw new Error(`Hall admin ${path}: ${res.status} ${await res.text()}`);
99
+ }
100
+ // Some endpoints return 204 No Content.
101
+ if (res.status === 204)
102
+ return undefined;
103
+ return res.json();
104
+ }
105
+ async #delete(path) {
106
+ const res = await fetch(`${this.#baseUrl}${path}`, {
107
+ method: 'DELETE',
108
+ headers: { 'Authorization': `Bearer ${this.#secret}` },
109
+ });
110
+ if (!res.ok) {
111
+ throw new Error(`Hall admin ${path}: ${res.status} ${await res.text()}`);
112
+ }
113
+ }
114
+ }
115
+ //# sourceMappingURL=admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/modules/hall/admin.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@
28
28
  * const { token } = await hall.createSessionToken('cohort-123', 'user-456')
29
29
  * ```
30
30
  */
31
- import type { HallConnectionOptions, HallModule, HallPubsubEvents, HallRoom, HallRoomEvents, HallPeerRole, RoomOptions, ScreenShareMode } from './types.js';
31
+ import type { HallConnectionOptions, HallModule, HallPubsubEvents, HallRoom, HallRoomEvents, HallPeerRole, RoomOptions, ScreenShareMode, WhipSession, TokenRevokedEvent } from './types.js';
32
32
  type Listener<T> = (event: T) => void;
33
33
  /**
34
34
  * Concrete implementation of the {@link HallRoom} interface.
@@ -221,6 +221,42 @@ export declare class HallClient implements HallModule {
221
221
  * @param lastN - Maximum number of recent messages to return.
222
222
  */
223
223
  getChatHistory(roomId: string, lastN?: number): void;
224
+ /**
225
+ * Revoke a session token. The token becomes invalid immediately.
226
+ *
227
+ * @param token - The session token string to revoke.
228
+ */
229
+ revokeToken(token: string): void;
230
+ /**
231
+ * Register a listener for token revocation confirmations.
232
+ *
233
+ * @param listener - Called with the token hash on confirmation.
234
+ */
235
+ onTokenRevoked(listener: (data: TokenRevokedEvent) => void): void;
236
+ /**
237
+ * Create a WHIP ingest session for an external publisher.
238
+ * Uses HTTP POST to `/whip/{roomId}` with the product secret.
239
+ *
240
+ * @param roomId - Room to publish into.
241
+ * @param sdpOffer - Raw SDP offer from the publisher.
242
+ * @returns WHIP session with resourceId and answerSdp.
243
+ */
244
+ createWhipSession(roomId: string, sdpOffer: string): Promise<WhipSession>;
245
+ /**
246
+ * Send a trickle ICE candidate to an active WHIP session.
247
+ *
248
+ * @param roomId - Room the WHIP session belongs to.
249
+ * @param resourceId - Resource ID from createWhipSession.
250
+ * @param candidate - ICE candidate in trickle-ice-sdpfrag format.
251
+ */
252
+ addWhipIceCandidate(roomId: string, resourceId: string, candidate: string): Promise<void>;
253
+ /**
254
+ * Tear down a WHIP session and remove the publisher peer.
255
+ *
256
+ * @param roomId - Room the WHIP session belongs to.
257
+ * @param resourceId - Resource ID from createWhipSession.
258
+ */
259
+ closeWhipSession(roomId: string, resourceId: string): Promise<void>;
224
260
  }
225
261
  /**
226
262
  * Create a server-mode Hall module that connects to the Hall standalone server.
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/modules/hall/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/modules/hall/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,KAAK,EACV,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,cAAc,EAEd,YAAY,EACZ,WAAW,EACX,eAAe,EACf,WAAW,EACX,iBAAiB,EAoBlB,MAAM,YAAY,CAAA;AAInB,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;AAGrC;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,QAAQ;;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;gBAoBd,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAK7C,EAAE,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAKzF,GAAG,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAK1F,iFAAiF;IACjF,SAAS,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI;CAStF;AAgBD;;;;;;;;;;GAUG;AACH,qBAAa,UAAW,YAAW,UAAU;;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IAkCpB;;OAEG;gBACS,OAAO,EAAE,qBAAqB;IAS1C;;;;;;OAMG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAItD;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAMvC;;;;;;;OAOG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAQ5E;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxC;;;;OAIG;IACH,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ9B;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAMjD;;;;;;;;;OASG;IACH,kBAAkB,CAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAWhD;;;;;OAKG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5C;;;;;OAKG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAKvE;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKrC;;;;;OAKG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAKrD;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhC;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAIzG;;;;;;;OAOG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAUhD;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKjD;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAOhD;;;;;;OAMG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI;IAO/E;;;;;OAKG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAOpD;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhC;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;IAMjE;;;;;;;OAOG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAqB/E;;;;;;OAMG;IACG,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/F;;;;;OAKG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAgU1E;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,qBAAqB,GAAG,UAAU,CAE3E"}
@@ -110,6 +110,7 @@ export class HallClient {
110
110
  #pendingPubsubToken = [];
111
111
  #disconnectListeners = new Set();
112
112
  #reconnectListeners = new Set();
113
+ #tokenRevokedListeners = new Set();
113
114
  #pubsubListeners = {
114
115
  topicSubscribed: new Set(),
115
116
  topicUnsubscribed: new Set(),
@@ -373,6 +374,88 @@ export class HallClient {
373
374
  this.#requireConnected();
374
375
  this.#send({ t: 'getChatHistory', d: { roomId, lastN } });
375
376
  }
377
+ // ── Token revocation ──────────────────────────────────────────────────────
378
+ /**
379
+ * Revoke a session token. The token becomes invalid immediately.
380
+ *
381
+ * @param token - The session token string to revoke.
382
+ */
383
+ revokeToken(token) {
384
+ this.#requireConnected();
385
+ this.#send({ t: 'revokeToken', d: { token } });
386
+ }
387
+ /**
388
+ * Register a listener for token revocation confirmations.
389
+ *
390
+ * @param listener - Called with the token hash on confirmation.
391
+ */
392
+ onTokenRevoked(listener) {
393
+ this.#tokenRevokedListeners.add(listener);
394
+ }
395
+ // ── WHIP ingestion ────────────────────────────────────────────────────────
396
+ /**
397
+ * Create a WHIP ingest session for an external publisher.
398
+ * Uses HTTP POST to `/whip/{roomId}` with the product secret.
399
+ *
400
+ * @param roomId - Room to publish into.
401
+ * @param sdpOffer - Raw SDP offer from the publisher.
402
+ * @returns WHIP session with resourceId and answerSdp.
403
+ */
404
+ async createWhipSession(roomId, sdpOffer) {
405
+ const httpUrl = this.url.replace(/^ws/, 'http');
406
+ const res = await fetch(`${httpUrl}/whip/${encodeURIComponent(roomId)}`, {
407
+ method: 'POST',
408
+ headers: {
409
+ 'Content-Type': 'application/sdp',
410
+ 'Authorization': `Bearer ${this.#secret}`,
411
+ },
412
+ body: sdpOffer,
413
+ });
414
+ if (!res.ok) {
415
+ throw new Error(`WHIP offer failed: ${res.status} ${await res.text()}`);
416
+ }
417
+ const location = res.headers.get('Location') ?? '';
418
+ const resourceId = location.split('/').pop() ?? '';
419
+ const answerSdp = await res.text();
420
+ // Extract peer ID from the session (Hall generates whip-{uuid}).
421
+ const peerId = `whip-${resourceId}`;
422
+ return { resourceId, answerSdp, roomId, peerId };
423
+ }
424
+ /**
425
+ * Send a trickle ICE candidate to an active WHIP session.
426
+ *
427
+ * @param roomId - Room the WHIP session belongs to.
428
+ * @param resourceId - Resource ID from createWhipSession.
429
+ * @param candidate - ICE candidate in trickle-ice-sdpfrag format.
430
+ */
431
+ async addWhipIceCandidate(roomId, resourceId, candidate) {
432
+ const httpUrl = this.url.replace(/^ws/, 'http');
433
+ const res = await fetch(`${httpUrl}/whip/${encodeURIComponent(roomId)}/${encodeURIComponent(resourceId)}`, {
434
+ method: 'PATCH',
435
+ headers: {
436
+ 'Content-Type': 'application/trickle-ice-sdpfrag',
437
+ },
438
+ body: candidate,
439
+ });
440
+ if (!res.ok) {
441
+ throw new Error(`WHIP ICE failed: ${res.status} ${await res.text()}`);
442
+ }
443
+ }
444
+ /**
445
+ * Tear down a WHIP session and remove the publisher peer.
446
+ *
447
+ * @param roomId - Room the WHIP session belongs to.
448
+ * @param resourceId - Resource ID from createWhipSession.
449
+ */
450
+ async closeWhipSession(roomId, resourceId) {
451
+ const httpUrl = this.url.replace(/^ws/, 'http');
452
+ const res = await fetch(`${httpUrl}/whip/${encodeURIComponent(roomId)}/${encodeURIComponent(resourceId)}`, {
453
+ method: 'DELETE',
454
+ });
455
+ if (!res.ok) {
456
+ throw new Error(`WHIP delete failed: ${res.status} ${await res.text()}`);
457
+ }
458
+ }
376
459
  // ── Private: socket management ─────────────────────────────────────────────
377
460
  #openSocket() {
378
461
  const ws = new WebSocket(`${this.url}/ws/product`);
@@ -574,6 +657,16 @@ export class HallClient {
574
657
  pending?.resolve({ token: msg.d.token, expiresAt: msg.d.expiresAt });
575
658
  break;
576
659
  }
660
+ case 'tokenRevoked':
661
+ for (const listener of this.#tokenRevokedListeners) {
662
+ try {
663
+ listener(msg.d);
664
+ }
665
+ catch (e) {
666
+ console.error('[Hall] uncaught error in tokenRevoked listener:', e);
667
+ }
668
+ }
669
+ break;
577
670
  case 'recordingStarted':
578
671
  case 'dataSent':
579
672
  // Informational acks — no pending promise to resolve.
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/modules/hall/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/modules/hall/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAuCpE;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IACd,MAAM,CAAQ;IACd,SAAS,CAAQ;IAEjB,UAAU,GAAoB;QACrC,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,gBAAgB,EAAE,IAAI,GAAG,EAAE;QAC3B,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,iBAAiB,EAAE,IAAI,GAAG,EAAE;QAC5B,YAAY,EAAE,IAAI,GAAG,EAAE;QACvB,WAAW,EAAE,IAAI,GAAG,EAAE;QACtB,WAAW,EAAE,IAAI,GAAG,EAAE;QACtB,oBAAoB,EAAE,IAAI,GAAG,EAAE;QAC/B,WAAW,EAAE,IAAI,GAAG,EAAE;QACtB,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,MAAM,EAAE,IAAI,GAAG,EAAE;KAClB,CAAA;IAED,YAAY,MAAc,EAAE,SAAiB;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED,EAAE,CAAiC,KAAQ,EAAE,QAAqC;QAChF,CAAC;QAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAsC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC3E,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAiC,KAAQ,EAAE,QAAqC;QACjF,CAAC;QAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAsC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC9E,OAAO,IAAI,CAAA;IACb,CAAC;IAED,iFAAiF;IACjF,SAAS,CAAiC,KAAQ,EAAE,OAA0B;QAC5E,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAqC,EAAE,CAAC;YAClF,IAAI,CAAC;gBACH,QAAQ,CAAC,OAAO,CAAC,CAAA;YACnB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,MAAM,KAAK,KAAK,YAAY,EAAE,CAAC,CAAC,CAAA;YACvF,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAcD,iFAAiF;AAEjF;;;;;;;;;;GAUG;AACH,MAAM,OAAO,UAAU;IACZ,GAAG,CAAQ;IAEX,YAAY,CAAQ;IACpB,OAAO,CAAQ;IACf,iBAAiB,CAAQ;IAElC,GAAG,GAAqB,IAAI,CAAA;IAC5B,cAAc,GAAG,KAAK,CAAA;IACtB,OAAO,GAAG,KAAK,CAAA;IAEN,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAA;IAEjD,eAAe,GAAgC,IAAI,CAAA;IAC1C,kBAAkB,GAAG,IAAI,GAAG,EAAwC,CAAA;IACpE,iBAAiB,GAAG,IAAI,GAAG,EAAgC,CAAA;IAC3D,oBAAoB,GAAG,IAAI,GAAG,EAGpC,CAAA;IACM,gBAAgB,GAAoC,EAAE,CAAA;IACtD,mBAAmB,GAAgE,EAAE,CAAA;IAErF,oBAAoB,GAAG,IAAI,GAAG,EAA4B,CAAA;IAC1D,mBAAmB,GAAG,IAAI,GAAG,EAAc,CAAA;IAC3C,sBAAsB,GAAG,IAAI,GAAG,EAAqC,CAAA;IAErE,gBAAgB,GAAsB;QAC7C,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,iBAAiB,EAAE,IAAI,GAAG,EAAE;QAC5B,YAAY,EAAE,IAAI,GAAG,EAAE;QACvB,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,gBAAgB,EAAE,IAAI,GAAG,EAAE;KAC5B,CAAA;IAED;;OAEG;IACH,YAAY,OAA8B;QACxC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACtB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAA;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAA;QAC7B,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAA;IAC3D,CAAC;IAED,8EAA8E;IAE9E;;;;;;OAMG;IACH,OAAO;QACL,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,CAAC,eAAe,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;YAC1C,IAAI,CAAC,WAAW,EAAE,CAAA;QACpB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QACrD,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAA;QACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;IACjB,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,QAAkC;QAC7C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,QAAoB;QAC9B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACxC,CAAC;IAED,8EAA8E;IAE9E;;;;;;;OAOG;IACH,UAAU,CAAC,MAAc,EAAE,UAAuB,EAAE;QAClD,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,OAAO,IAAI,OAAO,CAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YACxD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YACvD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,OAAO,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YAC/C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,MAAc;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IAED,8EAA8E;IAE9E;;;;;;;;;OASG;IACH,kBAAkB,CAChB,MAAc,EACd,MAAc,EACd,OAAgB,EAChB,IAAmB;QAEnB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAA;QACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YACvD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;QAC/E,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,8EAA8E;IAE9E;;;;;OAKG;IACH,cAAc,CAAC,MAAc;QAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YAC5C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;YAClD,OAAO,EAAE,CAAA;QACX,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,MAAc;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YAC5C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;YACjD,OAAO,EAAE,CAAA;QACX,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,8EAA8E;IAE9E;;;;;OAKG;IACH,cAAc,CAAC,KAAa,EAAE,QAAkC;QAC9D,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,KAAa;QAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;IACrD,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,KAAa,EAAE,OAAgB;QAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;IAChD,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAmC,KAAQ,EAAE,QAA6C;QAChG,CAAC;QAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAA8C,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC3F,CAAC;IAED;;;;;;;OAOG;IACH,iBAAiB,CACf,MAAc,EACd,aAAwB,EACxB,OAAgB;QAEhB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YAClD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;QAC/E,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,8EAA8E;IAE9E;;;;;OAKG;IACH,WAAW,CAAC,MAAc,EAAE,MAAc;QACxC,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;IACzD,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,MAAc,EAAE,MAAc;QACvC,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;IACxD,CAAC;IAED,8EAA8E;IAE9E;;;;;;OAMG;IACH,kBAAkB,CAAC,MAAc,EAAE,MAAc,EAAE,IAAqB;QACtE,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,8EAA8E;IAE9E;;;;;OAKG;IACH,cAAc,CAAC,MAAc,EAAE,KAAc;QAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED,6EAA6E;IAE7E;;;;OAIG;IACH,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;IAChD,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,QAA2C;QACxD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC3C,CAAC;IAED,6EAA6E;IAE7E;;;;;;;OAOG;IACH,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,QAAgB;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC/C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE;YACvE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,iBAAiB;gBACjC,eAAe,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE;aAC1C;YACD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACzE,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;QAClD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;QAClD,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QAClC,iEAAiE;QACjE,MAAM,MAAM,GAAG,QAAQ,UAAU,EAAE,CAAA;QACnC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;IAClD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,UAAkB,EAAE,SAAiB;QAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC/C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,kBAAkB,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,EAAE,EAAE;YACzG,MAAM,EAAE,OAAO;YACf,OAAO,EAAE;gBACP,cAAc,EAAE,iCAAiC;aAClD;YACD,IAAI,EAAE,SAAS;SAChB,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,UAAkB;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC/C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,kBAAkB,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,EAAE,EAAE;YACzG,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC,MAAM,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC;IAED,8EAA8E;IAE9E,WAAW;QACT,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,aAAa,CAAC,CAAA;QAClD,EAAE,CAAC,UAAU,GAAG,aAAa,CAAA;QAC7B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QAEb,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE;YACf,4EAA4E;YAC5E,6EAA6E;YAC7E,uEAAuE;YACvE,gEAAgE;YAChE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;QAC/G,CAAC,CAAA;QAED,EAAE,CAAC,SAAS,GAAG,CAAC,EAAgB,EAAE,EAAE;YAClC,IAAI,GAAsB,CAAA;YAC1B,IAAI,CAAC;gBACH,GAAG,GAAG,iBAAiB,CAAC,EAAE,CAAC,IAAmB,CAAC,CAAA;YACjD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,CAAC,CAAC,CAAA;gBAC3D,OAAM;YACR,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC,CAAA;QAED,EAAE,CAAC,OAAO,GAAG,CAAC,EAAc,EAAE,EAAE;YAC9B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAA;YAC3B,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;YAE7C,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC,CAAA;gBAC3E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;YAC7B,CAAC;YAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC,CAAA;YAEjE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;gBAChD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,oBAAoB;oBAAE,CAAC,CAAC,MAAM,CAAC,CAAA;gBACpD,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAA;YAC7D,CAAC;QACH,CAAC,CAAA;QAED,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE;YAChB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QACzC,CAAC,CAAA;IACH,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,OAAO;YAAE,OAAM;QACxB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QACnB,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,CAAC,OAAO,EAAE;aACX,IAAI,CAAC,GAAG,EAAE;YACT,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,mBAAmB;gBAAE,CAAC,EAAE,CAAA;QAC/C,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,GAA4C;QAChD,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;QACpE,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;IACvC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACzE,CAAC;IACH,CAAC;IAED,8EAA8E;IAE9E,eAAe,CAAmC,KAAQ,EAAE,OAA4B;QACtF,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAA6C,EAAE,CAAC;YAChG,IAAI,CAAC;gBACH,QAAQ,CAAC,OAAO,CAAC,CAAA;YACnB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,oCAAoC,KAAK,aAAa,EAAE,CAAC,CAAC,CAAA;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;IAED,8EAA8E;IAE9E,cAAc,CAAC,GAAsB;QACnC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;YACd,KAAK,QAAQ;gBACX,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;gBAC1B,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAA;gBAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;gBAC3B,MAAK;YAEP,KAAK,YAAY;gBACf,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;gBACrD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;gBAC3B,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAA;gBACjB,MAAK;YAEP,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;gBAC5D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;gBACnC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;gBACzD,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;oBAC5C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBACvB,CAAC;gBACD,MAAK;YACP,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;gBAC1C,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;oBAClD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;gBAClC,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;gBACxD,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;oBAC3C,OAAO,CAAC,OAAO,EAAE,CAAA;gBACnB,CAAC;gBACD,MAAK;YACP,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAA;gBAC7C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;gBAC/B,MAAK;YACP,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,0EAA0E;gBAC1E,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBACvD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBACrC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;oBACnE,MAAK;gBACP,CAAC;gBACD,MAAK;YACP,CAAC;YAED,KAAK,OAAO;gBACV,OAAO,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;gBACnE,IAAI,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;gBAClD,MAAK;YAEP,wEAAwE;YAExE,KAAK,YAAY;gBACf,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAoB,CAAC,CAAA;gBAC7E,MAAK;YAEP,KAAK,gBAAgB;gBACnB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAwB,CAAC,CAAA;gBACrF,MAAK;YAEP,KAAK,kBAAkB;gBACrB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAA0B,CAAC,CAAA;gBACzF,MAAK;YAEP,KAAK,gBAAgB;gBACnB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAwB,CAAC,CAAA;gBACrF,MAAK;YAEP,KAAK,YAAY;gBACf,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAoB,CAAC,CAAA;gBAC7E,MAAK;YAEP,KAAK,UAAU;gBACb,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,CAAkB,CAAC,CAAA;gBACzE,MAAK;YAEP,KAAK,mBAAmB;gBACtB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,QAA6B,CAAC,CAAA;gBAC/F,MAAK;YAEP,KAAK,cAAc;gBACjB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,CAAsB,CAAC,CAAA;gBACjF,MAAK;YAEP,KAAK,aAAa;gBAChB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,CAAqB,CAAC,CAAA;gBAC/E,MAAK;YAEP,KAAK,aAAa;gBAChB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,CAAqB,CAAC,CAAA;gBAC/E,MAAK;YAEP,KAAK,sBAAsB;gBACzB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAA8B,CAAC,CAAA;gBACjG,MAAK;YAEP,KAAK,aAAa;gBAChB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,CAAqB,CAAC,CAAA;gBAC/E,MAAK;YAEP,KAAK,YAAY;gBACf,iFAAiF;gBACjF,kFAAkF;gBAClF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;oBACxC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,CAAoB,CAAC,CAAA;gBACxD,CAAC;gBACD,MAAK;YAEP,KAAK,YAAY;gBACf,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;oBACxC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,CAAoB,CAAC,CAAA;gBACxD,CAAC;gBACD,MAAK;YAEP,wEAAwE;YAExE,KAAK,iBAAiB;gBACpB,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAyB,CAAC,CAAA;gBACtE,MAAK;YAEP,KAAK,mBAAmB;gBACtB,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAA2B,CAAC,CAAA;gBAC1E,MAAK;YAEP,KAAK,cAAc;gBACjB,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,GAAG,CAAC,CAAsB,CAAC,CAAA;gBAChE,MAAK;YAEP,KAAK,gBAAgB;gBACnB,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAwB,CAAC,CAAA;gBACpE,MAAK;YAEP,KAAK,kBAAkB;gBACrB,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAA0B,CAAC,CAAA;gBACxE,MAAK;YAEP,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAA;gBAChD,OAAO,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;gBACpE,MAAK;YACP,CAAC;YAED,KAAK,cAAc;gBACjB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBACnD,IAAI,CAAC;wBACH,QAAQ,CAAC,GAAG,CAAC,CAAsB,CAAC,CAAA;oBACtC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,CAAC,CAAC,CAAA;oBACrE,CAAC;gBACH,CAAC;gBACD,MAAK;YAEP,KAAK,kBAAkB,CAAC;YACxB,KAAK,UAAU;gBACb,sDAAsD;gBACtD,MAAK;QACT,CAAC;IACH,CAAC;IAED,kBAAkB,CAChB,MAAc,EACd,KAAQ,EACR,OAA0B;QAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACpC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAChC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,oBAAoB,KAAK,uBAAuB,MAAM,GAAG,CAAC,CAAA;QACzE,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,GAAU;QAC1B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACrD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAA;QAC/B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACpD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAA;QAC9B,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACvD,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAA;QACjC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACnD,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAA;QAChC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACtD,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAA;IACrC,CAAC;IAED,mBAAmB,CAAC,GAAU;QAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC/C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACnC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACb,OAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC9C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAClC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACb,OAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACjD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACrC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACb,OAAM;QACR,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAA;QACjD,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACvB,OAAM;QACR,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAA;QACtD,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACzB,OAAM;QACR,CAAC;IACH,CAAC;CACF;AAED,iFAAiF;AAEjF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA8B;IAC7D,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC"}
@@ -122,6 +122,25 @@ export interface RoomOptions {
122
122
  * Retried with exponential backoff (3 attempts).
123
123
  */
124
124
  recordingWebhookUrl?: string;
125
+ /**
126
+ * Minimum peer count before selective transcription kicks in.
127
+ * When the room has at least this many peers, only the active speaker's audio
128
+ * is sent to Whisper (saves CPU). Set to 0 or omit to transcribe all peers.
129
+ * Default: 0 (disabled).
130
+ */
131
+ selectiveTranscriptionThreshold?: number;
132
+ /**
133
+ * Webhook URL for room event delivery via HTTP POST.
134
+ * Hall POSTs JSON events with `X-Hall-Signature: hmac-sha256(body, product_secret)`
135
+ * header for verification. Retried with exponential backoff (3 attempts).
136
+ */
137
+ webhookUrl?: string;
138
+ /**
139
+ * Filter which events are delivered to `webhookUrl`.
140
+ * e.g. `["peerJoined", "peerLeft", "transcript", "roomClosed"]`.
141
+ * If omitted, all room events are delivered.
142
+ */
143
+ webhookEvents?: string[];
125
144
  }
126
145
  /**
127
146
  * Manifest emitted when recording stops.
@@ -206,6 +225,99 @@ export interface PeerLeftEvent {
206
225
  roomId: string;
207
226
  peerId: string;
208
227
  }
228
+ /** Confirmation that a session token was revoked. */
229
+ export interface TokenRevokedEvent {
230
+ /** Hash of the revoked token (for log correlation, not the token itself). */
231
+ tokenHash: string;
232
+ }
233
+ /** Result of creating a WHIP ingest session. */
234
+ export interface WhipSession {
235
+ /** Resource ID for trickle ICE and teardown (URL path suffix). */
236
+ resourceId: string;
237
+ /** SDP answer to pass back to the WHIP publisher (OBS, FFmpeg, etc.). */
238
+ answerSdp: string;
239
+ /** Room ID this session publishes into. */
240
+ roomId: string;
241
+ /** Peer ID assigned to this publisher in the room. */
242
+ peerId: string;
243
+ }
244
+ /** Options for creating a Hall admin client. */
245
+ export interface HallAdminOptions {
246
+ /** Base HTTP URL of the Hall server (e.g. `"https://hall.soulcraft.com"`). */
247
+ hallUrl: string;
248
+ /** Admin secret from `[admin].secret` in `hall.toml`. */
249
+ secret: string;
250
+ }
251
+ /** A room entry from the admin room list. */
252
+ export interface AdminRoom {
253
+ roomId: string;
254
+ sessionId: string;
255
+ }
256
+ /** A connected product from the admin products list. */
257
+ export interface AdminProduct {
258
+ name: string;
259
+ connections: number;
260
+ }
261
+ /** An audit log entry from the admin audit endpoint. */
262
+ export interface AuditEntry {
263
+ timestampMs: number;
264
+ eventType: string;
265
+ [key: string]: unknown;
266
+ }
267
+ /**
268
+ * REST client for the Hall `/admin` API.
269
+ *
270
+ * Separate from `HallModule` — uses HTTP with `Authorization: Bearer {admin_secret}`
271
+ * rather than the product WebSocket connection. Create via `createHallAdmin()`.
272
+ *
273
+ * @example
274
+ * ```typescript
275
+ * import { createHallAdmin } from '@soulcraft/sdk/server'
276
+ *
277
+ * const admin = createHallAdmin({
278
+ * hallUrl: 'https://hall.soulcraft.com',
279
+ * secret: process.env.HALL_ADMIN_SECRET!,
280
+ * })
281
+ * const { rooms } = await admin.listRooms()
282
+ * await admin.kickPeer('room-1', 'disruptive-user')
283
+ * ```
284
+ */
285
+ export interface HallAdminClient {
286
+ /** List all active rooms with session IDs. */
287
+ listRooms(): Promise<{
288
+ rooms: AdminRoom[];
289
+ count: number;
290
+ }>;
291
+ /** Get detail for a single room. */
292
+ getRoom(roomId: string): Promise<AdminRoom>;
293
+ /** Force-close a room and disconnect all peers. */
294
+ closeRoom(roomId: string): Promise<void>;
295
+ /** Kick a peer from a room. */
296
+ kickPeer(roomId: string, peerId: string): Promise<void>;
297
+ /** Revoke a session token. */
298
+ revokeToken(token: string): Promise<void>;
299
+ /** List connected products with connection counts. */
300
+ listProducts(): Promise<{
301
+ products: AdminProduct[];
302
+ }>;
303
+ /** List pub/sub topics with subscriber counts. */
304
+ listTopics(): Promise<{
305
+ topicCount: number;
306
+ totalSubscribers: number;
307
+ totalMessages: number;
308
+ }>;
309
+ /** Get current config (secrets redacted). */
310
+ getConfig(): Promise<Record<string, unknown>>;
311
+ /** Trigger a config reload (equivalent to SIGHUP). */
312
+ reloadConfig(): Promise<{
313
+ status: string;
314
+ }>;
315
+ /** Get recent audit log entries. */
316
+ getAuditLog(limit?: number): Promise<{
317
+ entries: AuditEntry[];
318
+ count: number;
319
+ }>;
320
+ }
209
321
  /** A single replayed message from a topic's replay buffer. */
210
322
  export interface ReplayEntry {
211
323
  /** Sender identifier (product name or peer ID). */
@@ -485,6 +597,11 @@ export type HallClientMessage = {
485
597
  roomId: string;
486
598
  lastN?: number | undefined;
487
599
  };
600
+ } | {
601
+ t: 'revokeToken';
602
+ d: {
603
+ token: string;
604
+ };
488
605
  };
489
606
  /**
490
607
  * Messages sent from the Hall server to the product backend.
@@ -606,6 +723,9 @@ export type HallServerMessage = {
606
723
  } | {
607
724
  t: 'chatHistory';
608
725
  d: ChatHistoryEvent;
726
+ } | {
727
+ t: 'tokenRevoked';
728
+ d: TokenRevokedEvent;
609
729
  };
610
730
  /** Event map for server-side {@link HallRoom} listeners. */
611
731
  export interface HallRoomEvents {
@@ -815,6 +935,43 @@ export interface HallModule {
815
935
  * @param lastN - Maximum number of recent messages to return (default: all stored).
816
936
  */
817
937
  getChatHistory(roomId: string, lastN?: number): void;
938
+ /**
939
+ * Revoke a session token. The token becomes invalid immediately — any browser
940
+ * client attempting to connect with it will be rejected.
941
+ *
942
+ * @param token - The session token string to revoke.
943
+ */
944
+ revokeToken(token: string): void;
945
+ /**
946
+ * Register a listener for token revocation confirmations.
947
+ *
948
+ * @param listener - Called with the token hash (not the token itself) on confirmation.
949
+ */
950
+ onTokenRevoked(listener: (data: TokenRevokedEvent) => void): void;
951
+ /**
952
+ * Create a WHIP ingest session for an external publisher (OBS, FFmpeg, GStreamer).
953
+ * The publisher's media is injected into the room as a named peer.
954
+ *
955
+ * @param roomId - Room to publish into (must already exist).
956
+ * @param sdpOffer - Raw SDP offer from the publisher.
957
+ * @returns WHIP session with `resourceId` and `answerSdp`.
958
+ */
959
+ createWhipSession(roomId: string, sdpOffer: string): Promise<WhipSession>;
960
+ /**
961
+ * Send a trickle ICE candidate to an active WHIP session.
962
+ *
963
+ * @param roomId - Room the WHIP session belongs to.
964
+ * @param resourceId - Resource ID from `createWhipSession`.
965
+ * @param candidate - ICE candidate in `application/trickle-ice-sdpfrag` format.
966
+ */
967
+ addWhipIceCandidate(roomId: string, resourceId: string, candidate: string): Promise<void>;
968
+ /**
969
+ * Tear down a WHIP session and remove the publisher peer from the room.
970
+ *
971
+ * @param roomId - Room the WHIP session belongs to.
972
+ * @param resourceId - Resource ID from `createWhipSession`.
973
+ */
974
+ closeWhipSession(roomId: string, resourceId: string): Promise<void>;
818
975
  }
819
976
  /** Event map for pub/sub events on the server-side Hall connection. */
820
977
  export interface HallPubsubEvents {