@layercode/js-sdk 2.0.1 → 2.0.3

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,9 +8,12 @@ interface ILayercodeClient {
8
8
  triggerUserTurnFinished(): Promise<void>;
9
9
  getStream(): MediaStream | null;
10
10
  setInputDevice(deviceId: string): Promise<void>;
11
+ mute(): void;
12
+ unmute(): void;
11
13
  readonly status: string;
12
14
  readonly userAudioAmplitude: number;
13
15
  readonly agentAudioAmplitude: number;
16
+ readonly isMuted: boolean;
14
17
  readonly conversationId: string | null;
15
18
  }
16
19
  /**
@@ -39,6 +42,8 @@ interface LayercodeClientOptions {
39
42
  onDeviceSwitched?: (deviceId: string) => void;
40
43
  /** Callback for data messages */
41
44
  onDataMessage?: (message: any) => void;
45
+ /** Callback for other messages (excluding audio msgs) */
46
+ onMessage?: (message: any) => void;
42
47
  /** Callback for user audio amplitude changes */
43
48
  onUserAmplitudeChange?: (amplitude: number) => void;
44
49
  /** Callback for agent audio amplitude changes */
@@ -47,6 +52,8 @@ interface LayercodeClientOptions {
47
52
  onStatusChange?: (status: string) => void;
48
53
  /** Callback when user turn changes */
49
54
  onUserIsSpeakingChange?: (isSpeaking: boolean) => void;
55
+ /** Callback when mute state changes */
56
+ onMuteStateChange?: (isMuted: boolean) => void;
50
57
  }
51
58
  /**
52
59
  * @class LayercodeClient
@@ -73,6 +80,7 @@ declare class LayercodeClient implements ILayercodeClient {
73
80
  status: string;
74
81
  userAudioAmplitude: number;
75
82
  agentAudioAmplitude: number;
83
+ isMuted: boolean;
76
84
  conversationId: string | null;
77
85
  /**
78
86
  * Creates an instance of LayercodeClient.
@@ -141,6 +149,15 @@ declare class LayercodeClient implements ILayercodeClient {
141
149
  * Sets up the device change event listener
142
150
  */
143
151
  private _setupDeviceChangeListener;
152
+ /**
153
+ * Mutes the microphone to stop sending audio to the server
154
+ * The connection and recording remain active for quick unmute
155
+ */
156
+ mute(): void;
157
+ /**
158
+ * Unmutes the microphone to resume sending audio to the server
159
+ */
160
+ unmute(): void;
144
161
  }
145
162
  export default LayercodeClient;
146
163
  export type { ILayercodeClient, LayercodeClientOptions };
@@ -1,4 +1,4 @@
1
- export type LayercodeMessageType = 'client.audio' | 'trigger.turn.start' | 'trigger.turn.end' | 'trigger.response.audio.replay_finished' | 'trigger.response.audio.interrupted' | 'vad_events' | 'client.ready' | 'turn.start' | 'turn.end' | 'response.audio' | 'response.text' | 'response.data';
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.delta' | 'user.transcript';
2
2
  export interface BaseLayercodeMessage {
3
3
  type: LayercodeMessageType;
4
4
  event_id?: string;
@@ -23,16 +23,8 @@ export interface ClientTriggerResponseAudioReplayFinishedMessage extends BaseLay
23
23
  reason: 'completed';
24
24
  last_delta_id_played?: string;
25
25
  }
26
- export interface ClientTriggerResponseAudioInterruptedMessage extends BaseLayercodeMessage {
27
- type: 'trigger.response.audio.interrupted';
28
- playback_offset?: number;
29
- interruption_context?: {
30
- turn_id: string;
31
- playback_offset_ms: number;
32
- };
33
- }
34
26
  export interface ServerTurnMessage extends BaseLayercodeMessage {
35
- type: 'turn.start' | 'turn.end';
27
+ type: 'turn.start';
36
28
  role: 'user' | 'assistant';
37
29
  }
38
30
  export interface ServerResponseAudioMessage extends BaseLayercodeMessage {
@@ -51,6 +43,16 @@ export interface ServerResponseDataMessage extends BaseLayercodeMessage {
51
43
  content: any;
52
44
  turn_id: string;
53
45
  }
54
- export type ServerMessage = ServerTurnMessage | ServerResponseAudioMessage | ServerResponseTextMessage | ServerResponseDataMessage;
55
- export type ClientMessage = ClientAudioMessage | ClientTriggerTurnMessage | ClientTriggerResponseAudioReplayFinishedMessage | ClientTriggerResponseAudioInterruptedMessage | ClientVadEventsMessage | ClientReadyMessage;
46
+ export interface ServerResponseUserTranscriptDelta extends BaseLayercodeMessage {
47
+ type: 'user.transcript.delta';
48
+ content: string;
49
+ turn_id: string;
50
+ }
51
+ export interface ServerResponseUserTranscript extends BaseLayercodeMessage {
52
+ type: 'user.transcript';
53
+ content: string;
54
+ turn_id: string;
55
+ }
56
+ export type ServerMessage = ServerTurnMessage | ServerResponseAudioMessage | ServerResponseTextMessage | ServerResponseDataMessage | ServerResponseUserTranscriptDelta | ServerResponseUserTranscript;
57
+ export type ClientMessage = ClientAudioMessage | ClientTriggerTurnMessage | ClientTriggerResponseAudioReplayFinishedMessage | ClientVadEventsMessage | ClientReadyMessage;
56
58
  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.0.1",
5
+ "version": "2.0.3",
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
+ }