@mastra/voice-google-gemini-live 0.0.0-add-libsql-changeset-20250910154739
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/CHANGELOG.md +159 -0
- package/LICENSE.md +15 -0
- package/README.md +459 -0
- package/dist/index.cjs +2788 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +436 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2786 -0
- package/dist/index.js.map +1 -0
- package/dist/managers/AudioStreamManager.d.ts +207 -0
- package/dist/managers/AudioStreamManager.d.ts.map +1 -0
- package/dist/managers/AuthManager.d.ts +57 -0
- package/dist/managers/AuthManager.d.ts.map +1 -0
- package/dist/managers/ConnectionManager.d.ts +57 -0
- package/dist/managers/ConnectionManager.d.ts.map +1 -0
- package/dist/managers/ContextManager.d.ts +73 -0
- package/dist/managers/ContextManager.d.ts.map +1 -0
- package/dist/managers/EventManager.d.ts +64 -0
- package/dist/managers/EventManager.d.ts.map +1 -0
- package/dist/managers/SessionManager.d.ts +84 -0
- package/dist/managers/SessionManager.d.ts.map +1 -0
- package/dist/managers/index.d.ts +12 -0
- package/dist/managers/index.d.ts.map +1 -0
- package/dist/types.d.ts +319 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/errors.d.ts +17 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { PassThrough } from 'stream';
|
|
2
|
+
import type { AudioConfig } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Default audio configuration for Gemini Live API
|
|
5
|
+
*/
|
|
6
|
+
export declare const DEFAULT_AUDIO_CONFIG: AudioConfig;
|
|
7
|
+
/**
|
|
8
|
+
* Manages audio streams for the Gemini Live Voice API
|
|
9
|
+
* Handles speaker stream lifecycle, cleanup, and audio processing
|
|
10
|
+
*/
|
|
11
|
+
export declare class AudioStreamManager {
|
|
12
|
+
private speakerStreams;
|
|
13
|
+
private currentResponseId?;
|
|
14
|
+
private readonly MAX_CONCURRENT_STREAMS;
|
|
15
|
+
private readonly STREAM_TIMEOUT_MS;
|
|
16
|
+
private readonly debug;
|
|
17
|
+
private readonly audioConfig;
|
|
18
|
+
private readonly maxChunkSize;
|
|
19
|
+
private readonly minSendInterval;
|
|
20
|
+
private lastSendTime;
|
|
21
|
+
private pendingChunks;
|
|
22
|
+
private pendingTimer?;
|
|
23
|
+
private sendToGemini?;
|
|
24
|
+
private readonly MAX_BUFFER_SIZE;
|
|
25
|
+
private readonly MAX_AUDIO_DURATION;
|
|
26
|
+
constructor(audioConfig: AudioConfig, debug?: boolean);
|
|
27
|
+
/**
|
|
28
|
+
* Provide a sender callback that will be used to deliver messages to Gemini
|
|
29
|
+
*/
|
|
30
|
+
setSender(sender: (type: 'realtime_input' | 'client_content', message: Record<string, unknown>) => void): void;
|
|
31
|
+
/**
|
|
32
|
+
* Get the default audio configuration
|
|
33
|
+
*/
|
|
34
|
+
static getDefaultAudioConfig(): AudioConfig;
|
|
35
|
+
/**
|
|
36
|
+
* Create a merged audio configuration with defaults
|
|
37
|
+
*/
|
|
38
|
+
static createAudioConfig(customConfig?: Partial<AudioConfig>): AudioConfig;
|
|
39
|
+
/**
|
|
40
|
+
* Get the current response ID for the next audio chunk
|
|
41
|
+
*/
|
|
42
|
+
getCurrentResponseId(): string | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Set the current response ID for the next audio chunk
|
|
45
|
+
*/
|
|
46
|
+
setCurrentResponseId(responseId: string): void;
|
|
47
|
+
/**
|
|
48
|
+
* Get the current speaker stream
|
|
49
|
+
*/
|
|
50
|
+
getCurrentSpeakerStream(): NodeJS.ReadableStream | null;
|
|
51
|
+
/**
|
|
52
|
+
* Add a new speaker stream for a response
|
|
53
|
+
*/
|
|
54
|
+
addSpeakerStream(responseId: string, stream: PassThrough): void;
|
|
55
|
+
/**
|
|
56
|
+
* Remove a specific speaker stream
|
|
57
|
+
*/
|
|
58
|
+
removeSpeakerStream(responseId: string): void;
|
|
59
|
+
/**
|
|
60
|
+
* Clean up all speaker streams
|
|
61
|
+
*/
|
|
62
|
+
cleanupSpeakerStreams(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Clean up old/stale streams to prevent memory leaks
|
|
65
|
+
*/
|
|
66
|
+
cleanupStaleStreams(): void;
|
|
67
|
+
/**
|
|
68
|
+
* Enforce stream limits to prevent memory exhaustion
|
|
69
|
+
*/
|
|
70
|
+
enforceStreamLimits(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Get information about current streams for debugging
|
|
73
|
+
*/
|
|
74
|
+
getStreamInfo(): {
|
|
75
|
+
totalStreams: number;
|
|
76
|
+
currentResponseId?: string;
|
|
77
|
+
streamDetails: Array<{
|
|
78
|
+
responseId: string;
|
|
79
|
+
created: number;
|
|
80
|
+
destroyed: boolean;
|
|
81
|
+
}>;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Convert Int16Array audio data to base64 string for WebSocket transmission
|
|
85
|
+
*/
|
|
86
|
+
int16ArrayToBase64(int16Array: Int16Array): string;
|
|
87
|
+
/**
|
|
88
|
+
* Convert base64 string to Int16Array audio data
|
|
89
|
+
*/
|
|
90
|
+
base64ToInt16Array(base64Audio: string): Int16Array;
|
|
91
|
+
/**
|
|
92
|
+
* Validate and convert audio data to the required format for Gemini Live API
|
|
93
|
+
* Gemini Live expects 16kHz PCM16 for input
|
|
94
|
+
*/
|
|
95
|
+
validateAndConvertAudioInput(audioData: Buffer | Int16Array): Int16Array;
|
|
96
|
+
/**
|
|
97
|
+
* Process audio chunk for streaming - handles format validation and conversion
|
|
98
|
+
*/
|
|
99
|
+
processAudioChunk(chunk: Buffer | Uint8Array | Int16Array): string;
|
|
100
|
+
/**
|
|
101
|
+
* Validate audio format and sample rate for Gemini Live API requirements
|
|
102
|
+
*/
|
|
103
|
+
validateAudioFormat(sampleRate?: number, channels?: number): void;
|
|
104
|
+
/**
|
|
105
|
+
* Create an audio message for the Gemini Live API
|
|
106
|
+
*/
|
|
107
|
+
createAudioMessage(audioData: string, messageType?: 'input' | 'realtime'): Record<string, unknown>;
|
|
108
|
+
/**
|
|
109
|
+
* Get a speaker stream by response ID
|
|
110
|
+
*/
|
|
111
|
+
getSpeakerStream(responseId: string): PassThrough | undefined;
|
|
112
|
+
/**
|
|
113
|
+
* Create a new speaker stream for a response ID
|
|
114
|
+
*/
|
|
115
|
+
createSpeakerStream(responseId: string): PassThrough;
|
|
116
|
+
/**
|
|
117
|
+
* Get the number of active streams
|
|
118
|
+
*/
|
|
119
|
+
getActiveStreamCount(): number;
|
|
120
|
+
/**
|
|
121
|
+
* Check if a specific response ID has an active stream
|
|
122
|
+
*/
|
|
123
|
+
hasStream(responseId: string): boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Get all active response IDs
|
|
126
|
+
*/
|
|
127
|
+
getActiveResponseIds(): string[];
|
|
128
|
+
/**
|
|
129
|
+
* Reset the manager state (useful for testing or reconnection)
|
|
130
|
+
*/
|
|
131
|
+
reset(): void;
|
|
132
|
+
/**
|
|
133
|
+
* Validate audio chunk size and format
|
|
134
|
+
*/
|
|
135
|
+
validateAudioChunk(chunk: Buffer): void;
|
|
136
|
+
/**
|
|
137
|
+
* Send audio chunk with throttling and validation
|
|
138
|
+
*/
|
|
139
|
+
sendAudioChunk(chunk: Buffer): void;
|
|
140
|
+
/**
|
|
141
|
+
* Handle audio stream processing
|
|
142
|
+
*/
|
|
143
|
+
handleAudioStream(stream: NodeJS.ReadableStream): Promise<void>;
|
|
144
|
+
/**
|
|
145
|
+
* Split large audio chunks into smaller ones
|
|
146
|
+
*/
|
|
147
|
+
private splitAudioChunk;
|
|
148
|
+
/**
|
|
149
|
+
* Calculate audio duration from buffer length
|
|
150
|
+
*/
|
|
151
|
+
calculateAudioDuration(bufferLength: number, sampleRate?: number): number;
|
|
152
|
+
/**
|
|
153
|
+
* Validate audio buffer size and duration
|
|
154
|
+
*/
|
|
155
|
+
validateAudioBuffer(buffer: Buffer): void;
|
|
156
|
+
/**
|
|
157
|
+
* Process audio buffer for transcription
|
|
158
|
+
* Combines chunks, validates format, and converts to base64
|
|
159
|
+
*/
|
|
160
|
+
processAudioBufferForTranscription(audioBuffer: Buffer): {
|
|
161
|
+
base64Audio: string;
|
|
162
|
+
duration: number;
|
|
163
|
+
size: number;
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* Process audio chunks for transcription with buffer management
|
|
167
|
+
* Handles chunk collection, size validation, and buffer management
|
|
168
|
+
*/
|
|
169
|
+
processAudioChunksForTranscription(chunks: Buffer[], totalBufferSize: number): {
|
|
170
|
+
audioBuffer: Buffer;
|
|
171
|
+
base64Audio: string;
|
|
172
|
+
duration: number;
|
|
173
|
+
size: number;
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* Validate audio chunks and calculate total size
|
|
177
|
+
*/
|
|
178
|
+
validateAudioChunks(chunks: Buffer[]): {
|
|
179
|
+
totalSize: number;
|
|
180
|
+
isValid: boolean;
|
|
181
|
+
error?: string;
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* Get audio buffer limits and configuration
|
|
185
|
+
*/
|
|
186
|
+
getAudioBufferLimits(): {
|
|
187
|
+
maxBufferSize: number;
|
|
188
|
+
maxAudioDuration: number;
|
|
189
|
+
maxChunkSize: number;
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* Get audio configuration
|
|
193
|
+
*/
|
|
194
|
+
getAudioConfig(): AudioConfig;
|
|
195
|
+
/**
|
|
196
|
+
* Log message if debug is enabled
|
|
197
|
+
*/
|
|
198
|
+
private log;
|
|
199
|
+
/**
|
|
200
|
+
* Handle complete audio transcription workflow
|
|
201
|
+
* Manages stream processing, chunk collection, and transcription
|
|
202
|
+
*/
|
|
203
|
+
handleAudioTranscription(audioStream: NodeJS.ReadableStream, sendAndAwaitTranscript: (base64Audio: string) => Promise<string>, onError: (error: Error) => void, timeoutMs?: number): Promise<string>;
|
|
204
|
+
private processChunk;
|
|
205
|
+
private processPendingChunks;
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=AudioStreamManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AudioStreamManager.d.ts","sourceRoot":"","sources":["../../src/managers/AudioStreamManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export interface AuthConfig {
|
|
2
|
+
apiKey?: string;
|
|
3
|
+
vertexAI?: boolean;
|
|
4
|
+
project?: string;
|
|
5
|
+
debug: boolean;
|
|
6
|
+
serviceAccountKeyFile?: string;
|
|
7
|
+
serviceAccountEmail?: string;
|
|
8
|
+
tokenExpirationTime?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare class AuthManager {
|
|
11
|
+
private authClient?;
|
|
12
|
+
private accessToken?;
|
|
13
|
+
private tokenExpirationTime?;
|
|
14
|
+
private readonly config;
|
|
15
|
+
constructor(config: AuthConfig);
|
|
16
|
+
/**
|
|
17
|
+
* Initialize authentication based on configuration
|
|
18
|
+
*/
|
|
19
|
+
initialize(): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Initialize Vertex AI authentication
|
|
22
|
+
*/
|
|
23
|
+
private initializeVertexAI;
|
|
24
|
+
/**
|
|
25
|
+
* Get access token for Vertex AI
|
|
26
|
+
*/
|
|
27
|
+
getAccessToken(): Promise<string>;
|
|
28
|
+
/**
|
|
29
|
+
* Get API key if using API key authentication
|
|
30
|
+
*/
|
|
31
|
+
getApiKey(): string | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Check if using Vertex AI authentication
|
|
34
|
+
*/
|
|
35
|
+
isUsingVertexAI(): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Check if authentication is configured
|
|
38
|
+
*/
|
|
39
|
+
isConfigured(): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Check if access token is valid
|
|
42
|
+
*/
|
|
43
|
+
hasValidToken(): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Clear cached authentication data
|
|
46
|
+
*/
|
|
47
|
+
clearCache(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Get authentication configuration
|
|
50
|
+
*/
|
|
51
|
+
getConfig(): AuthConfig;
|
|
52
|
+
/**
|
|
53
|
+
* Log message if debug is enabled
|
|
54
|
+
*/
|
|
55
|
+
private log;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=AuthManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthManager.d.ts","sourceRoot":"","sources":["../../src/managers/AuthManager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAExB,MAAM,EAAE,UAAU;IAK9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC;;OAEG;YACW,kBAAkB;IAmChC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAqCvC;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,SAAS;IAO/B;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,aAAa,IAAI,OAAO;IAKxB;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;OAEG;IACH,SAAS,IAAI,UAAU;IAIvB;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { WebSocket } from 'ws';
|
|
2
|
+
export interface ConnectionConfig {
|
|
3
|
+
debug: boolean;
|
|
4
|
+
timeoutMs?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare class ConnectionManager {
|
|
7
|
+
private ws?;
|
|
8
|
+
private eventEmitter;
|
|
9
|
+
private readonly debug;
|
|
10
|
+
private readonly timeoutMs;
|
|
11
|
+
constructor(config: ConnectionConfig);
|
|
12
|
+
/**
|
|
13
|
+
* Set the WebSocket instance
|
|
14
|
+
*/
|
|
15
|
+
setWebSocket(ws: WebSocket): void;
|
|
16
|
+
/**
|
|
17
|
+
* Get the current WebSocket instance
|
|
18
|
+
*/
|
|
19
|
+
getWebSocket(): WebSocket | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Check if WebSocket is connected
|
|
22
|
+
*/
|
|
23
|
+
isConnected(): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Check if WebSocket is connecting
|
|
26
|
+
*/
|
|
27
|
+
isConnecting(): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Check if WebSocket is closed
|
|
30
|
+
*/
|
|
31
|
+
isClosed(): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Wait for WebSocket to open
|
|
34
|
+
*/
|
|
35
|
+
waitForOpen(): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Send data through WebSocket
|
|
38
|
+
*/
|
|
39
|
+
send(data: string | Buffer): void;
|
|
40
|
+
/**
|
|
41
|
+
* Close the WebSocket connection
|
|
42
|
+
*/
|
|
43
|
+
close(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Get connection state
|
|
46
|
+
*/
|
|
47
|
+
getConnectionState(): 'disconnected' | 'connecting' | 'connected' | 'closed';
|
|
48
|
+
/**
|
|
49
|
+
* Validate WebSocket state for operations
|
|
50
|
+
*/
|
|
51
|
+
validateWebSocketState(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Log message if debug is enabled
|
|
54
|
+
*/
|
|
55
|
+
private log;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=ConnectionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectionManager.d.ts","sourceRoot":"","sources":["../../src/managers/ConnectionManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAI/B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,MAAM,EAAE,gBAAgB;IAMpC;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAIjC;;OAEG;IACH,YAAY,IAAI,SAAS,GAAG,SAAS;IAIrC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAgDlC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAYjC;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,kBAAkB,IAAI,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ;IAe5E;;OAEG;IACH,sBAAsB,IAAI,IAAI;IAU9B;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export interface ContextEntry {
|
|
2
|
+
role: 'user' | 'assistant';
|
|
3
|
+
content: string;
|
|
4
|
+
timestamp: number;
|
|
5
|
+
}
|
|
6
|
+
export interface ContextConfig {
|
|
7
|
+
maxEntries?: number;
|
|
8
|
+
maxContentLength?: number;
|
|
9
|
+
compressionThreshold?: number;
|
|
10
|
+
compressionEnabled?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare class ContextManager {
|
|
13
|
+
private contextHistory;
|
|
14
|
+
private readonly maxEntries;
|
|
15
|
+
private readonly maxContentLength;
|
|
16
|
+
private readonly compressionThreshold;
|
|
17
|
+
private compressionEnabled;
|
|
18
|
+
constructor(config?: ContextConfig);
|
|
19
|
+
/**
|
|
20
|
+
* Add entry to context history
|
|
21
|
+
*/
|
|
22
|
+
addEntry(role: 'user' | 'assistant', content: string): void;
|
|
23
|
+
/**
|
|
24
|
+
* Get context history
|
|
25
|
+
*/
|
|
26
|
+
getContextHistory(): ContextEntry[];
|
|
27
|
+
/**
|
|
28
|
+
* Get context history as array of role/content pairs
|
|
29
|
+
*/
|
|
30
|
+
getContextArray(): Array<{
|
|
31
|
+
role: string;
|
|
32
|
+
content: string;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Clear context history
|
|
36
|
+
*/
|
|
37
|
+
clearContext(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Get context size
|
|
40
|
+
*/
|
|
41
|
+
getContextSize(): number;
|
|
42
|
+
/**
|
|
43
|
+
* Compress context when it exceeds threshold
|
|
44
|
+
*/
|
|
45
|
+
private compressContext;
|
|
46
|
+
/**
|
|
47
|
+
* Enable or disable compression at runtime
|
|
48
|
+
*/
|
|
49
|
+
setCompressionEnabled(enabled: boolean): void;
|
|
50
|
+
/**
|
|
51
|
+
* Get context summary
|
|
52
|
+
*/
|
|
53
|
+
getContextSummary(): {
|
|
54
|
+
totalEntries: number;
|
|
55
|
+
userEntries: number;
|
|
56
|
+
assistantEntries: number;
|
|
57
|
+
oldestTimestamp: number | null;
|
|
58
|
+
newestTimestamp: number | null;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Search context for specific content
|
|
62
|
+
*/
|
|
63
|
+
searchContext(query: string, role?: 'user' | 'assistant'): ContextEntry[];
|
|
64
|
+
/**
|
|
65
|
+
* Get recent context entries
|
|
66
|
+
*/
|
|
67
|
+
getRecentEntries(count: number): ContextEntry[];
|
|
68
|
+
/**
|
|
69
|
+
* Get context entries by role
|
|
70
|
+
*/
|
|
71
|
+
getEntriesByRole(role: 'user' | 'assistant'): ContextEntry[];
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=ContextManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextManager.d.ts","sourceRoot":"","sources":["../../src/managers/ContextManager.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,kBAAkB,CAAU;gBAExB,MAAM,GAAE,aAAkB;IAOtC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAwB3D;;OAEG;IACH,iBAAiB,IAAI,YAAY,EAAE;IAInC;;OAEG;IACH,eAAe,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAO3D;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI7C;;OAEG;IACH,iBAAiB,IAAI;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC;IAwBD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,EAAE;IAWzE;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE;IAI/C;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,EAAE;CAG7D"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
export type EventMap = Record<string, unknown>;
|
|
3
|
+
export interface EventConfig {
|
|
4
|
+
debug: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare class EventManager<TEvents extends EventMap = Record<string, unknown>> {
|
|
7
|
+
private eventEmitter;
|
|
8
|
+
private readonly debug;
|
|
9
|
+
private eventCounts;
|
|
10
|
+
constructor(config: EventConfig);
|
|
11
|
+
/**
|
|
12
|
+
* Emit an event with data
|
|
13
|
+
*/
|
|
14
|
+
emit<K extends Extract<keyof TEvents, string>>(event: K, data: TEvents[K]): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Add event listener
|
|
17
|
+
*/
|
|
18
|
+
on<E extends Extract<keyof TEvents, string>>(event: E, callback: (data: TEvents[E]) => void): void;
|
|
19
|
+
/**
|
|
20
|
+
* Remove event listener
|
|
21
|
+
*/
|
|
22
|
+
off<E extends Extract<keyof TEvents, string>>(event: E, callback: (data: TEvents[E]) => void): void;
|
|
23
|
+
/**
|
|
24
|
+
* Add one-time event listener
|
|
25
|
+
*/
|
|
26
|
+
once<E extends Extract<keyof TEvents, string>>(event: E, callback: (data: TEvents[E]) => void): void;
|
|
27
|
+
/**
|
|
28
|
+
* Remove all listeners for an event
|
|
29
|
+
*/
|
|
30
|
+
removeAllListeners(event?: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* Get event listener count
|
|
33
|
+
*/
|
|
34
|
+
getListenerCount(event: string): number;
|
|
35
|
+
/**
|
|
36
|
+
* Get event listener info
|
|
37
|
+
*/
|
|
38
|
+
getEventListenerInfo(): Record<string, number>;
|
|
39
|
+
/**
|
|
40
|
+
* Get event emission counts
|
|
41
|
+
*/
|
|
42
|
+
getEventCounts(): Record<string, number>;
|
|
43
|
+
/**
|
|
44
|
+
* Reset event counts
|
|
45
|
+
*/
|
|
46
|
+
resetEventCounts(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Clean up event listeners
|
|
49
|
+
*/
|
|
50
|
+
cleanup(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Get the underlying EventEmitter
|
|
53
|
+
*/
|
|
54
|
+
getEventEmitter(): EventEmitter;
|
|
55
|
+
/**
|
|
56
|
+
* Increment event count for tracking
|
|
57
|
+
*/
|
|
58
|
+
private incrementEventCount;
|
|
59
|
+
/**
|
|
60
|
+
* Log message if debug is enabled
|
|
61
|
+
*/
|
|
62
|
+
private log;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=EventManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventManager.d.ts","sourceRoot":"","sources":["../../src/managers/EventManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,YAAY,CAAC,OAAO,SAAS,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1E,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,WAAW,CAA8B;gBAErC,MAAM,EAAE,WAAW;IAK/B;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO;IAWnF;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAQlG;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAQnG;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAQpG;;OAEG;IACH,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAQxC;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIvC;;OAEG;IACH,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAY9C;;OAEG;IACH,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIxC;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;OAEG;IACH,OAAO,IAAI,IAAI;IASf;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
export interface SessionConfig {
|
|
3
|
+
debug: boolean;
|
|
4
|
+
timeoutMs?: number;
|
|
5
|
+
maxSessionDuration?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface SessionInfo {
|
|
8
|
+
id?: string;
|
|
9
|
+
handle?: string;
|
|
10
|
+
startTime?: Date;
|
|
11
|
+
duration?: number;
|
|
12
|
+
state: string;
|
|
13
|
+
config?: any;
|
|
14
|
+
contextSize: number;
|
|
15
|
+
}
|
|
16
|
+
export declare class SessionManager {
|
|
17
|
+
private eventEmitter;
|
|
18
|
+
private readonly debug;
|
|
19
|
+
private readonly timeoutMs;
|
|
20
|
+
private readonly maxSessionDuration;
|
|
21
|
+
private sessionId?;
|
|
22
|
+
private sessionHandle?;
|
|
23
|
+
private sessionStartTime?;
|
|
24
|
+
private isResuming;
|
|
25
|
+
private sessionDurationTimeout?;
|
|
26
|
+
constructor(config: SessionConfig);
|
|
27
|
+
/**
|
|
28
|
+
* Set session ID
|
|
29
|
+
*/
|
|
30
|
+
setSessionId(id: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* Get session ID
|
|
33
|
+
*/
|
|
34
|
+
getSessionId(): string | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Set session handle
|
|
37
|
+
*/
|
|
38
|
+
setSessionHandle(handle: string): void;
|
|
39
|
+
/**
|
|
40
|
+
* Get session handle
|
|
41
|
+
*/
|
|
42
|
+
getSessionHandle(): string | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Start session timing
|
|
45
|
+
*/
|
|
46
|
+
startSession(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Check if session is resuming
|
|
49
|
+
*/
|
|
50
|
+
isSessionResuming(): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Set resuming state
|
|
53
|
+
*/
|
|
54
|
+
setResuming(resuming: boolean): void;
|
|
55
|
+
/**
|
|
56
|
+
* Wait for session to be created and ready
|
|
57
|
+
*/
|
|
58
|
+
waitForSessionCreated(): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Start session duration monitoring
|
|
61
|
+
*/
|
|
62
|
+
private startSessionDurationMonitor;
|
|
63
|
+
/**
|
|
64
|
+
* Get session information
|
|
65
|
+
*/
|
|
66
|
+
getSessionInfo(): SessionInfo;
|
|
67
|
+
/**
|
|
68
|
+
* Get current session state
|
|
69
|
+
*/
|
|
70
|
+
private getSessionState;
|
|
71
|
+
/**
|
|
72
|
+
* Reset session state
|
|
73
|
+
*/
|
|
74
|
+
reset(): void;
|
|
75
|
+
/**
|
|
76
|
+
* Get event emitter for session events
|
|
77
|
+
*/
|
|
78
|
+
getEventEmitter(): EventEmitter;
|
|
79
|
+
/**
|
|
80
|
+
* Log message if debug is enabled
|
|
81
|
+
*/
|
|
82
|
+
private log;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=SessionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../src/managers/SessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAG5C,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAO;IAChC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,sBAAsB,CAAC,CAAiB;gBAEpC,MAAM,EAAE,aAAa;IAOjC;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI9B;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAItC;;OAEG;IACH,YAAY,IAAI,IAAI;IAKpB;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAIpC;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkD5C;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAanC;;OAEG;IACH,cAAc,IAAI,WAAW;IAe7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,KAAK,IAAI,IAAI;IAYb;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { AudioStreamManager } from './AudioStreamManager';
|
|
2
|
+
export { ConnectionManager } from './ConnectionManager';
|
|
3
|
+
export { SessionManager } from './SessionManager';
|
|
4
|
+
export { ContextManager } from './ContextManager';
|
|
5
|
+
export { AuthManager } from './AuthManager';
|
|
6
|
+
export { EventManager } from './EventManager';
|
|
7
|
+
export type { ConnectionConfig } from './ConnectionManager';
|
|
8
|
+
export type { SessionConfig, SessionInfo } from './SessionManager';
|
|
9
|
+
export type { ContextConfig, ContextEntry } from './ContextManager';
|
|
10
|
+
export type { AuthConfig } from './AuthManager';
|
|
11
|
+
export type { EventConfig } from './EventManager';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/managers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACpE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|