@estuary-ai/sdk 0.1.13 → 0.1.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.
package/dist/index.d.mts CHANGED
@@ -19,8 +19,6 @@ interface EstuaryConfig {
19
19
  debug?: boolean;
20
20
  /** Voice transport: 'websocket' | 'livekit' | 'auto' (default: 'auto') */
21
21
  voiceTransport?: VoiceTransport;
22
- /** Pre-imported livekit-client module for bundlers that can't resolve the dynamic import (e.g. Mattercraft) */
23
- livekitModule?: any;
24
22
  /** Enable real-time memory extraction after each response (default: false) */
25
23
  realtimeMemory?: boolean;
26
24
  /** Suppress mic during TTS playback (software AEC fallback, disables barge-in). Default: false */
package/dist/index.js CHANGED
@@ -4888,6 +4888,7 @@ var init_websocket_voice = __esm({
4888
4888
  mediaStream = null;
4889
4889
  scriptProcessor = null;
4890
4890
  sourceNode = null;
4891
+ zeroGainNode = null;
4891
4892
  _isMuted = false;
4892
4893
  _isSuppressed = false;
4893
4894
  _isActive = false;
@@ -4951,7 +4952,10 @@ var init_websocket_voice = __esm({
4951
4952
  }
4952
4953
  };
4953
4954
  this.sourceNode.connect(this.scriptProcessor);
4954
- this.scriptProcessor.connect(this.audioContext.destination);
4955
+ this.zeroGainNode = this.audioContext.createGain();
4956
+ this.zeroGainNode.gain.value = 0;
4957
+ this.scriptProcessor.connect(this.zeroGainNode);
4958
+ this.zeroGainNode.connect(this.audioContext.destination);
4955
4959
  this._isActive = true;
4956
4960
  this.socketManager.emitEvent("start_voice");
4957
4961
  this.logger.debug("WebSocket voice started");
@@ -4992,6 +4996,10 @@ var init_websocket_voice = __esm({
4992
4996
  this.scriptProcessor.disconnect();
4993
4997
  this.scriptProcessor = null;
4994
4998
  }
4999
+ if (this.zeroGainNode) {
5000
+ this.zeroGainNode.disconnect();
5001
+ this.zeroGainNode = null;
5002
+ }
4995
5003
  if (this.sourceNode) {
4996
5004
  this.sourceNode.disconnect();
4997
5005
  this.sourceNode = null;
@@ -5024,15 +5032,13 @@ var init_livekit_voice = __esm({
5024
5032
  LiveKitVoiceManager = class {
5025
5033
  socketManager;
5026
5034
  logger;
5027
- livekitModule;
5028
5035
  room = null;
5029
5036
  // livekit-client Room (dynamically imported)
5030
5037
  _isMuted = false;
5031
5038
  _isActive = false;
5032
- constructor(socketManager, logger, livekitModule) {
5039
+ constructor(socketManager, logger) {
5033
5040
  this.socketManager = socketManager;
5034
5041
  this.logger = logger;
5035
- this.livekitModule = livekitModule;
5036
5042
  }
5037
5043
  get isMuted() {
5038
5044
  return this._isMuted;
@@ -5047,26 +5053,20 @@ var init_livekit_voice = __esm({
5047
5053
  let Room;
5048
5054
  let RoomEvent;
5049
5055
  let Track;
5050
- if (this.livekitModule) {
5051
- Room = this.livekitModule.Room;
5052
- RoomEvent = this.livekitModule.RoomEvent;
5053
- Track = this.livekitModule.Track;
5054
- } else {
5055
- try {
5056
- const specifier = ["livekit", "client"].join("-");
5057
- const lk = await import(
5058
- /* @vite-ignore */
5059
- specifier
5060
- );
5061
- Room = lk.Room;
5062
- RoomEvent = lk.RoomEvent;
5063
- Track = lk.Track;
5064
- } catch {
5065
- throw new exports.EstuaryError(
5066
- "LIVEKIT_UNAVAILABLE" /* LIVEKIT_UNAVAILABLE */,
5067
- "livekit-client package is not installed"
5068
- );
5069
- }
5056
+ try {
5057
+ const specifier = ["livekit", "client"].join("-");
5058
+ const lk = await import(
5059
+ /* @vite-ignore */
5060
+ specifier
5061
+ );
5062
+ Room = lk.Room;
5063
+ RoomEvent = lk.RoomEvent;
5064
+ Track = lk.Track;
5065
+ } catch {
5066
+ throw new exports.EstuaryError(
5067
+ "LIVEKIT_UNAVAILABLE" /* LIVEKIT_UNAVAILABLE */,
5068
+ "livekit-client package is not installed"
5069
+ );
5070
5070
  }
5071
5071
  const tokenData = await this.requestToken();
5072
5072
  this.room = new Room({
@@ -9075,7 +9075,7 @@ var SocketManager = class extends TypedEventEmitter {
9075
9075
  };
9076
9076
 
9077
9077
  // src/voice/voice-manager.ts
9078
- async function createVoiceManager(transport, socketManager, sampleRate, logger, livekitModule) {
9078
+ async function createVoiceManager(transport, socketManager, sampleRate, logger) {
9079
9079
  if (transport === "websocket") {
9080
9080
  const { WebSocketVoiceManager: WebSocketVoiceManager2 } = await Promise.resolve().then(() => (init_websocket_voice(), websocket_voice_exports));
9081
9081
  return new WebSocketVoiceManager2(socketManager, sampleRate, logger);
@@ -9083,7 +9083,7 @@ async function createVoiceManager(transport, socketManager, sampleRate, logger,
9083
9083
  if (transport === "livekit") {
9084
9084
  try {
9085
9085
  const { LiveKitVoiceManager: LiveKitVoiceManager2 } = await Promise.resolve().then(() => (init_livekit_voice(), livekit_voice_exports));
9086
- return new LiveKitVoiceManager2(socketManager, logger, livekitModule);
9086
+ return new LiveKitVoiceManager2(socketManager, logger);
9087
9087
  } catch {
9088
9088
  logger.warn("livekit-client not installed, falling back to WebSocket voice");
9089
9089
  const { WebSocketVoiceManager: WebSocketVoiceManager2 } = await Promise.resolve().then(() => (init_websocket_voice(), websocket_voice_exports));
@@ -9093,7 +9093,7 @@ async function createVoiceManager(transport, socketManager, sampleRate, logger,
9093
9093
  if (transport === "auto") {
9094
9094
  try {
9095
9095
  const { LiveKitVoiceManager: LiveKitVoiceManager2 } = await Promise.resolve().then(() => (init_livekit_voice(), livekit_voice_exports));
9096
- return new LiveKitVoiceManager2(socketManager, logger, livekitModule);
9096
+ return new LiveKitVoiceManager2(socketManager, logger);
9097
9097
  } catch {
9098
9098
  const { WebSocketVoiceManager: WebSocketVoiceManager2 } = await Promise.resolve().then(() => (init_websocket_voice(), websocket_voice_exports));
9099
9099
  return new WebSocketVoiceManager2(socketManager, sampleRate, logger);
@@ -9538,7 +9538,7 @@ var EstuaryClient = class extends TypedEventEmitter {
9538
9538
  }
9539
9539
  const transport = this.config.voiceTransport ?? "auto";
9540
9540
  const sampleRate = this.config.audioSampleRate ?? DEFAULT_SAMPLE_RATE;
9541
- this.voiceManager = await createVoiceManager(transport, this.socketManager, sampleRate, this.logger, this.config.livekitModule);
9541
+ this.voiceManager = await createVoiceManager(transport, this.socketManager, sampleRate, this.logger);
9542
9542
  if (!this.voiceManager) {
9543
9543
  throw new exports.EstuaryError("VOICE_NOT_SUPPORTED" /* VOICE_NOT_SUPPORTED */, "No voice transport available");
9544
9544
  }