@layercode/js-sdk 2.3.3 → 2.5.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.
@@ -38,6 +38,7 @@ interface ILayercodeClient {
38
38
  getStream(): MediaStream | null;
39
39
  setInputDevice(deviceId: string): Promise<void>;
40
40
  setAudioInput(state: boolean): Promise<void>;
41
+ setAudioOutput(state: boolean): Promise<void>;
41
42
  listDevices(): Promise<Array<MediaDeviceInfo & {
42
43
  default: boolean;
43
44
  }>>;
@@ -68,8 +69,12 @@ interface LayercodeClientOptions {
68
69
  metadata?: Record<string, any>;
69
70
  /** Whether audio input is enabled. I.e. is the microphone turned on in the browser */
70
71
  audioInput?: boolean;
72
+ /** Whether audio output is enabled. I.e. do we play the sound in the browser client */
73
+ audioOutput?: boolean;
71
74
  /** Fired when audio input flag changes */
72
75
  audioInputChanged?: (audioInput: boolean) => void;
76
+ /** Fired when audio output flag changes */
77
+ audioOutputChanged?: (audioInput: boolean) => void;
73
78
  /** Milliseconds before resuming agent audio after temporary pause due to user interruption (which was actually a false interruption) */
74
79
  vadResumeDelay?: number;
75
80
  /** Callback when connection is established */
@@ -117,6 +122,7 @@ declare class LayercodeClient implements ILayercodeClient {
117
122
  private vad;
118
123
  private ws;
119
124
  private audioInput;
125
+ private audioOutput;
120
126
  private AMPLITUDE_MONITORING_SAMPLE_RATE;
121
127
  private pushToTalkActive;
122
128
  private pushToTalkEnabled;
@@ -163,6 +169,7 @@ declare class LayercodeClient implements ILayercodeClient {
163
169
  triggerUserTurnStarted(): Promise<void>;
164
170
  triggerUserTurnFinished(): Promise<void>;
165
171
  sendClientResponseText(text: string): Promise<void>;
172
+ sendClientResponseData(data: any): Promise<void>;
166
173
  /**
167
174
  * Handles incoming WebSocket messages
168
175
  * @param {MessageEvent} event - The WebSocket message event
@@ -186,8 +193,10 @@ declare class LayercodeClient implements ILayercodeClient {
186
193
  audioInputConnect(): Promise<void>;
187
194
  audioInputDisconnect(): Promise<void>;
188
195
  setAudioInput(state: boolean): Promise<void>;
196
+ setAudioOutput(state: boolean): Promise<void>;
189
197
  /** Emitters for audio flags */
190
198
  private _emitAudioInput;
199
+ private _emitAudioOutput;
191
200
  get audioInputEnabled(): boolean;
192
201
  get userSpeaking(): boolean;
193
202
  get agentSpeaking(): boolean;
@@ -1,4 +1,4 @@
1
- export type LayercodeMessageType = 'client.audio' | 'trigger.turn.start' | 'trigger.turn.end' | 'trigger.response.audio.replay_finished' | 'vad_events' | 'client.ready' | 'client.response.text' | 'turn.start' | 'response.audio' | 'response.text' | 'response.data' | 'user.transcript.interim_delta' | 'user.transcript.delta' | 'user.transcript';
1
+ export type LayercodeMessageType = 'client.audio' | 'trigger.turn.start' | 'trigger.turn.end' | 'trigger.response.audio.replay_finished' | 'vad_events' | 'client.ready' | 'client.response.text' | 'client.response.data' | 'turn.start' | 'response.audio' | 'response.text' | 'response.data' | 'user.transcript.interim_delta' | 'user.transcript.delta' | 'user.transcript';
2
2
  export interface BaseLayercodeMessage {
3
3
  type: LayercodeMessageType;
4
4
  event_id?: string;
@@ -15,6 +15,10 @@ export interface ClientResponseTextMessage extends BaseLayercodeMessage {
15
15
  type: 'client.response.text';
16
16
  content: string;
17
17
  }
18
+ export interface ClientResponseDataMessage extends BaseLayercodeMessage {
19
+ type: 'client.response.data';
20
+ data: Record<string, any>;
21
+ }
18
22
  export interface ClientVadEventsMessage extends BaseLayercodeMessage {
19
23
  type: 'vad_events';
20
24
  event: 'vad_start' | 'vad_end' | 'vad_model_failed';
@@ -65,5 +69,5 @@ export interface ServerResponseUserTranscript extends BaseLayercodeMessage {
65
69
  turn_id: string;
66
70
  }
67
71
  export type ServerMessage = ServerTurnMessage | ServerResponseAudioMessage | ServerResponseTextMessage | ServerResponseDataMessage | ServerResponseUserTranscriptInterimDelta | ServerResponseUserTranscriptDelta | ServerResponseUserTranscript;
68
- export type ClientMessage = ClientAudioMessage | ClientTriggerTurnMessage | ClientTriggerResponseAudioReplayFinishedMessage | ClientVadEventsMessage | ClientReadyMessage | ClientResponseTextMessage;
72
+ export type ClientMessage = ClientAudioMessage | ClientTriggerTurnMessage | ClientTriggerResponseAudioReplayFinishedMessage | ClientVadEventsMessage | ClientReadyMessage | ClientResponseTextMessage | ClientResponseDataMessage;
69
73
  export type LayercodeMessage = ClientMessage | ServerMessage;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "author": "Layercode",
3
3
  "license": "MIT",
4
4
  "name": "@layercode/js-sdk",
5
- "version": "2.3.3",
5
+ "version": "2.5.0",
6
6
  "description": "Layercode JavaScript SDK for browser usage",
7
7
  "type": "module",
8
8
  "main": "dist/layercode-js-sdk.esm.js",