hci-atrium 0.3.1 → 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.
Files changed (77) hide show
  1. package/README.md +75 -24
  2. package/dist/atrium.d.ts +126 -42
  3. package/dist/atrium.d.ts.map +1 -1
  4. package/dist/atrium.js +192 -87
  5. package/dist/atrium.js.map +1 -1
  6. package/dist/dash.d.ts +3 -3
  7. package/dist/dash.d.ts.map +1 -1
  8. package/dist/dash.js +1 -2
  9. package/dist/dash.js.map +1 -1
  10. package/dist/env.d.ts +14 -0
  11. package/dist/env.d.ts.map +1 -1
  12. package/dist/env.js +22 -0
  13. package/dist/env.js.map +1 -1
  14. package/dist/index.d.ts +4 -4
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +11 -3
  17. package/dist/index.js.map +1 -1
  18. package/dist/models.d.ts +84 -31
  19. package/dist/models.d.ts.map +1 -1
  20. package/dist/models.js +97 -25
  21. package/dist/models.js.map +1 -1
  22. package/dist/player/play-command.d.ts +6 -6
  23. package/dist/player/play-command.d.ts.map +1 -1
  24. package/dist/player/play-intent.d.ts.map +1 -1
  25. package/dist/player/play-intent.js +2 -1
  26. package/dist/player/play-intent.js.map +1 -1
  27. package/dist/player/runtime.d.ts +7 -3
  28. package/dist/player/runtime.d.ts.map +1 -1
  29. package/dist/player/runtime.js.map +1 -1
  30. package/dist/react/use-room-connection.d.ts +4 -1
  31. package/dist/react/use-room-connection.d.ts.map +1 -1
  32. package/dist/react/use-room-connection.js +5 -1
  33. package/dist/react/use-room-connection.js.map +1 -1
  34. package/dist/rooms/index.d.ts +3 -1
  35. package/dist/rooms/index.d.ts.map +1 -1
  36. package/dist/rooms/index.js +4 -3
  37. package/dist/rooms/index.js.map +1 -1
  38. package/dist/rooms/offer-transcription.d.ts +1 -1
  39. package/dist/rooms/offer-transcription.js +1 -1
  40. package/dist/rooms/owned-room.d.ts +251 -0
  41. package/dist/rooms/owned-room.d.ts.map +1 -0
  42. package/dist/rooms/owned-room.js +844 -0
  43. package/dist/rooms/owned-room.js.map +1 -0
  44. package/dist/rooms/recorder.d.ts +1 -1
  45. package/dist/rooms/recorder.js +1 -1
  46. package/dist/rooms/room.d.ts +82 -278
  47. package/dist/rooms/room.d.ts.map +1 -1
  48. package/dist/rooms/room.js +60 -854
  49. package/dist/rooms/room.js.map +1 -1
  50. package/dist/rooms/standing-source.d.ts +1 -1
  51. package/dist/rooms/standing-source.js +1 -1
  52. package/dist/rooms/transcriber.d.ts +3 -3
  53. package/dist/rooms/transcriber.d.ts.map +1 -1
  54. package/dist/rooms/transcriber.js +2 -2
  55. package/dist/rooms/transport.d.ts +1 -1
  56. package/dist/rooms/transport.js +2 -2
  57. package/dist/shaping/assets.d.ts +13 -0
  58. package/dist/shaping/assets.d.ts.map +1 -1
  59. package/dist/shaping/assets.js +27 -0
  60. package/dist/shaping/assets.js.map +1 -1
  61. package/dist/shaping/chat.d.ts +3 -1
  62. package/dist/shaping/chat.d.ts.map +1 -1
  63. package/dist/shaping/chat.js +4 -2
  64. package/dist/shaping/chat.js.map +1 -1
  65. package/dist/shaping/rooms.d.ts +78 -1
  66. package/dist/shaping/rooms.d.ts.map +1 -1
  67. package/dist/shaping/rooms.js +58 -6
  68. package/dist/shaping/rooms.js.map +1 -1
  69. package/dist/shaping/sources.d.ts +7 -3
  70. package/dist/shaping/sources.d.ts.map +1 -1
  71. package/dist/shaping/sources.js +9 -10
  72. package/dist/shaping/sources.js.map +1 -1
  73. package/dist/transcribe-stream.d.ts +1 -1
  74. package/dist/transcribe-stream.js +1 -1
  75. package/dist/transcribe.d.ts +2 -2
  76. package/dist/transcribe.js +2 -2
  77. 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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"}
@@ -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.Room.record};
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
@@ -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.Room.record};
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
@@ -1,8 +1,9 @@
1
1
  /**
2
- * The live room handle — pure transport over the room WebSocket. Returned by ``client.rooms.open`` /
3
- * ``client.rooms.join(code)`` / the loginless {@link joinRoom}. Feature-equivalent to the Python
4
- * SDK's ``Room`` (rooms.py) + ``AsyncRoom`` (aio.py), but JS needs no sync/async split — there is one
5
- * API: ``room.on(...)`` registers, ``await room.request(...)`` correlates.
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 writes
16
- * no correlation plumbing, it just returns. Pending {@link request}s resolve by ``replyTo``.
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 { type AnchorLike, type OperandLike } from "../by.js";
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, Session, Space, Transcript } from "../models.js";
21
+ import type { ChatReply, CompareResult, Space, Transcript } from "../models.js";
29
22
  import type { ShapedRequest } from "../shaping/index.js";
30
- import { RoomTrace, type TraceSink } from "../trace.js";
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 { Transcriber } from "./transcriber.js";
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 Room.audioVectors} — a live vector of "what the room
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 Room.audioScores} frame — an {@link AudioVector} fused against named anchors via
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 a room's embedding surfaces call — injected by
98
- * ``client.rooms`` for an owned room, and absent for a loginless {@link joinRoom} participant (which
99
- * has no credentials to embed with). {@link Room.audioVectors} / {@link Room.audioScores} require it. */
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 Room.offerChat} generates a reply with (the broker pins the model). */
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?: Record<string, unknown>): Promise<ChatReply>;
119
- /** The shared live-transcription engine — what {@link Room.transcribe} runs the snippet stream
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 Room.audioTranscripts} POSTs each snippet through it on
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 Room.trace} registers on, so
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
- /** REST metadata + connection deps a {@link Room} is built from. */
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
- WebSocketCtor?: WebSocketCtor;
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
- private readonly deps;
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
- private readonly recorders;
188
- private readonly recorderListeners;
189
- private readonly transcribers;
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
- private readonly traceHandles;
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
- /** Send a live message — fire-and-forget, never stored. ``to`` (a connection id/identity, or a
226
- * list) targets peers; omit it to broadcast to everyone else. (``ephemeral`` is accepted for
227
- * parity, but the WS inbound path forces ``ephemeral: false`` server-side.) */
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
- ephemeral?: boolean;
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
- private requireWsAudio;
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
- private announceRole;
351
- private requirePreConnect;
352
- /** The single capability-injection guard — the authed client slice (embed / chat / compare /
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,14 +308,15 @@ 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. Per-sound options (``effects``,
507
- * ``spatial`` including its optional ``distance`` attenuation ``delay_seconds``, ``loop`` …)
508
- * ride a hand-rolled track dict and pass through untouched; put an {@link ../models.Asset} /
509
- * {@link ../models.SearchHit} under that track's ``asset`` key to keep its loudness facts
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 —
510
316
  * ``{ asset: hit, gain: 2 }``. ``opts.gain`` is the same emphasis multiplier for every track that
511
317
  * doesn't carry its own: a trim **on top of** loudness normalization (``2`` ≈ +6 dB over the
512
318
  * normalized baseline), per-sound — the layers keep their own volume. */
513
- play(source: unknown, opts?: {
319
+ play(source: PlaySource, opts?: {
514
320
  layer?: string;
515
321
  mode?: "oneshot" | "queue";
516
322
  transition?: "now" | "after_current" | "queued";
@@ -518,8 +324,11 @@ export declare class Room {
518
324
  shuffle?: boolean;
519
325
  gain?: number;
520
326
  }): Promise<void>;
521
- /** Declare (or replace) the Player's layer set — idempotent. */
522
- configureLayers(layers: Array<Record<string, unknown>>): Promise<void>;
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>;
523
332
  /** Fade out and empty a layer — its queue and one-shots (omit ``layer`` → ``"default"``). */
524
333
  clearLayer(opts?: {
525
334
  layer?: string;
@@ -602,11 +411,6 @@ export declare class Room {
602
411
  save?: boolean;
603
412
  }): void;
604
413
  private toolBase;
605
- private rest;
606
- /** Rotate the connect code (owner only); updates ``connectCode`` and returns it. */
607
- rotateCode(): Promise<string>;
608
- /** Delete the room for good (its connect code dies with it). */
609
- delete(): Promise<void>;
610
414
  /** Disconnect the socket, stop dispatch, and fail any in-flight requests — the fire-and-forget
611
415
  * teardown. Idempotent. The synchronous state (sockets closed, requests failed, listeners cleared)
612
416
  * settles at once; the standing offers' async wind-down (**including finalizing their open
@@ -618,7 +422,7 @@ export declare class Room {
618
422
  * exit. Idempotent; ``await using room`` calls this. Prefer it over {@link close} when the offers'
619
423
  * finalize POSTs must land before the process moves on. */
620
424
  closeAndFinalize(): Promise<void>;
621
- private teardown;
425
+ protected teardown(): Promise<void>;
622
426
  [Symbol.dispose]: () => void;
623
427
  [Symbol.asyncDispose]: () => Promise<void>;
624
428
  }