hci-atrium 0.3.0 → 0.4.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/README.md +75 -24
- package/dist/atrium.d.ts +126 -42
- package/dist/atrium.d.ts.map +1 -1
- package/dist/atrium.js +192 -87
- package/dist/atrium.js.map +1 -1
- package/dist/dash.d.ts +3 -3
- package/dist/dash.d.ts.map +1 -1
- package/dist/dash.js +1 -2
- package/dist/dash.js.map +1 -1
- package/dist/env.d.ts +14 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +22 -0
- package/dist/env.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/models.d.ts +84 -31
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +97 -25
- package/dist/models.js.map +1 -1
- package/dist/player/play-command.d.ts +6 -6
- package/dist/player/play-command.d.ts.map +1 -1
- package/dist/player/play-intent.d.ts.map +1 -1
- package/dist/player/play-intent.js +2 -1
- package/dist/player/play-intent.js.map +1 -1
- package/dist/player/runtime.d.ts +7 -3
- package/dist/player/runtime.d.ts.map +1 -1
- package/dist/player/runtime.js.map +1 -1
- package/dist/react/use-room-connection.d.ts +4 -1
- package/dist/react/use-room-connection.d.ts.map +1 -1
- package/dist/react/use-room-connection.js +5 -1
- package/dist/react/use-room-connection.js.map +1 -1
- package/dist/rooms/index.d.ts +3 -1
- package/dist/rooms/index.d.ts.map +1 -1
- package/dist/rooms/index.js +4 -3
- package/dist/rooms/index.js.map +1 -1
- package/dist/rooms/offer-transcription.d.ts +1 -1
- package/dist/rooms/offer-transcription.js +1 -1
- package/dist/rooms/owned-room.d.ts +251 -0
- package/dist/rooms/owned-room.d.ts.map +1 -0
- package/dist/rooms/owned-room.js +844 -0
- package/dist/rooms/owned-room.js.map +1 -0
- package/dist/rooms/recorder.d.ts +1 -1
- package/dist/rooms/recorder.js +1 -1
- package/dist/rooms/room.d.ts +86 -277
- package/dist/rooms/room.d.ts.map +1 -1
- package/dist/rooms/room.js +63 -853
- package/dist/rooms/room.js.map +1 -1
- package/dist/rooms/standing-source.d.ts +1 -1
- package/dist/rooms/standing-source.js +1 -1
- package/dist/rooms/transcriber.d.ts +3 -3
- package/dist/rooms/transcriber.d.ts.map +1 -1
- package/dist/rooms/transcriber.js +2 -2
- package/dist/rooms/transport.d.ts +1 -1
- package/dist/rooms/transport.js +2 -2
- package/dist/shaping/assets.d.ts +13 -0
- package/dist/shaping/assets.d.ts.map +1 -1
- package/dist/shaping/assets.js +27 -0
- package/dist/shaping/assets.js.map +1 -1
- package/dist/shaping/chat.d.ts +3 -1
- package/dist/shaping/chat.d.ts.map +1 -1
- package/dist/shaping/chat.js +4 -2
- package/dist/shaping/chat.js.map +1 -1
- package/dist/shaping/rooms.d.ts +80 -1
- package/dist/shaping/rooms.d.ts.map +1 -1
- package/dist/shaping/rooms.js +100 -9
- package/dist/shaping/rooms.js.map +1 -1
- package/dist/shaping/sources.d.ts +7 -3
- package/dist/shaping/sources.d.ts.map +1 -1
- package/dist/shaping/sources.js +9 -10
- package/dist/shaping/sources.js.map +1 -1
- package/dist/transcribe-stream.d.ts +1 -1
- package/dist/transcribe-stream.js +1 -1
- package/dist/transcribe.d.ts +2 -2
- package/dist/transcribe.js +2 -2
- package/package.json +11 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owned-room.js","sourceRoot":"","sources":["../../src/rooms/owned-room.ts"],"names":[],"mappings":"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"}
|
package/dist/rooms/recorder.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The room→session recorder — the single durable binding between a live room (pure transport,
|
|
3
|
-
* nothing stored) and a session (an append-only durable log). Started by {@link ./room.
|
|
3
|
+
* nothing stored) and a session (an append-only durable log). Started by {@link ./owned-room.OwnedRoom.record};
|
|
4
4
|
* a line-for-line port of the Python SDK's ``_AsyncRecorder`` (aio.py).
|
|
5
5
|
*
|
|
6
6
|
* It rides an **observe** SSE stream ({@link ./sse.RoomEventStream} in observe mode — no presence
|
package/dist/rooms/recorder.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The room→session recorder — the single durable binding between a live room (pure transport,
|
|
3
|
-
* nothing stored) and a session (an append-only durable log). Started by {@link ./room.
|
|
3
|
+
* nothing stored) and a session (an append-only durable log). Started by {@link ./owned-room.OwnedRoom.record};
|
|
4
4
|
* a line-for-line port of the Python SDK's ``_AsyncRecorder`` (aio.py).
|
|
5
5
|
*
|
|
6
6
|
* It rides an **observe** SSE stream ({@link ./sse.RoomEventStream} in observe mode — no presence
|
package/dist/rooms/room.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The live room handle — pure transport over the room WebSocket
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* The live room handle — pure transport over the room WebSocket, and the **participant** half of the
|
|
3
|
+
* room surface. Returned by the loginless {@link ./index.joinRoom} and by ``client.rooms.join(code)``;
|
|
4
|
+
* the host-side half lives on {@link ./owned-room.OwnedRoom}, which extends this. Feature-equivalent
|
|
5
|
+
* to the Python SDK's ``Room`` (rooms.py) + ``AsyncRoom`` (aio.py), but JS needs no sync/async split —
|
|
6
|
+
* there is one API: ``room.on(...)`` registers, ``await room.request(...)`` correlates.
|
|
6
7
|
*
|
|
7
8
|
* Transport: everything rides one WebSocket (``/v1/rooms/{id}/ws``) — text signals *and* the
|
|
8
9
|
* ephemeral binary audio stream. That differs from the Python SDK (SSE receive + a REST ``/signal``
|
|
@@ -10,32 +11,24 @@
|
|
|
10
11
|
* that carries binary. The REST ``/signal`` wire body is still the canonical cross-SDK shape
|
|
11
12
|
* ({@link ../shaping/rooms.buildRoomSignal}); the fields match field-for-field.
|
|
12
13
|
*
|
|
13
|
-
* Correlation (mirror of ``_RoomDispatcher``): dispatch starts with {@link connect}. Each inbound
|
|
14
|
+
* Correlation (mirror of ``_RoomDispatcher``): dispatch starts with {@link Room.connect}. Each inbound
|
|
14
15
|
* signal routes to the handler registered for its ``type``; a handler's return value is sent back as
|
|
15
|
-
* the response when the signal was a {@link request} (carried an ``ackId``) — so a responder
|
|
16
|
-
* no correlation plumbing, it just returns. Pending
|
|
17
|
-
*
|
|
18
|
-
* Durable & reactive surfaces (wave 2): {@link Room.record} bridges the room into a session over an
|
|
19
|
-
* SSE-observe {@link ./recorder.Recorder} (every WS send is ephemeral, so durable capture rides the
|
|
20
|
-
* observe stream); {@link Room.audioVectors} embeds the live snippet stream and {@link Room.audioScores}
|
|
21
|
-
* fuses it against named anchors for a {@link ../decider.Decider}. Still deferred to later waves: the
|
|
22
|
-
* ``offer_embeds`` / ``offer_chat`` broker protocol, and ``offerAudioCapture`` (which will bind to the
|
|
23
|
-
* active recorder via {@link Room.activeRecorders} / {@link Room.onRecordersChanged}).
|
|
16
|
+
* the response when the signal was a {@link Room.request} (carried an ``ackId``) — so a responder
|
|
17
|
+
* writes no correlation plumbing, it just returns. Pending requests resolve by ``replyTo``.
|
|
24
18
|
*/
|
|
25
|
-
import
|
|
26
|
-
import { Dashboard, type DashboardOptions } from "../dash.js";
|
|
19
|
+
import type { OperandLike } from "../by.js";
|
|
27
20
|
import type { FileSource } from "../files.js";
|
|
28
|
-
import type { ChatReply, CompareResult,
|
|
21
|
+
import type { ChatReply, CompareResult, Space, Transcript } from "../models.js";
|
|
29
22
|
import type { ShapedRequest } from "../shaping/index.js";
|
|
30
|
-
import {
|
|
23
|
+
import { type LayerDeclarationLike, type PlaySource } from "../shaping/rooms.js";
|
|
24
|
+
import { type RoomTrace, type TraceSink } from "../trace.js";
|
|
31
25
|
import type { AudioChunk, TranscribeStreamOptions } from "../transcribe.js";
|
|
32
26
|
import { type AudioSignal } from "./codec.js";
|
|
33
|
-
import { OfferedCapture } from "./offer-capture.js";
|
|
34
|
-
import { OfferedTranscription } from "./offer-transcription.js";
|
|
35
27
|
import { type Participant, type ParticipantPredicate } from "./participant.js";
|
|
36
|
-
import { Recorder } from "./recorder.js";
|
|
28
|
+
import type { Recorder } from "./recorder.js";
|
|
37
29
|
import { type FetchImpl } from "./sse.js";
|
|
38
|
-
import {
|
|
30
|
+
import type { StandingSource } from "./standing-source.js";
|
|
31
|
+
import type { Transcriber } from "./transcriber.js";
|
|
39
32
|
import { type RoomEndReason, type RosterEntry, type WebSocketCtor } from "./transport.js";
|
|
40
33
|
/** One inbound room signal, camelCased — what a {@link Room.on} handler receives. */
|
|
41
34
|
export interface RoomEvent {
|
|
@@ -69,7 +62,7 @@ export interface AudioClip {
|
|
|
69
62
|
* source that joins *after* this subscribes has ``null`` here until you re-subscribe. */
|
|
70
63
|
sourceName: string | null;
|
|
71
64
|
}
|
|
72
|
-
/** One embedded ~10s audio window from {@link
|
|
65
|
+
/** One embedded ~10s audio window from {@link OwnedRoom.audioVectors} — a live vector of "what the room
|
|
73
66
|
* sounds like right now", embedded in ``space``. Ephemeral (never stored); compare it against your
|
|
74
67
|
* own anchors (concepts, text probes, example assets). Mirror of Python's ``AudioVector``. */
|
|
75
68
|
export interface AudioVector {
|
|
@@ -80,7 +73,7 @@ export interface AudioVector {
|
|
|
80
73
|
/** Unix seconds (a float) when the vector was computed. */
|
|
81
74
|
timestamp: number;
|
|
82
75
|
}
|
|
83
|
-
/** One {@link
|
|
76
|
+
/** One {@link OwnedRoom.audioScores} frame — an {@link AudioVector} fused against named anchors via
|
|
84
77
|
* ``library.compare``. ``scores`` is each anchor's calibrated compare score; ``mix`` normalizes them
|
|
85
78
|
* to sum 1 (uniform when every score is 0, so gate on ``max(scores)`` for silence rather than reading
|
|
86
79
|
* a uniform mix as "all tied"). No smoothing here — ease the stream with a {@link ../decider.Decider}.
|
|
@@ -94,9 +87,10 @@ export interface ScoredAudio {
|
|
|
94
87
|
windowSeconds: number;
|
|
95
88
|
timestamp: number;
|
|
96
89
|
}
|
|
97
|
-
/** The slice of the authenticated client
|
|
98
|
-
* ``client.rooms
|
|
99
|
-
*
|
|
90
|
+
/** The slice of the authenticated client an {@link ./owned-room.OwnedRoom}'s host-side surfaces call
|
|
91
|
+
* — injected by ``client.rooms.open/get/list``, and the reason those surfaces live on that class
|
|
92
|
+
* rather than here: a loginless {@link ./index.joinRoom} participant has no credentials to embed,
|
|
93
|
+
* chat or transcribe with. */
|
|
100
94
|
export interface RoomAudioClient {
|
|
101
95
|
embed(opts: {
|
|
102
96
|
model: string;
|
|
@@ -111,22 +105,26 @@ export interface RoomAudioClient {
|
|
|
111
105
|
}): Promise<CompareResult>;
|
|
112
106
|
};
|
|
113
107
|
request(req: ShapedRequest): Promise<unknown>;
|
|
114
|
-
/** Chat completion — what {@link
|
|
108
|
+
/** Chat completion — what {@link OwnedRoom.offerChat} generates a reply with (the broker pins the
|
|
109
|
+
* model; ``params`` carries the OpenAI passthrough, e.g. its ``max_tokens`` cap). */
|
|
115
110
|
chat(messages: string | Array<{
|
|
116
111
|
role: string;
|
|
117
112
|
content: string;
|
|
118
|
-
}>, opts?:
|
|
119
|
-
|
|
113
|
+
}>, opts?: {
|
|
114
|
+
model?: string;
|
|
115
|
+
params?: Record<string, unknown>;
|
|
116
|
+
}): Promise<ChatReply>;
|
|
117
|
+
/** The shared live-transcription engine — what {@link OwnedRoom.transcribe} runs the snippet stream
|
|
120
118
|
* through (streaming when the backend offers it, per-clip batch otherwise). */
|
|
121
119
|
transcribeStream(clips: AsyncIterable<AudioChunk>, opts: TranscribeStreamOptions): AsyncIterable<Transcript>;
|
|
122
|
-
/** The batch transcription route — {@link
|
|
120
|
+
/** The batch transcription route — {@link OwnedRoom.audioTranscripts} POSTs each snippet through it on
|
|
123
121
|
* the degraded (non-streaming) path, so every transcript can carry its source snippet. */
|
|
124
122
|
transcribe(audio: FileSource, opts: {
|
|
125
123
|
model?: string;
|
|
126
124
|
language?: string;
|
|
127
125
|
format?: string;
|
|
128
126
|
}): Promise<Transcript>;
|
|
129
|
-
/** The client's armed trace sinks — the shared list {@link
|
|
127
|
+
/** The client's armed trace sinks — the shared list {@link OwnedRoom.trace} registers on, so
|
|
130
128
|
* library/model calls made through the same client mirror into this room. */
|
|
131
129
|
traceSinks?: TraceSink[];
|
|
132
130
|
}
|
|
@@ -134,7 +132,9 @@ export interface RoomAudioClient {
|
|
|
134
132
|
* SSE-receive + POST-send if the WS can't come up (a proxy stripping upgrades); ``"ws"`` / ``"sse"``
|
|
135
133
|
* pin one transport. Binary audio is WS-only regardless. Default ``"auto"``. */
|
|
136
134
|
export type RoomTransportMode = "auto" | "ws" | "sse";
|
|
137
|
-
|
|
135
|
+
export declare const RAW_CONSUMER_QUEUE_MAX = 32;
|
|
136
|
+
/** REST metadata + connection deps a {@link Room} is built from. An {@link OwnedRoom} takes the
|
|
137
|
+
* superset {@link ./owned-room.OwnedRoomDeps} (the same bag plus the account credential). */
|
|
138
138
|
export interface RoomDeps {
|
|
139
139
|
id: string;
|
|
140
140
|
connectCode: string;
|
|
@@ -142,11 +142,6 @@ export interface RoomDeps {
|
|
|
142
142
|
projectId?: string | null;
|
|
143
143
|
/** The instance base URL (http/https). */
|
|
144
144
|
baseUrl: string;
|
|
145
|
-
/** Authenticated REST caller for management (rotate/delete); absent for participants. */
|
|
146
|
-
rest?: (req: ShapedRequest) => Promise<unknown>;
|
|
147
|
-
/** The authenticated client's embedding surfaces — set for an owned room, absent for a loginless
|
|
148
|
-
* participant; what {@link Room.audioVectors} / {@link Room.audioScores} run on. */
|
|
149
|
-
client?: RoomAudioClient;
|
|
150
145
|
/** Stable presence identity (e.g. ``"player:bob"``). */
|
|
151
146
|
identity?: string;
|
|
152
147
|
/** Presence announce metadata peers see on join. */
|
|
@@ -158,7 +153,7 @@ export interface RoomDeps {
|
|
|
158
153
|
/** Signal transport preference (default ``"auto"`` — WS, falling back to SSE). */
|
|
159
154
|
transport?: RoomTransportMode;
|
|
160
155
|
/** Injected ``WebSocket`` constructor — the test seam. */
|
|
161
|
-
|
|
156
|
+
webSocketCtor?: WebSocketCtor;
|
|
162
157
|
/** Injected ``fetch`` for the SSE transport / roster reads — the test seam. */
|
|
163
158
|
fetchImpl?: FetchImpl;
|
|
164
159
|
/** Aborting this closes the room. */
|
|
@@ -167,12 +162,24 @@ export interface RoomDeps {
|
|
|
167
162
|
/** A random opaque id (a UUID with dashes stripped, else a time-seeded fallback) — request ack ids
|
|
168
163
|
* and dedicated-consumer socket identities. Shared with the standing offers ({@link ./standing-source}). */
|
|
169
164
|
export declare function randomId(): string;
|
|
165
|
+
/** Drop one entry from a mutable registry array (a no-op when absent / the list is undefined). */
|
|
166
|
+
export declare function remove<T>(list: T[] | undefined, item: T): void;
|
|
167
|
+
/**
|
|
168
|
+
* The **participant** room surface — everything a handle can do with nothing but a connect code:
|
|
169
|
+
* connect/close, send/on/onAny/request/onEnd, the presence roster, the Player + Viewer dialects,
|
|
170
|
+
* and the audio-consumption streams. This is what the loginless {@link ./index.joinRoom} returns.
|
|
171
|
+
*
|
|
172
|
+
* The host-side surfaces that genuinely need an account credential — ``record`` / ``transcribe`` /
|
|
173
|
+
* ``audioVectors`` / ``dashboard`` / ``trace`` / the standing offers / ``rotateCode`` / ``delete`` —
|
|
174
|
+
* live on {@link ./owned-room.OwnedRoom}, which ``client.rooms.open/get/list`` returns: a method you
|
|
175
|
+
* cannot call is a method you cannot see.
|
|
176
|
+
*/
|
|
170
177
|
export declare class Room {
|
|
171
178
|
readonly id: string;
|
|
172
179
|
connectCode: string;
|
|
173
180
|
name: string | null;
|
|
174
181
|
readonly projectId: string | null;
|
|
175
|
-
|
|
182
|
+
protected readonly deps: RoomDeps;
|
|
176
183
|
private socket;
|
|
177
184
|
private usingSse;
|
|
178
185
|
private connectPromise;
|
|
@@ -184,12 +191,11 @@ export declare class Room {
|
|
|
184
191
|
private readonly audioSubscribers;
|
|
185
192
|
private audioSocket;
|
|
186
193
|
private readonly layerWatchers;
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
private readonly offeredServices;
|
|
194
|
+
protected readonly recorders: Recorder[];
|
|
195
|
+
protected readonly transcribers: Transcriber[];
|
|
196
|
+
protected readonly offeredServices: StandingSource[];
|
|
191
197
|
private readonly brokerRoles;
|
|
192
|
-
|
|
198
|
+
protected readonly traceHandles: RoomTrace[];
|
|
193
199
|
constructor(deps: RoomDeps);
|
|
194
200
|
/** The server-assigned connection id, or ``null`` before {@link connect} settles. */
|
|
195
201
|
get connectionId(): string | null;
|
|
@@ -222,12 +228,23 @@ export declare class Room {
|
|
|
222
228
|
* string-matching a request's reject message. Register before {@link connect} to catch a connect-time
|
|
223
229
|
* reject. Python owes the port (``on_end``). */
|
|
224
230
|
onEnd(cb: (reason: RoomEndReason) => void): () => void;
|
|
225
|
-
/**
|
|
226
|
-
*
|
|
227
|
-
*
|
|
231
|
+
/**
|
|
232
|
+
* Send a live message — fire-and-forget, never stored. ``to`` (a connection id/identity, or a
|
|
233
|
+
* list) targets peers; omit it to broadcast to everyone else. ``replyTo`` answers a peer's
|
|
234
|
+
* {@link request} out-of-band — the correlation an ``on`` handler gets for free by *returning* a
|
|
235
|
+
* value.
|
|
236
|
+
*
|
|
237
|
+
* Both fields are all this carries: the room transport forces ``ephemeral: false`` on everything
|
|
238
|
+
* it accepts inbound, so a signal sent here is **durable** (a {@link OwnedRoom.record} bridge
|
|
239
|
+
* stores it), and a reply correlation needs a registered pending entry, which only
|
|
240
|
+
* {@link request} creates. An ephemeral or awaited-reply signal is {@link request} or, host-side,
|
|
241
|
+
* the REST ``/signal`` POST ({@link ../shaping/rooms.buildRoomSignal}) — what
|
|
242
|
+
* {@link OwnedRoom.dashboard} / {@link OwnedRoom.trace} publish through.
|
|
243
|
+
*/
|
|
228
244
|
send(type: string, payload?: Record<string, unknown>, opts?: {
|
|
229
245
|
to?: string | string[];
|
|
230
|
-
|
|
246
|
+
/** Correlate this frame as the reply to a peer request's ``ackId``. */
|
|
247
|
+
replyTo?: string;
|
|
231
248
|
}): Promise<void>;
|
|
232
249
|
/** Send a request and await one reply (a peer's handler return). ``to`` targets one peer; omit it
|
|
233
250
|
* to broadcast — first matching reply wins. Rejects if no reply arrives within the timeout. */
|
|
@@ -255,7 +272,7 @@ export declare class Room {
|
|
|
255
272
|
* about the environment. Throws {@link AtriumError}. When the transport isn't yet decided (the main
|
|
256
273
|
* socket hasn't connected), it proceeds — the offers, which engage over an already-live signal
|
|
257
274
|
* channel, always see the settled decision. */
|
|
258
|
-
|
|
275
|
+
protected requireWsAudio(what: string): void;
|
|
259
276
|
/**
|
|
260
277
|
* Subscribe to the room's raw ``audio.snippet`` stream — the ~10s Opus windows a Player (v1) or a
|
|
261
278
|
* Capture tool (v2) shares — as an async iterator of {@link AudioClip}s. The rawest audio consumer:
|
|
@@ -269,224 +286,12 @@ export declare class Room {
|
|
|
269
286
|
* ``audio_clips``). Binary rides the WebSocket only — a room latched to the SSE fallback throws.
|
|
270
287
|
*/
|
|
271
288
|
audioClips(): AsyncGenerator<AudioClip>;
|
|
272
|
-
/**
|
|
273
|
-
* Start capturing this room's live signals into a durable ``session`` — the single durable binding
|
|
274
|
-
* between a room (pure transport) and a session (an append-only log). A **side effect**: it starts
|
|
275
|
-
* immediately in the background and returns a live {@link Recorder} handle. Stop it with
|
|
276
|
-
* ``rec.stop()``, or let {@link close} (an ``await using`` room) stop it. It skips ``ephemeral``
|
|
277
|
-
* signals and presence traffic — only durable-worthy signals are recorded, each stamped with
|
|
278
|
-
* ``via`` provenance (``{ room_id, room_name, from, to }``). Mirror of Python's ``room.record``.
|
|
279
|
-
*
|
|
280
|
-
* A dropped stream reconnects with backoff (the gap is lost — rooms have no replay); only a
|
|
281
|
-
* terminal end stops it cleanly with a {@link Recorder.stoppedReason} (a code rotation, or the
|
|
282
|
-
* room being gone / its code rejected — the latter also sets {@link Recorder.error}). Needs an
|
|
283
|
-
* owned room (durable sessions require an account) — throws on a loginless {@link joinRoom} handle.
|
|
284
|
-
*/
|
|
285
|
-
record(into: Session): Recorder;
|
|
286
|
-
/** The recorders currently running on this handle (membership **and** liveness — a stopped one no
|
|
287
|
-
* longer counts) — the source of truth a wave-4 ``offerAudioCapture`` reads for audio-capture
|
|
288
|
-
* availability, and binds its capture to the first active recorder's session. */
|
|
289
|
-
activeRecorders(): Recorder[];
|
|
290
|
-
/** Register a listener fired whenever the active-recorder set changes (a {@link record} started, or
|
|
291
|
-
* a recorder stopped/terminated) — the seam a wave-4 ``offerAudioCapture`` binds to, so it can
|
|
292
|
-
* re-derive availability and disengage when the recorder it wrote under is gone. Returns an
|
|
293
|
-
* unsubscribe function. Mirror of Python's ``_notify_recorders_changed`` registration. */
|
|
294
|
-
onRecordersChanged(listener: () => void | Promise<void>): () => void;
|
|
295
|
-
private notifyRecordersChanged;
|
|
296
|
-
/**
|
|
297
|
-
* Transcribe this room's live audio into ``transcript.*`` signals — the in-room broker. Consumes the
|
|
298
|
-
* room's ``audio.snippet`` stream (announcing the snippet-consumer role, so a Player starts
|
|
299
|
-
* capturing), pushes it through the same engine as {@link ../atrium.Atrium.transcribeLive} on
|
|
300
|
-
* **your** credentials/compute, and publishes back:
|
|
301
|
-
*
|
|
302
|
-
* * ``transcript.partial`` — ``{ text }``, **ephemeral** (a live caption the recorder skips).
|
|
303
|
-
* Wholesale-replaced — render the latest, don't append.
|
|
304
|
-
* * ``transcript.final`` — ``{ text, start, end, seq }``, durable (the {@link record} bridge persists
|
|
305
|
-
* it — no new recording API). ``seq`` is a per-handle counter from 0; the signal's ``source`` is
|
|
306
|
-
* ``"transcriber"``.
|
|
307
|
-
*
|
|
308
|
-
* Any consumer — including a loginless code-joined tool — just does ``room.on("transcript.final")``.
|
|
309
|
-
* Like {@link record}, it's a **side effect**: it starts immediately in the background and is stopped
|
|
310
|
-
* when the room closes, or via ``await handle.stop()`` / ``await using``. Needs an owned room
|
|
311
|
-
* (transcription runs on an account credential) — throws on a loginless {@link joinRoom} handle.
|
|
312
|
-
*/
|
|
313
|
-
transcribe(opts?: {
|
|
314
|
-
model?: string;
|
|
315
|
-
language?: string;
|
|
316
|
-
}): Transcriber;
|
|
317
|
-
/**
|
|
318
|
-
* Subscribe to the room's live ``audio.snippet`` stream and transcribe it, yielding a
|
|
319
|
-
* {@link ../models.Transcript} per finalized sentence — the speech-to-text sibling of
|
|
320
|
-
* {@link audioVectors}, and the *raw* counterpart of the {@link transcribe} broker (which publishes
|
|
321
|
-
* ``transcript.*`` signals for every peer instead of handing you the stream).
|
|
322
|
-
*
|
|
323
|
-
* Subscribing *is* the demand signal (it announces the ``audio-snippet-consumer`` role, so a
|
|
324
|
-
* producer's own default-off "Share audio clips" toggle actually captures). Break out of the
|
|
325
|
-
* ``for await`` loop — or abort ``signal`` — to end the subscription and close the socket.
|
|
326
|
-
*
|
|
327
|
-
* Snippets run through the same engine as {@link ../atrium.Atrium.transcribeLive}: true streaming
|
|
328
|
-
* (per-sentence finals, plus revisable partials with ``partials``) when the backend's live route is
|
|
329
|
-
* reachable, degrading silently to per-clip batch transcription otherwise (finals only).
|
|
330
|
-
* Transcription runs on *your* credentials/compute — a rejected credential raises rather than
|
|
331
|
-
* falling back, and a loginless {@link joinRoom} handle throws.
|
|
332
|
-
*
|
|
333
|
-
* The two paths differ in one detail (mirror of Python's ``audio_transcripts``): on the **fallback**
|
|
334
|
-
* path each transcript carries its source frame's ``sequence`` / ``window_seconds`` under
|
|
335
|
-
* ``transcript.raw.snippet`` (a cheap ordering/correlation handle) and the clip's format comes from
|
|
336
|
-
* that frame's own MIME type; on the **streaming** path transcripts are per-sentence, so there is no
|
|
337
|
-
* 1:1 snippet correlation and ``raw.snippet`` is omitted (``raw`` carries ``start`` / ``end``).
|
|
338
|
-
*/
|
|
339
|
-
audioTranscripts(opts?: {
|
|
340
|
-
model?: string;
|
|
341
|
-
language?: string;
|
|
342
|
-
partials?: boolean;
|
|
343
|
-
skipEmpty?: boolean;
|
|
344
|
-
signal?: AbortSignal;
|
|
345
|
-
}): AsyncGenerator<Transcript>;
|
|
346
|
-
private snippetBytesFor;
|
|
347
289
|
/** Merge the registered broker/offer roles into the presence announce (mirror of Python's
|
|
348
290
|
* ``_events_params``) — so registering a broker before ``connect()`` rides the first connection. */
|
|
349
291
|
private mergedAnnounce;
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
* transcribe) an owned room carries and a loginless ``join(code)`` handle lacks. Always throws
|
|
354
|
-
* {@link AtriumError} (never a bare ``Error``), so every SDK refusal is catchable under the one
|
|
355
|
-
* hierarchy. ``feature`` names the surface for the message. */
|
|
356
|
-
private requireClient;
|
|
357
|
-
private offerDeps;
|
|
358
|
-
private offerService;
|
|
359
|
-
/**
|
|
360
|
-
* Offer live transcription as a peer-toggleable standing service — a code-joined tool turns it on
|
|
361
|
-
* with a ``transcription.start`` request and off with ``transcription.stop`` (both idempotent).
|
|
362
|
-
* Announces the discoverable ``transcription-offer`` role. **Scoped, multi-source**: ``start`` /
|
|
363
|
-
* ``stop`` are scoped to the requesting connection unless the payload carries ``{ all: true }``;
|
|
364
|
-
* only armed sources are transcribed (up to ``maxSources``, default 8). While on it runs the same
|
|
365
|
-
* engine as {@link transcribe} on **your** credentials, publishing source-attributed ``transcript.*``
|
|
366
|
-
* signals. Register **before** ``connect()``; needs an owned room (throws on a loginless handle).
|
|
367
|
-
* Returns the handle (for ``handle.start({ all: true })`` from the host). Mirror of Python's
|
|
368
|
-
* ``offer_transcription``.
|
|
369
|
-
*/
|
|
370
|
-
offerTranscription(opts?: {
|
|
371
|
-
model?: string;
|
|
372
|
-
language?: string;
|
|
373
|
-
maxSources?: number;
|
|
374
|
-
}): OfferedTranscription;
|
|
375
|
-
/**
|
|
376
|
-
* Offer audio capture as a peer-toggleable standing service — **session-less**: it writes into the
|
|
377
|
-
* **active recorder's** session ({@link record} is the single durable binding), so a ``capture.start``
|
|
378
|
-
* with no active recorder replies an error. A code-joined tool toggles it via ``capture.start`` /
|
|
379
|
-
* ``capture.stop`` (idempotent). Announces the discoverable ``capture-offer`` role. **Scoped,
|
|
380
|
-
* multi-source** (up to ``maxSources``, default 8): only armed sources are recorded; a same-name
|
|
381
|
-
* reconnect within grace resumes one file, two simultaneous same-name producers get their own files.
|
|
382
|
-
* Register **before** ``connect()``; needs an owned room (throws on a loginless handle). Returns the
|
|
383
|
-
* handle (for ``handle.start({ all: true })``). Mirror of Python's ``offer_audio_capture``.
|
|
384
|
-
*/
|
|
385
|
-
offerAudioCapture(opts?: {
|
|
386
|
-
maxSources?: number;
|
|
387
|
-
}): OfferedCapture;
|
|
388
|
-
private resolveEmbedSpace;
|
|
389
|
-
private resolveAnchorVector;
|
|
390
|
-
/**
|
|
391
|
-
* Handle ``embed.resolve`` requests from code-joined peers (e.g. a loginless Unity scene) — resolve
|
|
392
|
-
* named operand descriptors (``{ text }`` / ``{ concept, collection? }`` / ``{ vector }`` /
|
|
393
|
-
* ``{ asset, match_by? }``) to vectors in ONE embedding space, so a peer with no credentials can
|
|
394
|
-
* compare live signals against library concepts/text/assets. **The requester chooses the space**
|
|
395
|
-
* (omitted → the default text space). A per-anchor
|
|
396
|
-
* failure lands in ``errors`` without failing the others; a malformed / over-``maxAnchors`` request
|
|
397
|
-
* or a ``space`` outside ``spaces`` gets a whole-request ``{ error }``. Announces the discoverable
|
|
398
|
-
* ``embed-broker`` role — call before ``connect()``. Mirror of Python's ``offer_embeds``.
|
|
399
|
-
*/
|
|
400
|
-
offerEmbeds(opts?: {
|
|
401
|
-
spaces?: string[];
|
|
402
|
-
maxAnchors?: number;
|
|
403
|
-
}): void;
|
|
404
|
-
/**
|
|
405
|
-
* Handle ``chat.generate`` requests from code-joined peers — a stateless chat completion (no history
|
|
406
|
-
* broker-side), so a loginless peer gets an LLM reply without its own credentials. Reply:
|
|
407
|
-
* ``{ text, model }``, or ``{ error }`` if ``messages`` is malformed / over the payload cap. The
|
|
408
|
-
* **broker** pins ``model`` (the requester cannot choose it — cost control); ``maxTokens`` caps each
|
|
409
|
-
* reply. Announces the discoverable ``chat-broker`` role — call before ``connect()``. Every peer
|
|
410
|
-
* holding the connect code can trigger a reply on **your** billing. Mirror of Python's ``offer_chat``.
|
|
411
|
-
*/
|
|
412
|
-
offerChat(opts?: {
|
|
413
|
-
model?: string;
|
|
414
|
-
maxTokens?: number;
|
|
415
|
-
}): void;
|
|
416
|
-
/**
|
|
417
|
-
* Build the host-side {@link ../dash.Dashboard} for this room — the live observation-dashboard
|
|
418
|
-
* state an app holds as a grid of tiles. It answers each joining ``/tools/dashboard`` with a full
|
|
419
|
-
* ``dash.snapshot`` and broadcasts ``dash.delta`` patches as things change, all **ephemeral** (the
|
|
420
|
-
* room stores nothing — the durable record is the session).
|
|
421
|
-
*
|
|
422
|
-
* Prefer this over ``new Dashboard(room)``: it publishes over the REST ``/signal`` POST, which
|
|
423
|
-
* preserves the dialect's ephemerality (the WS inbound path forces ``ephemeral: false``). Needs an
|
|
424
|
-
* owned room — throws on a loginless {@link joinRoom} handle. Mirror of Python's ``Dashboard(room)``.
|
|
425
|
-
*/
|
|
426
|
-
dashboard(opts?: DashboardOptions): Dashboard;
|
|
427
|
-
/**
|
|
428
|
-
* Mirror the SDK's own activity into this room as ``trace.*`` signals — one line turns it on. The
|
|
429
|
-
* operation folds into the signal type (``label`` still rides the payload), and ephemerality is
|
|
430
|
-
* per-signal (see {@link ../trace.isTraceEphemeral}). While tracing:
|
|
431
|
-
*
|
|
432
|
-
* * **library/model calls** made through the same client (``search`` / ``searchByExamples`` /
|
|
433
|
-
* ``enrich`` / ``play`` / ``chat``) surface a ``trace.<label>`` (``trace.library.search`` /
|
|
434
|
-
* ``trace.chat`` / ``trace.play``) — a glanceable summary (``"rain" → 8 hits (top: Forest Rain
|
|
435
|
-
* 0.83)``) plus a capped detail (top-N results, never full payloads);
|
|
436
|
-
* * **SDK-internal state** — a recorder start/stop (with its session + event count), a transcriber
|
|
437
|
-
* start/stop, a standing offer's armed/active roster — surfaces a ``trace.state.<label>``.
|
|
438
|
-
*
|
|
439
|
-
* Default OFF (it broadcasts app internals to anyone with the code, and it's noise on the happy
|
|
440
|
-
* path). Returns a handle: ``const t = room.trace()`` then ``t.stop()``, or ``using t =
|
|
441
|
-
* room.trace()`` for a scope; stopped when the room closes. A trace failure never breaks the traced
|
|
442
|
-
* call. ``play`` and the state seam are scoped to **this** room; client-wide calls mirror into every
|
|
443
|
-
* armed room. Needs an owned room (the client's calls are what it mirrors) — throws on a loginless
|
|
444
|
-
* handle. Mirror of Python's ``room.trace()``.
|
|
445
|
-
*/
|
|
446
|
-
trace(): RoomTrace;
|
|
447
|
-
private traceState;
|
|
448
|
-
private resolveAudioSpace;
|
|
449
|
-
private snippetStream;
|
|
450
|
-
/**
|
|
451
|
-
* Subscribe to the room's live ``audio.snippet`` stream and embed each ~10s window, yielding an
|
|
452
|
-
* {@link AudioVector} per snippet — a live vector of "what the room sounds like right now".
|
|
453
|
-
* Subscribing *is* the demand signal (announces the ``audio-snippet-consumer`` role, so a
|
|
454
|
-
* producer's default-off "Share audio clips" toggle actually captures). Break out of the
|
|
455
|
-
* ``for await`` loop to end it. Mirror of Python's ``audio_vectors``.
|
|
456
|
-
*
|
|
457
|
-
* ``space`` pins the search space snippets are labeled with (default: the deployment's default
|
|
458
|
-
* audio space, so a no-arg vector is comparable against library-derived vectors); ``model`` the
|
|
459
|
-
* embedding model (default: the resolved space's configured model). ``relay: true`` also relays
|
|
460
|
-
* each vector into the room as an ephemeral ``audio.vector`` signal — so a loginless code-joined
|
|
461
|
-
* peer can consume the live mood vector without credentials of its own. Needs an authenticated
|
|
462
|
-
* client to embed with (throws on a loginless handle); binary rides the WebSocket only.
|
|
463
|
-
*/
|
|
464
|
-
audioVectors(opts?: {
|
|
465
|
-
space?: string;
|
|
466
|
-
model?: string;
|
|
467
|
-
relay?: boolean;
|
|
468
|
-
}): AsyncGenerator<AudioVector>;
|
|
469
|
-
private preflightConceptAnchors;
|
|
470
|
-
/**
|
|
471
|
-
* Fuse {@link audioVectors} with per-anchor ``library.compare`` scoring — a live "which anchor does
|
|
472
|
-
* the room sound like right now" signal. ``anchors`` maps a name to anything the ``by`` grammar
|
|
473
|
-
* accepts (a bare string / {@link "../by".Asset} / ``by.*`` marker), **or an array** of those (a
|
|
474
|
-
* few-shot category, scored as the mean of its top-``topN`` members' calibrated compare scores;
|
|
475
|
-
* default ``topN: 1`` — the nearest member wins). Each frame's anchors are scored concurrently.
|
|
476
|
-
*
|
|
477
|
-
* Each {@link ScoredAudio} carries the calibrated ``scores`` plus ``mix`` (normalized to sum 1,
|
|
478
|
-
* uniform when every score is 0 — gate on ``max(scores)`` for silence). No smoothing — ease the
|
|
479
|
-
* stream with a {@link ../decider.Decider}. ``relay: true`` forwards to {@link audioVectors} (it
|
|
480
|
-
* relays the raw ``audio.vector``, not the computed scores). Concept anchors are validated once up
|
|
481
|
-
* front (a typo raises before any frame); a mid-stream compare failure re-throws named by anchor.
|
|
482
|
-
* Mirror of Python's ``audio_scores``.
|
|
483
|
-
*/
|
|
484
|
-
audioScores(anchors: Record<string, AnchorLike>, opts?: {
|
|
485
|
-
space?: string;
|
|
486
|
-
model?: string;
|
|
487
|
-
topN?: number;
|
|
488
|
-
relay?: boolean;
|
|
489
|
-
}): AsyncGenerator<ScoredAudio>;
|
|
292
|
+
/** Register a discoverable role for the presence announce — what an {@link OwnedRoom}'s brokers
|
|
293
|
+
* and standing offers advertise. */
|
|
294
|
+
protected announceRole(role: string): void;
|
|
490
295
|
/**
|
|
491
296
|
* The room's current presence roster as typed {@link Participant}s (merged ``roles`` / ``name`` /
|
|
492
297
|
* ``connectedAt`` as a ``Date``). Opens one short **observe** SSE stream, reads the roster off its
|
|
@@ -503,18 +308,27 @@ export declare class Room {
|
|
|
503
308
|
* if no predicate is given (mirror of Python's ``has()``).
|
|
504
309
|
*/
|
|
505
310
|
has(pred: ParticipantPredicate): Promise<boolean>;
|
|
506
|
-
/** Play a sound (or several) on a layer — the one playback verb.
|
|
507
|
-
*
|
|
508
|
-
*
|
|
509
|
-
|
|
311
|
+
/** Play a sound (or several) on a layer — the one playback verb. ``source`` is an
|
|
312
|
+
* {@link ../models.Asset} / {@link ../models.SearchHit} / an id-or-URL string, a typed
|
|
313
|
+
* {@link ../shaping/rooms.PlayTrack} for the per-sound options (``effects``, ``spatial`` — including
|
|
314
|
+
* its optional ``distance`` attenuation — ``delaySeconds``, ``loop`` …), or a list of any of those.
|
|
315
|
+
* Put the asset under the track's ``asset`` key to keep its loudness facts —
|
|
316
|
+
* ``{ asset: hit, gain: 2 }``. ``opts.gain`` is the same emphasis multiplier for every track that
|
|
317
|
+
* doesn't carry its own: a trim **on top of** loudness normalization (``2`` ≈ +6 dB over the
|
|
318
|
+
* normalized baseline), per-sound — the layers keep their own volume. */
|
|
319
|
+
play(source: PlaySource, opts?: {
|
|
510
320
|
layer?: string;
|
|
511
321
|
mode?: "oneshot" | "queue";
|
|
512
322
|
transition?: "now" | "after_current" | "queued";
|
|
513
323
|
repeat?: boolean;
|
|
514
324
|
shuffle?: boolean;
|
|
325
|
+
gain?: number;
|
|
515
326
|
}): Promise<void>;
|
|
516
|
-
/** Declare (or replace) the Player's layer set — idempotent.
|
|
517
|
-
|
|
327
|
+
/** Declare (or replace) the Player's layer set — idempotent. Each layer is a typed
|
|
328
|
+
* {@link ../shaping/rooms.LayerDeclaration} (``{ id, label?, volume?, crossfadeMs?, effects? }``)
|
|
329
|
+
* or the dialect's own snake_case spelling; the shaping layer translates. The read-back
|
|
330
|
+
* ({@link queryLayers} / {@link watchLayers}) is still the raw wire snapshot — snake_case. */
|
|
331
|
+
configureLayers(layers: LayerDeclarationLike[]): Promise<void>;
|
|
518
332
|
/** Fade out and empty a layer — its queue and one-shots (omit ``layer`` → ``"default"``). */
|
|
519
333
|
clearLayer(opts?: {
|
|
520
334
|
layer?: string;
|
|
@@ -597,11 +411,6 @@ export declare class Room {
|
|
|
597
411
|
save?: boolean;
|
|
598
412
|
}): void;
|
|
599
413
|
private toolBase;
|
|
600
|
-
private rest;
|
|
601
|
-
/** Rotate the connect code (owner only); updates ``connectCode`` and returns it. */
|
|
602
|
-
rotateCode(): Promise<string>;
|
|
603
|
-
/** Delete the room for good (its connect code dies with it). */
|
|
604
|
-
delete(): Promise<void>;
|
|
605
414
|
/** Disconnect the socket, stop dispatch, and fail any in-flight requests — the fire-and-forget
|
|
606
415
|
* teardown. Idempotent. The synchronous state (sockets closed, requests failed, listeners cleared)
|
|
607
416
|
* settles at once; the standing offers' async wind-down (**including finalizing their open
|
|
@@ -613,7 +422,7 @@ export declare class Room {
|
|
|
613
422
|
* exit. Idempotent; ``await using room`` calls this. Prefer it over {@link close} when the offers'
|
|
614
423
|
* finalize POSTs must land before the process moves on. */
|
|
615
424
|
closeAndFinalize(): Promise<void>;
|
|
616
|
-
|
|
425
|
+
protected teardown(): Promise<void>;
|
|
617
426
|
[Symbol.dispose]: () => void;
|
|
618
427
|
[Symbol.asyncDispose]: () => Promise<void>;
|
|
619
428
|
}
|