@voicethere/client 0.7.13 → 0.7.14

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 (31) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +14 -11
  3. package/dist/browser/browser-session.d.ts +7 -1
  4. package/dist/browser/browser-session.d.ts.map +1 -1
  5. package/dist/browser/browser-session.js +6 -1
  6. package/dist/browser/browser-session.js.map +1 -1
  7. package/dist/browser/browser-voice-session.d.ts +11 -0
  8. package/dist/browser/browser-voice-session.d.ts.map +1 -1
  9. package/dist/browser/browser-voice-session.js +112 -6
  10. package/dist/browser/browser-voice-session.js.map +1 -1
  11. package/dist/browser/client-capabilities.d.ts +10 -0
  12. package/dist/browser/client-capabilities.d.ts.map +1 -0
  13. package/dist/browser/client-capabilities.js +9 -0
  14. package/dist/browser/client-capabilities.js.map +1 -0
  15. package/dist/browser/peer-connection-close.d.ts +22 -0
  16. package/dist/browser/peer-connection-close.d.ts.map +1 -0
  17. package/dist/browser/peer-connection-close.js +64 -0
  18. package/dist/browser/peer-connection-close.js.map +1 -0
  19. package/dist/browser/voice-session-diagnostics.d.ts +24 -0
  20. package/dist/browser/voice-session-diagnostics.d.ts.map +1 -0
  21. package/dist/browser/voice-session-diagnostics.js +48 -0
  22. package/dist/browser/voice-session-diagnostics.js.map +1 -0
  23. package/dist/browser/webrtc-runtime.d.ts +4 -0
  24. package/dist/browser/webrtc-runtime.d.ts.map +1 -1
  25. package/dist/browser/webrtc-runtime.js +8 -0
  26. package/dist/browser/webrtc-runtime.js.map +1 -1
  27. package/dist/node/index.d.ts +1 -0
  28. package/dist/node/index.d.ts.map +1 -1
  29. package/dist/node/index.js +1 -0
  30. package/dist/node/index.js.map +1 -1
  31. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## 0.7.14 — 2026-07-27
6
+
7
+ ### Added
8
+
9
+ - **`disconnectAsync()`** — awaitable terminal cleanup barrier; awaits Node runtime `closeAsync()` when present. Close failure is diagnostic-only and never aborts cleanup. Emits `peer_close` (redacted).
10
+ - **`CLIENT_CAPABILITIES.iceTransportPolicy`** — explicit package capability export for e2e fail-closed checks (`/browser` and `/node` entry points).
11
+ - **`iceTransportPolicy`** option — `"all" | "relay"` pass-through to `RTCConfiguration` for forced-relay TURN smokes.
12
+
13
+ ### Changed
14
+
15
+ - **`disconnect()` remains synchronous** — terminal invalidation (timers, WebSocket, peer/channels, mic) using standard sync `pc.close()`. Prefer `disconnectAsync()` when callers need to await native cleanup.
16
+ - **Removed startup ICE PC reconstruction** — race-prone automatic peer rebuild on failed/disconnected startup was dropped. Existing same-session signaling reconnect is unchanged.
17
+ - Diagnostic redaction covers `http(s)`, `ws(s)`, `turn(s)`, `stun` URIs, join tokens, JSON credentials, and SDP `ice-pwd`; async diagnostic handler rejections are isolated.
18
+
5
19
  ## 0.7.13 — 2026-07-26
6
20
 
7
21
  ### Added
package/README.md CHANGED
@@ -75,19 +75,19 @@ See [`examples/browser-test/README.md`](examples/browser-test/README.md).
75
75
 
76
76
  ## Ending a session
77
77
 
78
- | Action | API | Server `end_reason` |
79
- | --------------------- | ---------------------------------- | --------------------- |
80
- | Local teardown | `session.disconnect()` | `client_disconnected` |
81
- | Graceful close signal | `session.sendCloseSignal(reason?)` | `client_close_signal` |
82
- | Server idle timeout | _(automatic)_ | `idle_timeout` |
78
+ | Action | API | Server `end_reason` |
79
+ | --------------------- | --------------------------------------------------------------------------------- | --------------------- |
80
+ | Local teardown | `session.disconnect()` (sync) or `session.disconnectAsync()` (await native close) | `client_disconnected` |
81
+ | Graceful close signal | `session.sendCloseSignal(reason?)` | `client_close_signal` |
82
+ | Server idle timeout | _(automatic)_ | `idle_timeout` |
83
83
 
84
84
  ## Reconnect and billing
85
85
 
86
- | UI / API | Behavior |
87
- | -------- | -------- |
88
- | Dashboard **Reconnect** or embed **Connect** after disconnect | Calls `startSession()` → **new orchestrator session id**, new Supabase row, new billing period once WebRTC connects |
89
- | Unintentional drop (network, signaling close) | Default `reconnectPolicy: "same-session"` re-joins with the **same credentials** and `peerId` (auto-retry with backoff) |
90
- | Manual `session.reconnect()` | Same orchestrator session — re-opens signaling only |
86
+ | UI / API | Behavior |
87
+ | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
88
+ | Dashboard **Reconnect** or embed **Connect** after disconnect | Calls `startSession()` → **new orchestrator session id**, new Supabase row, new billing period once WebRTC connects |
89
+ | Unintentional drop (network, signaling close) | Default `reconnectPolicy: "same-session"` re-joins with the **same credentials** and `peerId` (auto-retry with backoff) |
90
+ | Manual `session.reconnect()` | Same orchestrator session — re-opens signaling only |
91
91
 
92
92
  Billing starts when the runner reports a billable WebRTC leg (voice: connected PC + open control channel + agent; data-only: PC + DC). Provision alone does not bill.
93
93
 
@@ -114,7 +114,10 @@ Configure idle timeouts per project in the dashboard **Session settings** panel
114
114
  Pass `onSessionError` to `startSession` and `connectBrowserSession` for a unified handler across provisioning failures, WebRTC errors, and runner `session_error` data-channel events:
115
115
 
116
116
  ```typescript
117
- import { startSession, connectBrowserSession } from "@voicethere/client/browser";
117
+ import {
118
+ startSession,
119
+ connectBrowserSession,
120
+ } from "@voicethere/client/browser";
118
121
 
119
122
  const provision = await startSession({
120
123
  apiBase: "https://sessions.example/v1",
@@ -19,6 +19,8 @@ export type ConnectBrowserSessionOptions = {
19
19
  maxAutoReconnectAttempts?: number;
20
20
  onReconnecting?: (attempt: number) => void;
21
21
  onConnectionStatus?: (status: WebRtcConnectionStatus) => void;
22
+ iceTransportPolicy?: BrowserVoiceSessionOptions["iceTransportPolicy"];
23
+ onDiagnosticEvent?: BrowserVoiceSessionOptions["onDiagnosticEvent"];
22
24
  };
23
25
  export type BrowserSession = BrowserVoiceSession & {
24
26
  mode: BrowserSessionMode;
@@ -41,5 +43,9 @@ export { buildWebRtcConnectionStatus, deriveWebRtcConnectionPhase, isWebRtcConne
41
43
  export { collectWebRtcDiagnostics, formatWebRtcDiagnosticsLines, summarizeRtcStatsReport, type WebRtcDiagnostics, type WebRtcIceCandidatePairSummary, type WebRtcStatsSummary, } from "./webrtc-diagnostics.js";
42
44
  export type { DebugConsole, DebugEvent } from "./debug-console.js";
43
45
  export type { WebRtcRuntime } from "./webrtc-runtime.js";
44
- export { getDefaultBrowserRuntime } from "./webrtc-runtime.js";
46
+ export { getDefaultBrowserRuntime, peerConnectionSupportsCloseAsync, } from "./webrtc-runtime.js";
47
+ export { closePeerConnectionAwaitable, type AwaitableCloseablePeerConnection, type PeerCloseResult, } from "./peer-connection-close.js";
48
+ export type { VoiceSessionDiagnosticEvent, VoiceSessionDiagnosticHandler, } from "./voice-session-diagnostics.js";
49
+ export { redactDiagnosticDetail } from "./voice-session-diagnostics.js";
50
+ export { CLIENT_CAPABILITIES, type ClientCapabilities, } from "./client-capabilities.js";
45
51
  //# sourceMappingURL=browser-session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-session.d.ts","sourceRoot":"","sources":["../../src/browser/browser-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-session.d.ts","sourceRoot":"","sources":["../../src/browser/browser-session.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,8 @@ export async function connectBrowserSession(options) {
37
37
  maxAutoReconnectAttempts: options.maxAutoReconnectAttempts,
38
38
  onReconnecting: options.onReconnecting,
39
39
  onConnectionStatus: options.onConnectionStatus,
40
+ iceTransportPolicy: options.iceTransportPolicy,
41
+ onDiagnosticEvent: options.onDiagnosticEvent,
40
42
  });
41
43
  return { ...session, mode: resolvedMode };
42
44
  }
@@ -54,5 +56,8 @@ export { createDebugConsole } from "./debug-console.js";
54
56
  export { BrowserSessionModeType, ProvisionedRunnerModeType, } from "./session-modes.js";
55
57
  export { buildWebRtcConnectionStatus, deriveWebRtcConnectionPhase, isWebRtcConnectionReady, resolveReadinessProfile, } from "./webrtc-connection-status.js";
56
58
  export { collectWebRtcDiagnostics, formatWebRtcDiagnosticsLines, summarizeRtcStatsReport, } from "./webrtc-diagnostics.js";
57
- export { getDefaultBrowserRuntime } from "./webrtc-runtime.js";
59
+ export { getDefaultBrowserRuntime, peerConnectionSupportsCloseAsync, } from "./webrtc-runtime.js";
60
+ export { closePeerConnectionAwaitable, } from "./peer-connection-close.js";
61
+ export { redactDiagnosticDetail } from "./voice-session-diagnostics.js";
62
+ export { CLIENT_CAPABILITIES, } from "./client-capabilities.js";
58
63
  //# sourceMappingURL=browser-session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-session.js","sourceRoot":"","sources":["../../src/browser/browser-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-session.js","sourceRoot":"","sources":["../../src/browser/browser-session.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { DebugConsole } from "./debug-console.js";
4
4
  import { type WebRtcConnectionStatus, type WebRtcReadinessProfile } from "./webrtc-connection-status.js";
5
5
  import { type WebRtcDiagnostics } from "./webrtc-diagnostics.js";
6
6
  import { type WebRtcRuntime } from "./webrtc-runtime.js";
7
+ import { type VoiceSessionDiagnosticHandler } from "./voice-session-diagnostics.js";
7
8
  /**
8
9
  * Native RTCPeerConnection rejects offers without `a=ice-ufrag` (empty or truncated SDP).
9
10
  * Detect before setRemoteDescription so we can same-session reconnect instead of hanging.
@@ -41,6 +42,13 @@ export type BrowserVoiceSessionOptions = {
41
42
  onDebugEvent?: DebugConsole;
42
43
  /** Injectable WebRTC runtime (default: browser globals). */
43
44
  runtime?: WebRtcRuntime;
45
+ /**
46
+ * ICE transport policy for the peer connection (`all` | `relay`).
47
+ * Passed through to `RTCConfiguration.iceTransportPolicy`.
48
+ */
49
+ iceTransportPolicy?: "all" | "relay";
50
+ /** Structured diagnostics (peer close) — redacted; exceptions never affect lifecycle. */
51
+ onDiagnosticEvent?: VoiceSessionDiagnosticHandler;
44
52
  /** Opaque context forwarded to runner/agent on session start. */
45
53
  customerContext?: Record<string, unknown>;
46
54
  /** Unified handler for session_error DC events and local WebRTC failures. */
@@ -80,7 +88,10 @@ export type BrowserVoiceSessionOptions = {
80
88
  };
81
89
  export type BrowserVoiceSession = {
82
90
  peerId: string;
91
+ /** Synchronous terminal invalidation (reconnect-friendly; uses sync `pc.close()`). */
83
92
  disconnect: () => void;
93
+ /** Awaitable terminal cleanup barrier (Node `closeAsync` when present). */
94
+ disconnectAsync: () => Promise<void>;
84
95
  /** Ask the server to close this WebRTC leg (graceful close signal on voice-control). */
85
96
  sendCloseSignal: (reason?: string) => void;
86
97
  sendSpeak: (text: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"browser-voice-session.d.ts","sourceRoot":"","sources":["../../src/browser/browser-voice-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-voice-session.d.ts","sourceRoot":"","sources":["../../src/browser/browser-voice-session.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ import { createLocalSessionError, emitSessionError, isSessionErrorEvent, parseLe
4
4
  import { buildWebRtcConnectionStatus, isWebRtcConnectionReady, resolveReadinessProfile, } from "./webrtc-connection-status.js";
5
5
  import { collectWebRtcDiagnostics, } from "./webrtc-diagnostics.js";
6
6
  import { getDefaultBrowserRuntime, } from "./webrtc-runtime.js";
7
+ import { closePeerConnectionAwaitable } from "./peer-connection-close.js";
8
+ import { emitDiagnosticSafely, redactDiagnosticDetail, } from "./voice-session-diagnostics.js";
7
9
  import { waitForIceGatheringComplete } from "./wait-for-ice-gathering.js";
8
10
  import { isWebRtcConnectRetryError, WebRtcConnectRetryError, } from "./webrtc-connect-retry.js";
9
11
  /** Game-sync DC traffic logged at debug level — E2E stderr needs `LOAD_TEST_CLIENT_DEBUG=1`. */
@@ -404,7 +406,12 @@ export async function connectBrowserVoiceSession(options) {
404
406
  logOfferStep(step);
405
407
  step = "create_peer_connection";
406
408
  ensureConnectedPromise();
407
- pc = new runtime.RTCPeerConnection({ iceServers });
409
+ pc = new runtime.RTCPeerConnection({
410
+ iceServers,
411
+ ...(options.iceTransportPolicy
412
+ ? { iceTransportPolicy: options.iceTransportPolicy }
413
+ : {}),
414
+ });
408
415
  logOfferStep(step);
409
416
  pc.ontrack = (event) => {
410
417
  if (event.track.kind !== "audio")
@@ -741,16 +748,115 @@ export async function connectBrowserVoiceSession(options) {
741
748
  debug?.info("session", "close_signal", reason ?? "");
742
749
  },
743
750
  disconnect: () => {
751
+ // Sync terminal invalidation — must not await native close (reconnect opens WS promptly).
752
+ gracefulDisconnect = true;
753
+ if (reconnectTimer)
754
+ clearTimeout(reconnectTimer);
755
+ reconnectTimer = undefined;
756
+ stopMicPump?.();
757
+ stopMicPump = null;
758
+ const localControl = controlChannel;
759
+ const localSync = syncChannel;
760
+ const localPc = pc;
761
+ const localWs = ws;
762
+ const localMic = micStream;
763
+ controlChannel = null;
764
+ syncChannel = null;
765
+ pc = null;
766
+ ws = null;
767
+ micStream = null;
768
+ try {
769
+ localControl?.close();
770
+ }
771
+ catch {
772
+ /* ignore */
773
+ }
774
+ try {
775
+ localSync?.close();
776
+ }
777
+ catch {
778
+ /* ignore */
779
+ }
780
+ if (localWs) {
781
+ localWs.onclose = null;
782
+ localWs.onmessage = null;
783
+ localWs.onerror = null;
784
+ try {
785
+ localWs.close();
786
+ }
787
+ catch {
788
+ /* ignore */
789
+ }
790
+ }
791
+ try {
792
+ localPc?.close();
793
+ }
794
+ catch {
795
+ /* ignore */
796
+ }
797
+ localMic?.getTracks().forEach((track) => track.stop());
798
+ updateConnectionSnapshot({
799
+ signalingJoined: false,
800
+ peerConnectionState: "closed",
801
+ inboundAudioTrack: false,
802
+ outboundAudioTrack: false,
803
+ controlChannelOpen: false,
804
+ syncChannelOpen: false,
805
+ });
806
+ debug?.info("session", "disconnected");
807
+ },
808
+ disconnectAsync: async () => {
744
809
  gracefulDisconnect = true;
745
810
  if (reconnectTimer)
746
811
  clearTimeout(reconnectTimer);
812
+ reconnectTimer = undefined;
747
813
  stopMicPump?.();
748
814
  stopMicPump = null;
749
- controlChannel?.close();
750
- syncChannel?.close();
751
- pc?.close();
752
- micStream?.getTracks().forEach((track) => track.stop());
753
- ws?.close();
815
+ const localControl = controlChannel;
816
+ const localSync = syncChannel;
817
+ const localPc = pc;
818
+ const localWs = ws;
819
+ const localMic = micStream;
820
+ controlChannel = null;
821
+ syncChannel = null;
822
+ pc = null;
823
+ ws = null;
824
+ micStream = null;
825
+ try {
826
+ localControl?.close();
827
+ }
828
+ catch {
829
+ /* ignore */
830
+ }
831
+ try {
832
+ localSync?.close();
833
+ }
834
+ catch {
835
+ /* ignore */
836
+ }
837
+ if (localWs) {
838
+ localWs.onclose = null;
839
+ localWs.onmessage = null;
840
+ localWs.onerror = null;
841
+ try {
842
+ localWs.close();
843
+ }
844
+ catch {
845
+ /* ignore */
846
+ }
847
+ }
848
+ localMic?.getTracks().forEach((track) => track.stop());
849
+ const closeResult = await closePeerConnectionAwaitable(localPc);
850
+ emitDiagnosticSafely(options.onDiagnosticEvent, {
851
+ type: "peer_close",
852
+ mode: closeResult.mode,
853
+ durationMs: closeResult.durationMs,
854
+ timedOut: closeResult.timedOut,
855
+ context: "disconnect",
856
+ ...(closeResult.error !== undefined
857
+ ? { error: redactDiagnosticDetail(closeResult.error) }
858
+ : {}),
859
+ });
754
860
  updateConnectionSnapshot({
755
861
  signalingJoined: false,
756
862
  peerConnectionState: "closed",
@@ -1 +1 @@
1
- {"version":3,"file":"browser-voice-session.js","sourceRoot":"","sources":["../../src/browser/browser-voice-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-voice-session.js","sourceRoot":"","sources":["../../src/browser/browser-voice-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Explicit browser-client capability flags for consumers (e2e, tooling).
3
+ * Prefer this over inspecting installed bundle source text.
4
+ */
5
+ export declare const CLIENT_CAPABILITIES: {
6
+ /** RTCConfiguration.iceTransportPolicy is honored by connectBrowserVoiceSession. */
7
+ readonly iceTransportPolicy: true;
8
+ };
9
+ export type ClientCapabilities = typeof CLIENT_CAPABILITIES;
10
+ //# sourceMappingURL=client-capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-capabilities.d.ts","sourceRoot":"","sources":["../../src/browser/client-capabilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC9B,oFAAoF;;CAE5E,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,OAAO,mBAAmB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Explicit browser-client capability flags for consumers (e2e, tooling).
3
+ * Prefer this over inspecting installed bundle source text.
4
+ */
5
+ export const CLIENT_CAPABILITIES = {
6
+ /** RTCConfiguration.iceTransportPolicy is honored by connectBrowserVoiceSession. */
7
+ iceTransportPolicy: true,
8
+ };
9
+ //# sourceMappingURL=client-capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-capabilities.js","sourceRoot":"","sources":["../../src/browser/client-capabilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,oFAAoF;IACpF,kBAAkB,EAAE,IAAI;CAChB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Capability-based awaitable peer close (Node SDK `closeAsync`, browser sync `close`).
3
+ */
4
+ export type AwaitableCloseablePeerConnection = RTCPeerConnection & {
5
+ closeAsync?: () => Promise<void>;
6
+ };
7
+ export type PeerCloseResult = {
8
+ /** `async` when runtime exposed closeAsync; otherwise sync browser-style close. */
9
+ mode: "async" | "sync";
10
+ durationMs: number;
11
+ timedOut: boolean;
12
+ /** Present when native close rejected; cleanup still completed. */
13
+ error?: unknown;
14
+ };
15
+ /**
16
+ * Close a peer connection, awaiting `closeAsync()` when the runtime provides it.
17
+ * Never rejects — sync and async close failures are returned on {@link PeerCloseResult.error}.
18
+ */
19
+ export declare function closePeerConnectionAwaitable(pc: AwaitableCloseablePeerConnection | null | undefined, options?: {
20
+ timeoutMs?: number;
21
+ }): Promise<PeerCloseResult>;
22
+ //# sourceMappingURL=peer-connection-close.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer-connection-close.d.ts","sourceRoot":"","sources":["../../src/browser/peer-connection-close.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,gCAAgC,GAAG,iBAAiB,GAAG;IACjE,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,mFAAmF;IACnF,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,mEAAmE;IACnE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAIF;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,EAAE,EAAE,gCAAgC,GAAG,IAAI,GAAG,SAAS,EACvD,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B,OAAO,CAAC,eAAe,CAAC,CAwD1B"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Capability-based awaitable peer close (Node SDK `closeAsync`, browser sync `close`).
3
+ */
4
+ const DEFAULT_CLOSE_TIMEOUT_MS = 5_000;
5
+ /**
6
+ * Close a peer connection, awaiting `closeAsync()` when the runtime provides it.
7
+ * Never rejects — sync and async close failures are returned on {@link PeerCloseResult.error}.
8
+ */
9
+ export async function closePeerConnectionAwaitable(pc, options) {
10
+ const started = Date.now();
11
+ if (!pc) {
12
+ return { mode: "sync", durationMs: 0, timedOut: false };
13
+ }
14
+ const timeoutMs = options?.timeoutMs ?? DEFAULT_CLOSE_TIMEOUT_MS;
15
+ if (typeof pc.closeAsync === "function") {
16
+ let timedOut = false;
17
+ let timer;
18
+ let error;
19
+ try {
20
+ // Promise.resolve().then contains synchronous throws from closeAsync().
21
+ const closeWork = Promise.resolve()
22
+ .then(() => pc.closeAsync())
23
+ .then(() => undefined, (err) => {
24
+ error = err;
25
+ });
26
+ await Promise.race([
27
+ closeWork,
28
+ new Promise((resolve) => {
29
+ timer = setTimeout(() => {
30
+ timedOut = true;
31
+ resolve();
32
+ }, timeoutMs);
33
+ }),
34
+ ]);
35
+ }
36
+ finally {
37
+ if (timer)
38
+ clearTimeout(timer);
39
+ }
40
+ return {
41
+ mode: "async",
42
+ durationMs: Date.now() - started,
43
+ timedOut,
44
+ ...(error !== undefined ? { error } : {}),
45
+ };
46
+ }
47
+ try {
48
+ pc.close();
49
+ }
50
+ catch (error) {
51
+ return {
52
+ mode: "sync",
53
+ durationMs: Date.now() - started,
54
+ timedOut: false,
55
+ error,
56
+ };
57
+ }
58
+ return {
59
+ mode: "sync",
60
+ durationMs: Date.now() - started,
61
+ timedOut: false,
62
+ };
63
+ }
64
+ //# sourceMappingURL=peer-connection-close.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer-connection-close.js","sourceRoot":"","sources":["../../src/browser/peer-connection-close.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAEvC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,EAAuD,EACvD,OAAgC;IAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC1D,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,wBAAwB,CAAC;IACjE,IAAI,OAAO,EAAE,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACxC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,KAAgD,CAAC;QACrD,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,wEAAwE;YACxE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE;iBAChC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,UAAW,EAAE,CAAC;iBAC5B,IAAI,CACH,GAAG,EAAE,CAAC,SAAS,EACf,CAAC,GAAY,EAAE,EAAE;gBACf,KAAK,GAAG,GAAG,CAAC;YACd,CAAC,CACF,CAAC;YACJ,MAAM,OAAO,CAAC,IAAI,CAAC;gBACjB,SAAS;gBACT,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAC5B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;wBACtB,QAAQ,GAAG,IAAI,CAAC;wBAChB,OAAO,EAAE,CAAC;oBACZ,CAAC,EAAE,SAAS,CAAC,CAAC;gBAChB,CAAC,CAAC;aACH,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,OAAO;YACL,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;YAChC,QAAQ;YACR,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;YAChC,QAAQ,EAAE,KAAK;YACf,KAAK;SACN,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;QAChC,QAAQ,EAAE,KAAK;KAChB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ /** Structured diagnostic events for peer cleanup (no secrets / raw SDP / URLs). */
2
+ export type VoiceSessionDiagnosticEvent = {
3
+ type: "peer_close";
4
+ mode: "async" | "sync";
5
+ durationMs: number;
6
+ timedOut: boolean;
7
+ context: "disconnect" | "reset" | "failed_connect";
8
+ /** Redacted close failure summary when native close rejects (no URL/token/detail dump). */
9
+ error?: string;
10
+ };
11
+ export type VoiceSessionDiagnosticHandler = (event: VoiceSessionDiagnosticEvent) => void | Promise<void>;
12
+ /** Prefer short codes over raw messages when a known failure shape is recognized. */
13
+ export declare function diagnosticErrorCode(input: unknown): string | undefined;
14
+ /**
15
+ * Redact credentials, signaling/ICE URLs, query tokens, JSON secrets, and SDP ice-pwd.
16
+ * Prefer {@link diagnosticErrorCode} in call sites when a code is enough.
17
+ */
18
+ export declare function redactDiagnosticDetail(input: unknown): string;
19
+ /**
20
+ * Invoke a diagnostic callback without letting sync throws or async rejections
21
+ * affect disconnect / reconnect lifecycle. Never awaits the handler.
22
+ */
23
+ export declare function emitDiagnosticSafely(handler: VoiceSessionDiagnosticHandler | undefined, event: VoiceSessionDiagnosticEvent): void;
24
+ //# sourceMappingURL=voice-session-diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-session-diagnostics.d.ts","sourceRoot":"","sources":["../../src/browser/voice-session-diagnostics.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAEnF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,YAAY,GAAG,OAAO,GAAG,gBAAgB,CAAC;IACnD,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,CAC1C,KAAK,EAAE,2BAA2B,KAC/B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAKtE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA0B7D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,6BAA6B,GAAG,SAAS,EAClD,KAAK,EAAE,2BAA2B,GACjC,IAAI,CAUN"}
@@ -0,0 +1,48 @@
1
+ /** Structured diagnostic events for peer cleanup (no secrets / raw SDP / URLs). */
2
+ /** Prefer short codes over raw messages when a known failure shape is recognized. */
3
+ export function diagnosticErrorCode(input) {
4
+ const raw = input instanceof Error ? input.message : String(input ?? "");
5
+ if (/native close boom|closeAsync/i.test(raw))
6
+ return "peer_close_failed";
7
+ if (/timeout/i.test(raw))
8
+ return "peer_close_timeout";
9
+ return undefined;
10
+ }
11
+ /**
12
+ * Redact credentials, signaling/ICE URLs, query tokens, JSON secrets, and SDP ice-pwd.
13
+ * Prefer {@link diagnosticErrorCode} in call sites when a code is enough.
14
+ */
15
+ export function redactDiagnosticDetail(input) {
16
+ const code = diagnosticErrorCode(input);
17
+ if (code)
18
+ return code;
19
+ const raw = input instanceof Error ? input.message : String(input ?? "");
20
+ return (raw
21
+ // http(s), ws(s), and ICE URIs (including user:pass@ and query strings)
22
+ .replace(/\b(?:https?|wss?):\/\/[^\s"'`<>]+/gi, "[redacted-url]")
23
+ .replace(/\b(?:turns?|stuns?):[^\s"'`<>]+/gi, "[redacted-ice-uri]")
24
+ .replace(/([?&](?:token|join_token|access_token|auth|authorization|password|credential|secret|api[_-]?key)=)[^&\s"']+/gi, "$1[redacted]")
25
+ .replace(/\b(join_token|access_token|auth_token|api[_-]?key|password|credential|secret)\b\s*[:=]\s*["']?[^"'&\s,}\]]+/gi, "$1=[redacted]")
26
+ .replace(/(["'](?:join_token|access_token|password|credential|secret|username)["']\s*:\s*)["'][^"']*["']/gi, '$1"[redacted]"')
27
+ .replace(/\b(a=ice-pwd:)[^\r\n]+/gi, "$1[redacted]")
28
+ .replace(/\b(Bearer\s+)[A-Za-z0-9._\-+=/]+/gi, "$1[redacted]")
29
+ .slice(0, 200));
30
+ }
31
+ /**
32
+ * Invoke a diagnostic callback without letting sync throws or async rejections
33
+ * affect disconnect / reconnect lifecycle. Never awaits the handler.
34
+ */
35
+ export function emitDiagnosticSafely(handler, event) {
36
+ if (!handler)
37
+ return;
38
+ try {
39
+ const result = handler(event);
40
+ void Promise.resolve(result).catch(() => {
41
+ // Async diagnostic sinks must never surface unhandled rejections.
42
+ });
43
+ }
44
+ catch {
45
+ // Sync diagnostic sinks must never break disconnect / reconnect.
46
+ }
47
+ }
48
+ //# sourceMappingURL=voice-session-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-session-diagnostics.js","sourceRoot":"","sources":["../../src/browser/voice-session-diagnostics.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAgBnF,qFAAqF;AACrF,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACzE,IAAI,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAC1E,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,oBAAoB,CAAC;IACtD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,CACL,GAAG;QACD,wEAAwE;SACvE,OAAO,CAAC,qCAAqC,EAAE,gBAAgB,CAAC;SAChE,OAAO,CAAC,mCAAmC,EAAE,oBAAoB,CAAC;SAClE,OAAO,CACN,+GAA+G,EAC/G,cAAc,CACf;SACA,OAAO,CACN,+GAA+G,EAC/G,eAAe,CAChB;SACA,OAAO,CACN,kGAAkG,EAClG,gBAAgB,CACjB;SACA,OAAO,CAAC,0BAA0B,EAAE,cAAc,CAAC;SACnD,OAAO,CAAC,oCAAoC,EAAE,cAAc,CAAC;SAC7D,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CACjB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAkD,EAClD,KAAkC;IAElC,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACtC,kEAAkE;QACpE,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;IACnE,CAAC;AACH,CAAC"}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * Injectable WebRTC + signaling primitives for browser and Node test runtimes.
3
3
  */
4
+ import type { AwaitableCloseablePeerConnection } from "./peer-connection-close.js";
5
+ export type { AwaitableCloseablePeerConnection };
4
6
  export type WebRtcRuntime = {
5
7
  WebSocket: {
6
8
  new (url: string, protocols?: string | string[]): WebSocket;
@@ -12,4 +14,6 @@ export type WebRtcRuntime = {
12
14
  getUserMedia?: (constraints: MediaStreamConstraints) => Promise<MediaStream>;
13
15
  };
14
16
  export declare function getDefaultBrowserRuntime(): WebRtcRuntime;
17
+ /** True when a peer connection instance exposes awaitable native cleanup. */
18
+ export declare function peerConnectionSupportsCloseAsync(pc: RTCPeerConnection | null | undefined): boolean;
15
19
  //# sourceMappingURL=webrtc-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webrtc-runtime.d.ts","sourceRoot":"","sources":["../../src/browser/webrtc-runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE;QACT,KAAK,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;QAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,iBAAiB,EAAE;QACjB,KAAK,aAAa,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,CAAC;KAC3D,CAAC;IACF,YAAY,CAAC,EAAE,CACb,WAAW,EAAE,sBAAsB,KAChC,OAAO,CAAC,WAAW,CAAC,CAAC;CAC3B,CAAC;AAEF,wBAAgB,wBAAwB,IAAI,aAAa,CAsBxD"}
1
+ {"version":3,"file":"webrtc-runtime.d.ts","sourceRoot":"","sources":["../../src/browser/webrtc-runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAEnF,YAAY,EAAE,gCAAgC,EAAE,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE;QACT,KAAK,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;QAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,iBAAiB,EAAE;QACjB,KAAK,aAAa,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,CAAC;KAC3D,CAAC;IACF,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,sBAAsB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;CAC9E,CAAC;AAEF,wBAAgB,wBAAwB,IAAI,aAAa,CAsBxD;AAED,6EAA6E;AAC7E,wBAAgB,gCAAgC,CAC9C,EAAE,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GACvC,OAAO,CAKT"}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Injectable WebRTC + signaling primitives for browser and Node test runtimes.
3
+ */
1
4
  export function getDefaultBrowserRuntime() {
2
5
  if (typeof globalThis.WebSocket === "undefined") {
3
6
  throw new Error("WebSocket is not available; pass runtime (e.g. createNodeWebRtcRuntime from @voicethere/client/node)");
@@ -16,4 +19,9 @@ export function getDefaultBrowserRuntime() {
16
19
  },
17
20
  };
18
21
  }
22
+ /** True when a peer connection instance exposes awaitable native cleanup. */
23
+ export function peerConnectionSupportsCloseAsync(pc) {
24
+ return (typeof pc
25
+ ?.closeAsync === "function");
26
+ }
19
27
  //# sourceMappingURL=webrtc-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webrtc-runtime.js","sourceRoot":"","sources":["../../src/browser/webrtc-runtime.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,wBAAwB;IACtC,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CACb,sGAAsG,CACvG,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,UAAU,CAAC,iBAAiB,KAAK,WAAW,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;QAC/C,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;YAClC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1D,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"webrtc-runtime.js","sourceRoot":"","sources":["../../src/browser/webrtc-runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH,MAAM,UAAU,wBAAwB;IACtC,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CACb,sGAAsG,CACvG,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,UAAU,CAAC,iBAAiB,KAAK,WAAW,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;QAC/C,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;YAClC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,gCAAgC,CAC9C,EAAwC;IAExC,OAAO,CACL,OAAQ,EAA0D;QAChE,EAAE,UAAU,KAAK,UAAU,CAC9B,CAAC;AACJ,CAAC"}
@@ -5,4 +5,5 @@ export type { FetchSessionApiOptions, SessionApiRetryRuntime, } from "../browser
5
5
  export type { BrowserSession, BrowserSessionMode, ConnectBrowserSessionOptions, BrowserVoiceSession, BrowserVoiceSessionOptions, SessionCredentials, SessionStatusResponse, StartSessionOptions, StartSessionResult, WebRtcConnectionStatus, WebRtcReadinessProfile, WebRtcDiagnostics, WebRtcIceCandidatePairSummary, WebRtcStatsSummary, } from "../browser/browser-session.js";
6
6
  export { collectWebRtcDiagnostics, formatWebRtcDiagnosticsLines, summarizeRtcStatsReport, } from "../browser/browser-session.js";
7
7
  export type { WebRtcRuntime } from "../browser/webrtc-runtime.js";
8
+ export { CLIENT_CAPABILITIES, type ClientCapabilities, } from "../browser/client-capabilities.js";
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,EACzB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,mCAAmC,EACnC,yBAAyB,EACzB,4BAA4B,EAC5B,iCAAiC,EACjC,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACV,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,4BAA4B,EAC5B,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,6BAA6B,EAC7B,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,EACzB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,mCAAmC,EACnC,yBAAyB,EACzB,4BAA4B,EAC5B,iCAAiC,EACjC,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACV,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,4BAA4B,EAC5B,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,6BAA6B,EAC7B,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EACL,mBAAmB,EACnB,KAAK,kBAAkB,GACxB,MAAM,mCAAmC,CAAC"}
@@ -2,4 +2,5 @@ export { createNodeWebRtcRuntime } from "./runtime.js";
2
2
  export { NodeWebSocketAdapter } from "./node-websocket.js";
3
3
  export { connectBrowserSession, connectBrowserVoiceSession, connectBrowserChatSession, connectDataSession, startSession, fetchSessionApi, DEFAULT_SESSION_API_RETRY_DELAYS_MS, isRetryableSessionApiBody, isRetryableSessionApiFailure, isRetryableSessionApiNetworkError, isRetryableSessionApiStatus, BrowserSessionModeType, ProvisionedRunnerModeType, VOICE_CONTROL_CHANNEL_LABEL, VOICE_SYNC_CHANNEL_LABEL, } from "../browser/browser-session.js";
4
4
  export { collectWebRtcDiagnostics, formatWebRtcDiagnosticsLines, summarizeRtcStatsReport, } from "../browser/browser-session.js";
5
+ export { CLIENT_CAPABILITIES, } from "../browser/client-capabilities.js";
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,EACzB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,mCAAmC,EACnC,yBAAyB,EACzB,4BAA4B,EAC5B,iCAAiC,EACjC,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AAwBvC,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,EACzB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,mCAAmC,EACnC,yBAAyB,EACzB,4BAA4B,EAC5B,iCAAiC,EACjC,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AAwBvC,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EACL,mBAAmB,GAEpB,MAAM,mCAAmC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voicethere/client",
3
- "version": "0.7.13",
3
+ "version": "0.7.14",
4
4
  "description": "VoiceThere browser/Node client — cloud gateway, browser voice/chat, embed widget",
5
5
  "type": "module",
6
6
  "exports": {