@pipecat-ai/websocket-transport 0.4.1

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/LICENSE ADDED
@@ -0,0 +1,24 @@
1
+ BSD 2-Clause License
2
+
3
+ Copyright (c) 2024, Daily
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ 1. Redistributions of source code must retain the above copyright notice, this
9
+ list of conditions and the following disclaimer.
10
+
11
+ 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
19
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
23
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package/README.md ADDED
@@ -0,0 +1,77 @@
1
+ # Websocket Transport
2
+
3
+ [![Demo](https://img.shields.io/badge/Demo-forestgreen)](https://github.com/pipecat-ai/pipecat/tree/main/examples/websocket/README.md)
4
+ ![NPM Version](https://img.shields.io/npm/v/@pipecat-ai/websocket-transport)
5
+
6
+ Websocket transport package for use with `@pipecat-ai/client-js`.
7
+
8
+ ## Installation
9
+
10
+ ```bash copy
11
+ npm install \
12
+ @pipecat-ai/client-js \
13
+ @pipecat-ai/websocket-transport
14
+ ```
15
+
16
+ ## Overview
17
+
18
+ The WebSocketTransport class provides a Websocket transport layer establishing a connection with Pipecat WebSocketTransport. It handles audio device management and real-time communication between client and bot.
19
+
20
+ ## Features
21
+
22
+ - 🎤 Microphone input handling
23
+ - 🤖 Bot participant tracking
24
+ - 💬 Real-time messaging
25
+
26
+ ## Usage
27
+
28
+ ### Basic Setup
29
+
30
+ ```javascript
31
+ import { RTVIClient } from "@pipecat-ai/client-js";
32
+ import { WebSocketTransport } from "@pipecat-ai/small-webrtc-transport";
33
+
34
+ const transport = new WebSocketTransport();
35
+
36
+ const rtviClient = new RTVIClient({
37
+ transport,
38
+ enableMic: true, // Default microphone on
39
+ callbacks: {
40
+ // Event handlers
41
+ },
42
+ params: {
43
+ baseUrl,
44
+ endpoints
45
+ }
46
+ // ...
47
+ });
48
+
49
+ await rtviClient.connect();
50
+ ```
51
+
52
+ ## API Reference
53
+
54
+ ### States
55
+
56
+ The transport can be in one of these states:
57
+ - "initializing"
58
+ - "initialized"
59
+ - "connecting"
60
+ - "connected"
61
+ - "ready"
62
+ - "disconnecting"
63
+ - "error"
64
+
65
+ ## Events
66
+
67
+ The transport implements the various [RTVI event handlers](https://docs.pipecat.ai/client/js/api-reference/callbacks). Check out the docs or samples for more info.
68
+
69
+ ## Error Handling
70
+
71
+ The transport includes error handling for:
72
+ - Connection failures
73
+ - Device errors
74
+
75
+ ## License
76
+ BSD-2 Clause
77
+
@@ -0,0 +1,369 @@
1
+ import { RTVIClientOptions, RTVIEventCallbacks, Tracks, RTVIMessage, Transport, TransportState } from "@pipecat-ai/client-js";
2
+ import { DailyEventObjectTrack } from "@daily-co/daily-js";
3
+ import { EventEmitter } from "events";
4
+ import { BinaryWriteOptions, IBinaryWriter, BinaryReadOptions, IBinaryReader, PartialMessage, MessageType } from "@protobuf-ts/runtime";
5
+ declare abstract class MediaManager {
6
+ protected _userAudioCallback: (data: ArrayBuffer) => void;
7
+ protected _options: RTVIClientOptions;
8
+ protected _callbacks: RTVIEventCallbacks;
9
+ protected _micEnabled: boolean;
10
+ protected _camEnabled: boolean;
11
+ constructor();
12
+ setUserAudioCallback(userAudioCallback: (data: ArrayBuffer) => void): void;
13
+ setRTVIOptions(options: RTVIClientOptions, override?: boolean): void;
14
+ abstract initialize(): Promise<void>;
15
+ abstract connect(): Promise<void>;
16
+ abstract disconnect(): Promise<void>;
17
+ abstract userStartedSpeaking(): Promise<unknown>;
18
+ abstract bufferBotAudio(data: ArrayBuffer | Int16Array, id?: string): Int16Array | undefined;
19
+ abstract getAllMics(): Promise<MediaDeviceInfo[]>;
20
+ abstract getAllCams(): Promise<MediaDeviceInfo[]>;
21
+ abstract getAllSpeakers(): Promise<MediaDeviceInfo[]>;
22
+ abstract updateMic(micId: string): void;
23
+ abstract updateCam(camId: string): void;
24
+ abstract updateSpeaker(speakerId: string): void;
25
+ abstract get selectedMic(): MediaDeviceInfo | Record<string, never>;
26
+ abstract get selectedCam(): MediaDeviceInfo | Record<string, never>;
27
+ abstract get selectedSpeaker(): MediaDeviceInfo | Record<string, never>;
28
+ abstract enableMic(enable: boolean): void;
29
+ abstract enableCam(enable: boolean): void;
30
+ abstract get isCamEnabled(): boolean;
31
+ abstract get isMicEnabled(): boolean;
32
+ abstract tracks(): Tracks;
33
+ }
34
+ export class WavMediaManager extends MediaManager {
35
+ constructor(recorderChunkSize?: number | undefined, recorderSampleRate?: number | undefined);
36
+ initialize(): Promise<void>;
37
+ connect(): Promise<void>;
38
+ disconnect(): Promise<void>;
39
+ userStartedSpeaking(): Promise<unknown>;
40
+ bufferBotAudio(data: ArrayBuffer | Int16Array, id?: string): Int16Array;
41
+ getAllMics(): Promise<MediaDeviceInfo[]>;
42
+ getAllCams(): Promise<MediaDeviceInfo[]>;
43
+ getAllSpeakers(): Promise<MediaDeviceInfo[]>;
44
+ updateMic(micId: string): Promise<void>;
45
+ updateCam(camId: string): void;
46
+ updateSpeaker(speakerId: string): void;
47
+ get selectedMic(): MediaDeviceInfo | Record<string, never>;
48
+ get selectedCam(): MediaDeviceInfo | Record<string, never>;
49
+ get selectedSpeaker(): MediaDeviceInfo | Record<string, never>;
50
+ enableMic(enable: boolean): Promise<void>;
51
+ enableCam(enable: boolean): void;
52
+ get isCamEnabled(): boolean;
53
+ get isMicEnabled(): boolean;
54
+ tracks(): Tracks;
55
+ }
56
+ export class DailyMediaManager extends MediaManager {
57
+ constructor(enablePlayer?: boolean, enableRecording?: boolean, onTrackStartedCallback?: (event: DailyEventObjectTrack) => void, onTrackStoppedCallback?: (event: DailyEventObjectTrack) => void, recorderChunkSize?: number | undefined, recorderSampleRate?: number);
58
+ initialize(): Promise<void>;
59
+ connect(): Promise<void>;
60
+ disconnect(): Promise<void>;
61
+ userStartedSpeaking(): Promise<unknown>;
62
+ bufferBotAudio(data: ArrayBuffer | Int16Array, id?: string): Int16Array | undefined;
63
+ getAllMics(): Promise<MediaDeviceInfo[]>;
64
+ getAllCams(): Promise<MediaDeviceInfo[]>;
65
+ getAllSpeakers(): Promise<MediaDeviceInfo[]>;
66
+ updateMic(micId: string): void;
67
+ updateCam(camId: string): void;
68
+ updateSpeaker(speakerId: string): Promise<void>;
69
+ get selectedMic(): MediaDeviceInfo | Record<string, never>;
70
+ get selectedCam(): MediaDeviceInfo | Record<string, never>;
71
+ get selectedSpeaker(): MediaDeviceInfo | Record<string, never>;
72
+ enableMic(enable: boolean): Promise<void>;
73
+ enableCam(enable: boolean): void;
74
+ get isCamEnabled(): boolean;
75
+ get isMicEnabled(): boolean;
76
+ tracks(): Tracks;
77
+ protected handleTrackStarted(event: DailyEventObjectTrack): Promise<void>;
78
+ protected handleTrackStopped(event: DailyEventObjectTrack): void;
79
+ }
80
+ interface WebSocketOptions {
81
+ parseBlobToJson?: boolean;
82
+ }
83
+ /**
84
+ * Builds on top of Javascript Websockets
85
+ *
86
+ * This behaves like the Websocket library in every way, except if it fails to
87
+ * connect or if it gets disconnected, it will try to reconnect depending on
88
+ * the maximum number of reconnect attempts set. retry is not enabled for initial
89
+ * connection. When initial connection fails it is best to check yourself before
90
+ * you keep wreckin' yourself.
91
+ *
92
+ * It is API compatible, so when you have:
93
+ * ws = new WebSocket('ws://....');
94
+ * you can replace with:
95
+ * ws = new ReconnectingWebSocket('ws://....');
96
+ *
97
+ * While it is API compatible with the NodeJS ws library, we provide the
98
+ * following additional properties and events on the ReconnectingWebSocket.
99
+ *
100
+ * Events:
101
+ *
102
+ * connection-timeout
103
+ * - Emitted when the web socket connection times out.
104
+ *
105
+ * reconnecting
106
+ * - Emitted after a manual close of the web socket is done and before retrying
107
+ * the connection.
108
+ *
109
+ * reconnect-failed
110
+ * - Emitted when the number of connection attempts exceeds the set number of
111
+ * reconnection attempts.
112
+ *
113
+ * keep-alive
114
+ * - Emitted when the set keep alive interval elapses. This event may be used
115
+ * to have ping pong keep-alive mechanism for web socket health.
116
+ *
117
+ * Properties:
118
+ *
119
+ * keepAliveTimeout
120
+ * - The timeout for keep-alive. Default: 15000
121
+ *
122
+ * keepAliveInterval
123
+ * - The interval at which to emit keep-alive event. Default: 5000
124
+ *
125
+ * shouldRetryFn
126
+ * - A callback function which should return boolean to determine if a web
127
+ * socket reconnection attempt should be made. When not set, connection is
128
+ * always retried.
129
+ *
130
+ * connectionTimeout
131
+ * - The timeout interval for considering whether the connection timed out.
132
+ * Default: 20000 ms
133
+ *
134
+ * maxReconnectAttempts
135
+ * - The maximum number of attempts to be made for reconnection. Default: 2
136
+ *
137
+ * reconnectInterval
138
+ * - The interval to wait before attempting a reconnection. Default: 1000 ms
139
+ */
140
+ declare class ReconnectingWebSocket extends EventEmitter {
141
+ /** The connection is not yet open. */
142
+ static readonly CONNECTING: 0;
143
+ /** The connection is open and ready to communicate. */
144
+ static readonly OPEN: 1;
145
+ /** The connection is in the process of closing. */
146
+ static readonly CLOSING: 2;
147
+ /** The connection is closed. */
148
+ static readonly CLOSED: 3;
149
+ _url: string;
150
+ _protocols: string | string[] | undefined;
151
+ constructor(address: string, protocols?: string | string[], options?: WebSocketOptions);
152
+ connect(): Promise<unknown>;
153
+ send(data: any): Promise<void>;
154
+ close(): Promise<void>;
155
+ get readyState(): number;
156
+ get url(): string;
157
+ get keepAliveTimeout(): number;
158
+ set keepAliveTimeout(keepAliveTimeout: number);
159
+ get keepAliveInterval(): number;
160
+ set keepAliveInterval(keepAliveInterval: number);
161
+ set shouldRetryFn(cb: () => boolean);
162
+ get connectionTimeout(): number;
163
+ set connectionTimeout(timeout: number);
164
+ get maxReconnectAttempts(): number;
165
+ set maxReconnectAttempts(attempts: number);
166
+ get reconnectInterval(): number;
167
+ set reconnectInterval(interval: number);
168
+ _handleMessage(event: MessageEvent): Promise<void>;
169
+ }
170
+ /**
171
+ * @generated from protobuf message pipecat.TextFrame
172
+ */
173
+ interface TextFrame {
174
+ /**
175
+ * @generated from protobuf field: uint64 id = 1
176
+ */
177
+ id: bigint;
178
+ /**
179
+ * @generated from protobuf field: string name = 2
180
+ */
181
+ name: string;
182
+ /**
183
+ * @generated from protobuf field: string text = 3
184
+ */
185
+ text: string;
186
+ }
187
+ /**
188
+ * @generated from protobuf message pipecat.AudioRawFrame
189
+ */
190
+ interface AudioRawFrame {
191
+ /**
192
+ * @generated from protobuf field: uint64 id = 1
193
+ */
194
+ id: bigint;
195
+ /**
196
+ * @generated from protobuf field: string name = 2
197
+ */
198
+ name: string;
199
+ /**
200
+ * @generated from protobuf field: bytes audio = 3
201
+ */
202
+ audio: Uint8Array;
203
+ /**
204
+ * @generated from protobuf field: uint32 sample_rate = 4
205
+ */
206
+ sampleRate: number;
207
+ /**
208
+ * @generated from protobuf field: uint32 num_channels = 5
209
+ */
210
+ numChannels: number;
211
+ /**
212
+ * @generated from protobuf field: optional uint64 pts = 6
213
+ */
214
+ pts?: bigint;
215
+ }
216
+ /**
217
+ * @generated from protobuf message pipecat.TranscriptionFrame
218
+ */
219
+ interface TranscriptionFrame {
220
+ /**
221
+ * @generated from protobuf field: uint64 id = 1
222
+ */
223
+ id: bigint;
224
+ /**
225
+ * @generated from protobuf field: string name = 2
226
+ */
227
+ name: string;
228
+ /**
229
+ * @generated from protobuf field: string text = 3
230
+ */
231
+ text: string;
232
+ /**
233
+ * @generated from protobuf field: string user_id = 4
234
+ */
235
+ userId: string;
236
+ /**
237
+ * @generated from protobuf field: string timestamp = 5
238
+ */
239
+ timestamp: string;
240
+ }
241
+ /**
242
+ * @generated from protobuf message pipecat.MessageFrame
243
+ */
244
+ interface MessageFrame {
245
+ /**
246
+ * @generated from protobuf field: string data = 1
247
+ */
248
+ data: string;
249
+ }
250
+ /**
251
+ * @generated from protobuf message pipecat.Frame
252
+ */
253
+ interface Frame {
254
+ /**
255
+ * @generated from protobuf oneof: frame
256
+ */
257
+ frame: {
258
+ oneofKind: "text";
259
+ /**
260
+ * @generated from protobuf field: pipecat.TextFrame text = 1
261
+ */
262
+ text: TextFrame;
263
+ } | {
264
+ oneofKind: "audio";
265
+ /**
266
+ * @generated from protobuf field: pipecat.AudioRawFrame audio = 2
267
+ */
268
+ audio: AudioRawFrame;
269
+ } | {
270
+ oneofKind: "transcription";
271
+ /**
272
+ * @generated from protobuf field: pipecat.TranscriptionFrame transcription = 3
273
+ */
274
+ transcription: TranscriptionFrame;
275
+ } | {
276
+ oneofKind: "message";
277
+ /**
278
+ * @generated from protobuf field: pipecat.MessageFrame message = 4
279
+ */
280
+ message: MessageFrame;
281
+ } | {
282
+ oneofKind: undefined;
283
+ };
284
+ }
285
+ declare class TextFrame$Type extends MessageType<TextFrame> {
286
+ constructor();
287
+ create(value?: PartialMessage<TextFrame>): TextFrame;
288
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TextFrame): TextFrame;
289
+ internalBinaryWrite(message: TextFrame, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
290
+ }
291
+ /**
292
+ * @generated MessageType for protobuf message pipecat.TextFrame
293
+ */
294
+ declare const TextFrame: TextFrame$Type;
295
+ declare class AudioRawFrame$Type extends MessageType<AudioRawFrame> {
296
+ constructor();
297
+ create(value?: PartialMessage<AudioRawFrame>): AudioRawFrame;
298
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AudioRawFrame): AudioRawFrame;
299
+ internalBinaryWrite(message: AudioRawFrame, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
300
+ }
301
+ /**
302
+ * @generated MessageType for protobuf message pipecat.AudioRawFrame
303
+ */
304
+ declare const AudioRawFrame: AudioRawFrame$Type;
305
+ declare class TranscriptionFrame$Type extends MessageType<TranscriptionFrame> {
306
+ constructor();
307
+ create(value?: PartialMessage<TranscriptionFrame>): TranscriptionFrame;
308
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TranscriptionFrame): TranscriptionFrame;
309
+ internalBinaryWrite(message: TranscriptionFrame, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
310
+ }
311
+ /**
312
+ * @generated MessageType for protobuf message pipecat.TranscriptionFrame
313
+ */
314
+ declare const TranscriptionFrame: TranscriptionFrame$Type;
315
+ declare class MessageFrame$Type extends MessageType<MessageFrame> {
316
+ constructor();
317
+ create(value?: PartialMessage<MessageFrame>): MessageFrame;
318
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MessageFrame): MessageFrame;
319
+ internalBinaryWrite(message: MessageFrame, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
320
+ }
321
+ /**
322
+ * @generated MessageType for protobuf message pipecat.MessageFrame
323
+ */
324
+ declare const MessageFrame: MessageFrame$Type;
325
+ declare class Frame$Type extends MessageType<Frame> {
326
+ constructor();
327
+ create(value?: PartialMessage<Frame>): Frame;
328
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Frame): Frame;
329
+ internalBinaryWrite(message: Frame, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
330
+ }
331
+ /**
332
+ * @generated MessageType for protobuf message pipecat.Frame
333
+ */
334
+ declare const Frame: Frame$Type;
335
+ export class WebSocketTransport extends Transport {
336
+ constructor();
337
+ initialize(options: RTVIClientOptions, messageHandler: (ev: RTVIMessage) => void): void;
338
+ initDevices(): Promise<void>;
339
+ connect(authBundle: unknown, abortController: AbortController): Promise<void>;
340
+ disconnect(): Promise<void>;
341
+ getAllMics(): Promise<MediaDeviceInfo[]>;
342
+ getAllCams(): Promise<MediaDeviceInfo[]>;
343
+ getAllSpeakers(): Promise<MediaDeviceInfo[]>;
344
+ updateMic(micId: string): Promise<void>;
345
+ updateCam(camId: string): void;
346
+ updateSpeaker(speakerId: string): void;
347
+ get selectedMic(): MediaDeviceInfo | Record<string, never>;
348
+ get selectedSpeaker(): MediaDeviceInfo | Record<string, never>;
349
+ enableMic(enable: boolean): void;
350
+ get isMicEnabled(): boolean;
351
+ get state(): TransportState;
352
+ set state(state: TransportState);
353
+ get expiry(): number | undefined;
354
+ tracks(): Tracks;
355
+ initializeWebsocket(authBundle: any): ReconnectingWebSocket;
356
+ sendReadyMessage(): void;
357
+ handleUserAudioStream(data: ArrayBuffer): void;
358
+ sendMessage(message: RTVIMessage): void;
359
+ _sendAudioInput(data: ArrayBuffer): Promise<void>;
360
+ _sendMsg(msg: Frame): Promise<void>;
361
+ connectionError(errorMsg: string): void;
362
+ enableScreenShare(enable: boolean): void;
363
+ get isSharingScreen(): boolean;
364
+ enableCam(enable: boolean): void;
365
+ get isCamEnabled(): boolean;
366
+ get selectedCam(): MediaDeviceInfo | Record<string, never>;
367
+ }
368
+
369
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["transports/lib/wavtools/lib/wav_packer.js","transports/lib/wavtools/lib/analysis/constants.js","transports/lib/wavtools/lib/analysis/audio_analysis.js","transports/lib/wavtools/lib/worklets/stream_processor.js","transports/lib/wavtools/lib/wav_stream_player.js","transports/lib/wavtools/lib/worklets/audio_processor.js","transports/lib/wavtools/lib/wav_recorder.js","transports/lib/wavtools/lib/mediastream_recorder.js","transports/lib/wavtools/index.js","transports/lib/media-mgmt/mediaManager.ts","transports/lib/media-mgmt/dailyMediaManager.ts","transports/lib/websocket-utils/reconnectingWebSocket.ts","transports/websocket-transport/src/src/generated/proto/frames.ts","transports/websocket-transport/src/src/webSocketTransport.ts","transports/websocket-transport/src/src/index.ts","transports/websocket-transport/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"// export * from \"./realTimeWebSocketTransport\";\n// export * from \"../../../lib/wavtools/dist/index.d.ts\";\n\nimport { WavMediaManager } from \"../../../lib/media-mgmt/mediaManager\";\nimport { DailyMediaManager } from \"../../../lib/media-mgmt/dailyMediaManager\";\nimport { WebSocketTransport } from \"./webSocketTransport.ts\";\n\nexport { WavMediaManager, DailyMediaManager, WebSocketTransport };\n"],"names":[],"version":3,"file":"index.d.ts.map"}