@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.
- package/dist/modules/hall/admin.d.ts +39 -0
- package/dist/modules/hall/admin.d.ts.map +1 -0
- package/dist/modules/hall/admin.js +115 -0
- package/dist/modules/hall/admin.js.map +1 -0
- package/dist/modules/hall/server.d.ts +37 -1
- package/dist/modules/hall/server.d.ts.map +1 -1
- package/dist/modules/hall/server.js +93 -0
- package/dist/modules/hall/server.js.map +1 -1
- package/dist/modules/hall/types.d.ts +157 -0
- package/dist/modules/hall/types.d.ts.map +1 -1
- package/dist/server/hall-handlers.d.ts +20 -2
- package/dist/server/hall-handlers.d.ts.map +1 -1
- package/dist/server/hall-handlers.js +21 -0
- package/dist/server/hall-handlers.js.map +1 -1
- package/dist/server/index.d.ts +3 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/namespace-router.d.ts +21 -2
- package/dist/server/namespace-router.d.ts.map +1 -1
- package/dist/server/namespace-router.js +26 -13
- package/dist/server/namespace-router.js.map +1 -1
- package/dist/server/ws-handler.d.ts +167 -0
- package/dist/server/ws-handler.d.ts.map +1 -0
- package/dist/server/ws-handler.js +243 -0
- package/dist/server/ws-handler.js.map +1 -0
- package/dist/transports/ws.d.ts +29 -1
- package/dist/transports/ws.d.ts.map +1 -1
- package/dist/transports/ws.js +129 -3
- package/dist/transports/ws.js.map +1 -1
- package/package.json +1 -1
|
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,KAAK,EACV,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,cAAc,EAEd,YAAY,EACZ,WAAW,EACX,eAAe,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/modules/hall/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"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"}
|
|
@@ -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 {
|