@layercode/js-sdk 2.1.6 → 2.2.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.
@@ -8,8 +8,12 @@ interface ILayercodeClient {
8
8
  triggerUserTurnFinished(): Promise<void>;
9
9
  getStream(): MediaStream | null;
10
10
  setInputDevice(deviceId: string): Promise<void>;
11
+ listDevices(): Promise<Array<MediaDeviceInfo & {
12
+ default: boolean;
13
+ }>>;
11
14
  mute(): void;
12
15
  unmute(): void;
16
+ sendClientResponseText(text: string): Promise<void>;
13
17
  readonly status: string;
14
18
  readonly userAudioAmplitude: number;
15
19
  readonly agentAudioAmplitude: number;
@@ -40,6 +44,10 @@ interface LayercodeClientOptions {
40
44
  onError?: (error: Error) => void;
41
45
  /** Callback when a device is switched */
42
46
  onDeviceSwitched?: (deviceId: string) => void;
47
+ /** Callback when available devices change (devices added/removed) */
48
+ onDevicesChanged?: (devices: Array<MediaDeviceInfo & {
49
+ default: boolean;
50
+ }>) => void;
43
51
  /** Callback for data messages */
44
52
  onDataMessage?: (message: any) => void;
45
53
  /** Callback for other messages (excluding audio msgs) */
@@ -107,6 +115,7 @@ declare class LayercodeClient implements ILayercodeClient {
107
115
  private _clientInterruptAssistantReplay;
108
116
  triggerUserTurnStarted(): Promise<void>;
109
117
  triggerUserTurnFinished(): Promise<void>;
118
+ sendClientResponseText(text: string): Promise<void>;
110
119
  /**
111
120
  * Handles incoming WebSocket messages
112
121
  * @param {MessageEvent} event - The WebSocket message event
@@ -140,6 +149,13 @@ declare class LayercodeClient implements ILayercodeClient {
140
149
  * @returns {MediaStream|null} The microphone stream or null if not initialized
141
150
  */
142
151
  getStream(): MediaStream | null;
152
+ /**
153
+ * List all available audio input devices
154
+ * @returns {Promise<Array<MediaDeviceInfo & {default: boolean}>>}
155
+ */
156
+ listDevices(): Promise<Array<MediaDeviceInfo & {
157
+ default: boolean;
158
+ }>>;
143
159
  /**
144
160
  * Switches the input device for the microphone and restarts recording
145
161
  * @param {string} deviceId - The deviceId of the new microphone
@@ -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' | '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' | '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;
@@ -11,6 +11,10 @@ export interface ClientTriggerTurnMessage extends BaseLayercodeMessage {
11
11
  type: 'trigger.turn.start' | 'trigger.turn.end';
12
12
  role: 'user';
13
13
  }
14
+ export interface ClientResponseTextMessage extends BaseLayercodeMessage {
15
+ type: 'client.response.text';
16
+ content: string;
17
+ }
14
18
  export interface ClientVadEventsMessage extends BaseLayercodeMessage {
15
19
  type: 'vad_events';
16
20
  event: 'vad_start' | 'vad_end' | 'vad_model_failed';
@@ -61,5 +65,5 @@ export interface ServerResponseUserTranscript extends BaseLayercodeMessage {
61
65
  turn_id: string;
62
66
  }
63
67
  export type ServerMessage = ServerTurnMessage | ServerResponseAudioMessage | ServerResponseTextMessage | ServerResponseDataMessage | ServerResponseUserTranscriptInterimDelta | ServerResponseUserTranscriptDelta | ServerResponseUserTranscript;
64
- export type ClientMessage = ClientAudioMessage | ClientTriggerTurnMessage | ClientTriggerResponseAudioReplayFinishedMessage | ClientVadEventsMessage | ClientReadyMessage;
68
+ export type ClientMessage = ClientAudioMessage | ClientTriggerTurnMessage | ClientTriggerResponseAudioReplayFinishedMessage | ClientVadEventsMessage | ClientReadyMessage | ClientResponseTextMessage;
65
69
  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.1.6",
5
+ "version": "2.2.0",
6
6
  "description": "Layercode JavaScript SDK for browser usage",
7
7
  "type": "module",
8
8
  "main": "dist/layercode-js-sdk.esm.js",
@@ -48,4 +48,4 @@
48
48
  "@ricky0123/vad-web": "^0.0.24",
49
49
  "onnxruntime-web": "^1.21.1"
50
50
  }
51
- }
51
+ }