@leia-org/luke-client 0.1.0 → 0.1.2
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/dist/components/LukeProvider.d.ts +1 -1
- package/dist/components/LukeProvider.d.ts.map +1 -1
- package/dist/components/LukeProvider.js +3 -1
- package/dist/components/LukeProvider.js.map +1 -1
- package/dist/hooks/useLuke.d.ts.map +1 -1
- package/dist/hooks/useLuke.js +163 -53
- package/dist/hooks/useLuke.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/worker/audio.worker.js +8 -5
- package/dist/worker/audio.worker.js.map +1 -1
- package/package.json +10 -10
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { UseLukeReturn, LukeProviderProps } from '../types.js';
|
|
3
|
-
export declare function LukeProvider({ serverUrl, authToken, autoConnect, children, }: LukeProviderProps): React.ReactElement;
|
|
3
|
+
export declare function LukeProvider({ serverUrl, authToken, autoConnect, persistence, persistenceKey, children, }: LukeProviderProps): React.ReactElement;
|
|
4
4
|
export declare function useLukeContext(): UseLukeReturn;
|
|
5
5
|
//# sourceMappingURL=LukeProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LukeProvider.d.ts","sourceRoot":"","sources":["../../src/components/LukeProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMpE,wBAAgB,YAAY,CAAC,EACzB,SAAS,EACT,SAAS,EACT,WAAmB,EACnB,QAAQ,GACX,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"LukeProvider.d.ts","sourceRoot":"","sources":["../../src/components/LukeProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMpE,wBAAgB,YAAY,CAAC,EACzB,SAAS,EACT,SAAS,EACT,WAAmB,EACnB,WAAW,EACX,cAAc,EACd,QAAQ,GACX,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAcxC;AAGD,wBAAgB,cAAc,IAAI,aAAa,CAQ9C"}
|
|
@@ -6,11 +6,13 @@ import { useLuke } from '../hooks/useLuke.js';
|
|
|
6
6
|
// Context for Luke state
|
|
7
7
|
const LukeContext = createContext(null);
|
|
8
8
|
// Provider component wraps children with Luke context
|
|
9
|
-
export function LukeProvider({ serverUrl, authToken, autoConnect = false, children, }) {
|
|
9
|
+
export function LukeProvider({ serverUrl, authToken, autoConnect = false, persistence, persistenceKey, children, }) {
|
|
10
10
|
const luke = useLuke({
|
|
11
11
|
serverUrl,
|
|
12
12
|
authToken,
|
|
13
13
|
autoConnect,
|
|
14
|
+
persistence,
|
|
15
|
+
persistenceKey,
|
|
14
16
|
});
|
|
15
17
|
return (_jsx(LukeContext.Provider, { value: luke, children: children }));
|
|
16
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LukeProvider.js","sourceRoot":"","sources":["../../src/components/LukeProvider.tsx"],"names":[],"mappings":";AAAA,yBAAyB;AACzB,6DAA6D;AAE7D,OAAc,EAAE,aAAa,EAAE,UAAU,EAAW,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,yBAAyB;AACzB,MAAM,WAAW,GAAG,aAAa,CAAuB,IAAI,CAAC,CAAC;AAE9D,sDAAsD;AACtD,MAAM,UAAU,YAAY,CAAC,EACzB,SAAS,EACT,SAAS,EACT,WAAW,GAAG,KAAK,EACnB,QAAQ,GACQ;IAChB,MAAM,IAAI,GAAG,OAAO,CAAC;QACjB,SAAS;QACT,SAAS;QACT,WAAW;
|
|
1
|
+
{"version":3,"file":"LukeProvider.js","sourceRoot":"","sources":["../../src/components/LukeProvider.tsx"],"names":[],"mappings":";AAAA,yBAAyB;AACzB,6DAA6D;AAE7D,OAAc,EAAE,aAAa,EAAE,UAAU,EAAW,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,yBAAyB;AACzB,MAAM,WAAW,GAAG,aAAa,CAAuB,IAAI,CAAC,CAAC;AAE9D,sDAAsD;AACtD,MAAM,UAAU,YAAY,CAAC,EACzB,SAAS,EACT,SAAS,EACT,WAAW,GAAG,KAAK,EACnB,WAAW,EACX,cAAc,EACd,QAAQ,GACQ;IAChB,MAAM,IAAI,GAAG,OAAO,CAAC;QACjB,SAAS;QACT,SAAS;QACT,WAAW;QACX,WAAW;QACX,cAAc;KACjB,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,YAC5B,QAAQ,GACU,CAC1B,CAAC;AACN,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,cAAc;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAExC,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLuke.d.ts","sourceRoot":"","sources":["../../src/hooks/useLuke.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,aAAa,EACb,aAAa,EAOhB,MAAM,aAAa,CAAC;AAErB,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"useLuke.d.ts","sourceRoot":"","sources":["../../src/hooks/useLuke.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,aAAa,EACb,aAAa,EAOhB,MAAM,aAAa,CAAC;AAErB,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAmiB5D"}
|
package/dist/hooks/useLuke.js
CHANGED
|
@@ -16,16 +16,35 @@ export function useLuke(config) {
|
|
|
16
16
|
const [isRecording, setIsRecording] = useState(false);
|
|
17
17
|
const [audioLevel, setAudioLevel] = useState(0);
|
|
18
18
|
// Transcription state
|
|
19
|
-
const [transcription, setTranscription] = useState(
|
|
19
|
+
const [transcription, setTranscription] = useState(() => {
|
|
20
|
+
// Only load from localStorage if explicitly enabled (client-side persistence)
|
|
21
|
+
if (config.persistence) {
|
|
22
|
+
const key = config.persistenceKey || 'luke_transcription';
|
|
23
|
+
try {
|
|
24
|
+
const stored = sessionStorage.getItem(key);
|
|
25
|
+
return stored ? JSON.parse(stored) : [];
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return [];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return [];
|
|
32
|
+
});
|
|
20
33
|
// Refs for WebSocket and audio
|
|
21
34
|
const wsRef = useRef(null);
|
|
22
35
|
const audioContextRef = useRef(null);
|
|
23
36
|
const mediaStreamRef = useRef(null);
|
|
24
37
|
const workletNodeRef = useRef(null);
|
|
38
|
+
const workerRef = useRef(null);
|
|
25
39
|
const isRecordingRef = useRef(false);
|
|
40
|
+
// Reconnection state
|
|
41
|
+
const isIntentionalDisconnect = useRef(false);
|
|
42
|
+
const reconnectAttempts = useRef(0);
|
|
43
|
+
const reconnectTimeout = useRef(undefined);
|
|
26
44
|
// Playback queue for received audio
|
|
27
45
|
const playbackQueueRef = useRef([]);
|
|
28
46
|
const isPlayingRef = useRef(false);
|
|
47
|
+
const nextPlayTimeRef = useRef(0);
|
|
29
48
|
// Build WebSocket URL with auth token
|
|
30
49
|
const buildWsUrl = useCallback(() => {
|
|
31
50
|
const url = new URL(config.serverUrl);
|
|
@@ -120,8 +139,20 @@ export function useLuke(config) {
|
|
|
120
139
|
// Model finished speaking
|
|
121
140
|
break;
|
|
122
141
|
case 'interrupted':
|
|
123
|
-
// Clear playback queue on interruption
|
|
142
|
+
// Clear playback queue and reset scheduling on interruption
|
|
124
143
|
playbackQueueRef.current = [];
|
|
144
|
+
nextPlayTimeRef.current = 0;
|
|
145
|
+
isPlayingRef.current = false;
|
|
146
|
+
break;
|
|
147
|
+
case 'history':
|
|
148
|
+
// Always accept history from server if sent
|
|
149
|
+
if (message.messages) {
|
|
150
|
+
setTranscription((prev) => {
|
|
151
|
+
// Replace current state with server history
|
|
152
|
+
// (Ideally we might want to merge, but usually history is authoritative on connect)
|
|
153
|
+
return message.messages;
|
|
154
|
+
});
|
|
155
|
+
}
|
|
125
156
|
break;
|
|
126
157
|
case 'error':
|
|
127
158
|
const err = new Error(`${message.code}: ${message.message}`);
|
|
@@ -144,6 +175,11 @@ export function useLuke(config) {
|
|
|
144
175
|
const connect = useCallback(() => {
|
|
145
176
|
if (wsRef.current)
|
|
146
177
|
return;
|
|
178
|
+
isIntentionalDisconnect.current = false;
|
|
179
|
+
if (reconnectTimeout.current) {
|
|
180
|
+
clearTimeout(reconnectTimeout.current);
|
|
181
|
+
reconnectTimeout.current = undefined;
|
|
182
|
+
}
|
|
147
183
|
setConnectionState('connecting');
|
|
148
184
|
setError(null);
|
|
149
185
|
const ws = new WebSocket(buildWsUrl());
|
|
@@ -151,6 +187,11 @@ export function useLuke(config) {
|
|
|
151
187
|
ws.binaryType = 'arraybuffer';
|
|
152
188
|
ws.onopen = () => {
|
|
153
189
|
// Wait for handshake message
|
|
190
|
+
reconnectAttempts.current = 0;
|
|
191
|
+
if (reconnectTimeout.current) {
|
|
192
|
+
clearTimeout(reconnectTimeout.current);
|
|
193
|
+
reconnectTimeout.current = undefined;
|
|
194
|
+
}
|
|
154
195
|
};
|
|
155
196
|
ws.onmessage = handleServerMessage;
|
|
156
197
|
ws.onerror = () => {
|
|
@@ -162,6 +203,26 @@ export function useLuke(config) {
|
|
|
162
203
|
setConnectionState('disconnected');
|
|
163
204
|
setSessionId(null);
|
|
164
205
|
config.onDisconnect?.();
|
|
206
|
+
// Handle auto-reconnection
|
|
207
|
+
if (!isIntentionalDisconnect.current && (config.reconnect ?? true)) {
|
|
208
|
+
const maxAttempts = config.maxReconnectAttempts ?? 5;
|
|
209
|
+
const baseInterval = config.reconnectInterval ?? 1000;
|
|
210
|
+
if (reconnectAttempts.current < maxAttempts) {
|
|
211
|
+
reconnectAttempts.current++;
|
|
212
|
+
const delay = baseInterval * Math.pow(2, reconnectAttempts.current - 1);
|
|
213
|
+
console.log(`[Luke] Connection lost. Reconnecting in ${delay}ms (Attempt ${reconnectAttempts.current}/${maxAttempts})`);
|
|
214
|
+
setConnectionState('connecting');
|
|
215
|
+
reconnectTimeout.current = setTimeout(() => {
|
|
216
|
+
connect();
|
|
217
|
+
}, delay);
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
const err = new Error(`Connection lost. Max reconnection attempts (${maxAttempts}) reached.`);
|
|
221
|
+
setError(err);
|
|
222
|
+
config.onError?.(err);
|
|
223
|
+
setConnectionState('error');
|
|
224
|
+
}
|
|
225
|
+
}
|
|
165
226
|
};
|
|
166
227
|
}, [buildWsUrl, handleServerMessage, config]);
|
|
167
228
|
// Audio encoding helper (inline, no worker needed)
|
|
@@ -193,7 +254,9 @@ export function useLuke(config) {
|
|
|
193
254
|
}, []);
|
|
194
255
|
// Audio decoding helper
|
|
195
256
|
const decodeAudio = useCallback((pcmData) => {
|
|
196
|
-
|
|
257
|
+
// Ensure even byte length for Int16Array (truncate trailing byte if odd)
|
|
258
|
+
const byteLength = pcmData.byteLength & ~1;
|
|
259
|
+
const pcm = new Int16Array(pcmData, 0, byteLength / 2);
|
|
197
260
|
const float32 = new Float32Array(pcm.length);
|
|
198
261
|
for (let i = 0; i < pcm.length; i++) {
|
|
199
262
|
float32[i] = pcm[i] / (pcm[i] < 0 ? 0x8000 : 0x7fff);
|
|
@@ -211,35 +274,6 @@ export function useLuke(config) {
|
|
|
211
274
|
}
|
|
212
275
|
return resampled;
|
|
213
276
|
}, []);
|
|
214
|
-
// Disconnect from server
|
|
215
|
-
const disconnect = useCallback(() => {
|
|
216
|
-
stopRecording();
|
|
217
|
-
wsRef.current?.close();
|
|
218
|
-
wsRef.current = null;
|
|
219
|
-
audioContextRef.current?.close();
|
|
220
|
-
audioContextRef.current = null;
|
|
221
|
-
}, []);
|
|
222
|
-
// Select provider
|
|
223
|
-
const selectProvider = useCallback((providerId, voiceId) => {
|
|
224
|
-
const provider = providers.find((p) => p.id === providerId);
|
|
225
|
-
if (!provider)
|
|
226
|
-
return;
|
|
227
|
-
setSelectedProvider(provider);
|
|
228
|
-
const voice = voiceId ? provider.voices.find((v) => v.id === voiceId) : provider.voices[0];
|
|
229
|
-
setSelectedVoice(voice ?? null);
|
|
230
|
-
sendMessage({ type: 'select_provider', providerId, voiceId: voice?.id });
|
|
231
|
-
}, [providers, sendMessage]);
|
|
232
|
-
// Select voice
|
|
233
|
-
const selectVoice = useCallback((voiceId) => {
|
|
234
|
-
if (!selectedProvider)
|
|
235
|
-
return;
|
|
236
|
-
const voice = selectedProvider.voices.find((v) => v.id === voiceId);
|
|
237
|
-
if (voice) {
|
|
238
|
-
setSelectedVoice(voice);
|
|
239
|
-
// Re-select provider with new voice
|
|
240
|
-
sendMessage({ type: 'select_provider', providerId: selectedProvider.id, voiceId });
|
|
241
|
-
}
|
|
242
|
-
}, [selectedProvider, sendMessage]);
|
|
243
277
|
// Start recording audio
|
|
244
278
|
const startRecording = useCallback(async () => {
|
|
245
279
|
if (isRecording)
|
|
@@ -257,8 +291,23 @@ export function useLuke(config) {
|
|
|
257
291
|
});
|
|
258
292
|
mediaStreamRef.current = stream;
|
|
259
293
|
// Create audio context
|
|
260
|
-
|
|
294
|
+
// Use standard sample rate, but we'll detect what the browser actually gives us
|
|
295
|
+
const ctx = new (window.AudioContext || window.webkitAudioContext)({
|
|
296
|
+
sampleRate: 48000,
|
|
297
|
+
latencyHint: 'interactive',
|
|
298
|
+
});
|
|
261
299
|
audioContextRef.current = ctx;
|
|
300
|
+
// Initialize worker
|
|
301
|
+
const worker = new Worker(new URL('../worker/audio.worker.js', import.meta.url), {
|
|
302
|
+
type: 'module',
|
|
303
|
+
});
|
|
304
|
+
workerRef.current = worker;
|
|
305
|
+
// Configure worker with REAL sample rate and target rate
|
|
306
|
+
worker.postMessage({
|
|
307
|
+
type: 'configure',
|
|
308
|
+
sampleRate: sampleRate || 16000, // Target rate
|
|
309
|
+
sourceSampleRate: ctx.sampleRate, // Real browser rate
|
|
310
|
+
});
|
|
262
311
|
// Load audio worklet
|
|
263
312
|
await ctx.audioWorklet.addModule(URL.createObjectURL(new Blob([AUDIO_WORKLET_CODE], { type: 'application/javascript' })));
|
|
264
313
|
// Create worklet node
|
|
@@ -285,7 +334,17 @@ export function useLuke(config) {
|
|
|
285
334
|
setError(error);
|
|
286
335
|
config.onError?.(error);
|
|
287
336
|
}
|
|
288
|
-
}, [isRecording, config]);
|
|
337
|
+
}, [isRecording, config, encodeAudio, sampleRate]);
|
|
338
|
+
// Reconfigure worker when sampleRate changes (e.g. provider switch)
|
|
339
|
+
useEffect(() => {
|
|
340
|
+
if (workerRef.current && sampleRate) {
|
|
341
|
+
workerRef.current.postMessage({
|
|
342
|
+
type: 'configure',
|
|
343
|
+
sampleRate: sampleRate,
|
|
344
|
+
sourceSampleRate: audioContextRef.current?.sampleRate
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
}, [sampleRate]);
|
|
289
348
|
// Stop recording
|
|
290
349
|
const stopRecording = useCallback(() => {
|
|
291
350
|
if (!isRecording)
|
|
@@ -306,32 +365,83 @@ export function useLuke(config) {
|
|
|
306
365
|
setIsRecording(false);
|
|
307
366
|
setAudioLevel(0);
|
|
308
367
|
}, [isRecording]);
|
|
309
|
-
//
|
|
310
|
-
const
|
|
311
|
-
|
|
368
|
+
// Disconnect from server
|
|
369
|
+
const disconnect = useCallback(() => {
|
|
370
|
+
isIntentionalDisconnect.current = true;
|
|
371
|
+
if (reconnectTimeout.current) {
|
|
372
|
+
clearTimeout(reconnectTimeout.current);
|
|
373
|
+
reconnectTimeout.current = undefined;
|
|
374
|
+
}
|
|
375
|
+
stopRecording();
|
|
376
|
+
wsRef.current?.close();
|
|
377
|
+
wsRef.current = null;
|
|
378
|
+
audioContextRef.current?.close();
|
|
379
|
+
audioContextRef.current = null;
|
|
380
|
+
}, [stopRecording]);
|
|
381
|
+
// Select provider
|
|
382
|
+
const selectProvider = useCallback((providerId, voiceId) => {
|
|
383
|
+
const provider = providers.find((p) => p.id === providerId);
|
|
384
|
+
if (!provider)
|
|
312
385
|
return;
|
|
313
|
-
|
|
386
|
+
setSelectedProvider(provider);
|
|
387
|
+
const voice = voiceId ? provider.voices.find((v) => v.id === voiceId) : provider.voices[0];
|
|
388
|
+
setSelectedVoice(voice ?? null);
|
|
389
|
+
sendMessage({ type: 'select_provider', providerId, voiceId: voice?.id });
|
|
390
|
+
}, [providers, sendMessage]);
|
|
391
|
+
// Select voice
|
|
392
|
+
const selectVoice = useCallback((voiceId) => {
|
|
393
|
+
if (!selectedProvider)
|
|
394
|
+
return;
|
|
395
|
+
const voice = selectedProvider.voices.find((v) => v.id === voiceId);
|
|
396
|
+
if (voice) {
|
|
397
|
+
setSelectedVoice(voice);
|
|
398
|
+
// Re-select provider with new voice
|
|
399
|
+
sendMessage({ type: 'select_provider', providerId: selectedProvider.id, voiceId });
|
|
400
|
+
}
|
|
401
|
+
}, [selectedProvider, sendMessage]);
|
|
402
|
+
// Play queued audio with precise scheduling (no gaps between chunks)
|
|
403
|
+
const playNextAudio = useCallback(() => {
|
|
404
|
+
if (!audioContextRef.current || playbackQueueRef.current.length === 0)
|
|
314
405
|
return;
|
|
315
406
|
isPlayingRef.current = true;
|
|
316
|
-
const
|
|
317
|
-
//
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
407
|
+
const ctx = audioContextRef.current;
|
|
408
|
+
// Schedule all queued chunks back-to-back
|
|
409
|
+
while (playbackQueueRef.current.length > 0) {
|
|
410
|
+
const samples = playbackQueueRef.current.shift();
|
|
411
|
+
const audioData = new Float32Array(samples.length);
|
|
412
|
+
audioData.set(samples);
|
|
413
|
+
const buffer = ctx.createBuffer(1, audioData.length, 48000);
|
|
414
|
+
buffer.copyToChannel(audioData, 0);
|
|
415
|
+
const source = ctx.createBufferSource();
|
|
416
|
+
source.buffer = buffer;
|
|
417
|
+
source.connect(ctx.destination);
|
|
418
|
+
// Schedule to start exactly when the previous chunk ends
|
|
419
|
+
const startTime = Math.max(ctx.currentTime, nextPlayTimeRef.current);
|
|
420
|
+
source.start(startTime);
|
|
421
|
+
nextPlayTimeRef.current = startTime + buffer.duration;
|
|
422
|
+
// Track when the last scheduled chunk finishes
|
|
423
|
+
source.onended = () => {
|
|
424
|
+
if (playbackQueueRef.current.length === 0) {
|
|
425
|
+
isPlayingRef.current = false;
|
|
426
|
+
}
|
|
427
|
+
};
|
|
428
|
+
}
|
|
330
429
|
}, []);
|
|
331
430
|
// Clear transcription
|
|
332
431
|
const clearTranscription = useCallback(() => {
|
|
333
432
|
setTranscription([]);
|
|
334
|
-
|
|
433
|
+
if (config.persistence) {
|
|
434
|
+
const key = config.persistenceKey || 'luke_transcription';
|
|
435
|
+
sessionStorage.removeItem(key);
|
|
436
|
+
}
|
|
437
|
+
}, [config.persistence, config.persistenceKey]);
|
|
438
|
+
// Persist to sessionStorage if enabled
|
|
439
|
+
useEffect(() => {
|
|
440
|
+
if (config.persistence) {
|
|
441
|
+
const key = config.persistenceKey || 'luke_transcription';
|
|
442
|
+
sessionStorage.setItem(key, JSON.stringify(transcription));
|
|
443
|
+
}
|
|
444
|
+
}, [transcription, config.persistence, config.persistenceKey]);
|
|
335
445
|
// Auto-connect if configured
|
|
336
446
|
useEffect(() => {
|
|
337
447
|
if (config.autoConnect) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLuke.js","sourceRoot":"","sources":["../../src/hooks/useLuke.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useLuke.js","sourceRoot":"","sources":["../../src/hooks/useLuke.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @luke
|
|
1
|
+
// @leia-org/luke-client - React client for realtime AI voice communication
|
|
2
2
|
// Main entry point and public exports
|
|
3
3
|
// Components
|
|
4
4
|
export { LukeProvider, useLukeContext } from './components/LukeProvider.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,sCAAsC;AAEtC,aAAa;AACb,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,QAAQ;AACR,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAgB7C,KAAK;AACL,cAAc,eAAe,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -23,6 +23,11 @@ export interface UseLukeConfig {
|
|
|
23
23
|
onError?: (error: Error) => void;
|
|
24
24
|
onConnect?: () => void;
|
|
25
25
|
onDisconnect?: () => void;
|
|
26
|
+
reconnect?: boolean;
|
|
27
|
+
reconnectInterval?: number;
|
|
28
|
+
maxReconnectAttempts?: number;
|
|
29
|
+
persistence?: boolean;
|
|
30
|
+
persistenceKey?: string;
|
|
26
31
|
}
|
|
27
32
|
export interface UseLukeReturn {
|
|
28
33
|
connectionState: ConnectionState;
|
|
@@ -49,6 +54,8 @@ export interface LukeProviderProps {
|
|
|
49
54
|
serverUrl: string;
|
|
50
55
|
authToken?: string;
|
|
51
56
|
autoConnect?: boolean;
|
|
57
|
+
persistence?: boolean;
|
|
58
|
+
persistenceKey?: string;
|
|
52
59
|
children: React.ReactNode;
|
|
53
60
|
}
|
|
54
61
|
export type ServerMessage = {
|
|
@@ -59,6 +66,9 @@ export type ServerMessage = {
|
|
|
59
66
|
type: 'session_ready';
|
|
60
67
|
sessionId: string;
|
|
61
68
|
sampleRate: number;
|
|
69
|
+
} | {
|
|
70
|
+
type: 'history';
|
|
71
|
+
messages: TranscriptionMessage[];
|
|
62
72
|
} | {
|
|
63
73
|
type: 'transcription';
|
|
64
74
|
role: 'user' | 'assistant';
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,UAAU,EAAE,KAAK,GAAG,KAAK,CAAC;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC;AAGpF,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,CAAC,aAAa,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAChE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,mDAAmD"}
|
|
@@ -3,14 +3,17 @@
|
|
|
3
3
|
import { floatTo16BitPCM, pcm16ToFloat32, resampleAudio, calculateAudioLevel } from './audio-utils.js';
|
|
4
4
|
// Target sample rate (set by server based on provider)
|
|
5
5
|
let targetSampleRate = 16000;
|
|
6
|
-
// Browser audio context
|
|
7
|
-
|
|
6
|
+
// Browser audio context sample rate (configured by main thread)
|
|
7
|
+
let sourceSampleRate = 48000;
|
|
8
8
|
// Handle incoming messages
|
|
9
9
|
self.onmessage = (event) => {
|
|
10
10
|
const message = event.data;
|
|
11
11
|
switch (message.type) {
|
|
12
12
|
case 'configure':
|
|
13
13
|
targetSampleRate = message.sampleRate;
|
|
14
|
+
if (message.sourceSampleRate) {
|
|
15
|
+
sourceSampleRate = message.sourceSampleRate;
|
|
16
|
+
}
|
|
14
17
|
break;
|
|
15
18
|
case 'encode':
|
|
16
19
|
encodeAudio(message.samples);
|
|
@@ -22,8 +25,8 @@ self.onmessage = (event) => {
|
|
|
22
25
|
};
|
|
23
26
|
// Encode Float32 audio from browser to PCM for server
|
|
24
27
|
function encodeAudio(samples) {
|
|
25
|
-
// Resample to target rate
|
|
26
|
-
const resampled = resampleAudio(samples,
|
|
28
|
+
// Resample to target rate using actual source rate
|
|
29
|
+
const resampled = resampleAudio(samples, sourceSampleRate, targetSampleRate);
|
|
27
30
|
// Calculate audio level before encoding
|
|
28
31
|
const level = calculateAudioLevel(resampled);
|
|
29
32
|
// Convert to 16-bit PCM
|
|
@@ -46,7 +49,7 @@ function decodeAudio(pcmData) {
|
|
|
46
49
|
// Convert to Float32
|
|
47
50
|
const float32 = pcm16ToFloat32(pcm);
|
|
48
51
|
// Resample from server rate (24kHz output) to browser rate
|
|
49
|
-
const resampled = resampleAudio(float32, 24000,
|
|
52
|
+
const resampled = resampleAudio(float32, 24000, sourceSampleRate);
|
|
50
53
|
// Create copy of samples to ensure clean transfer
|
|
51
54
|
const result = new Float32Array(resampled.length);
|
|
52
55
|
result.set(resampled);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio.worker.js","sourceRoot":"","sources":["../../src/worker/audio.worker.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,sEAAsE;AAEtE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"audio.worker.js","sourceRoot":"","sources":["../../src/worker/audio.worker.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,sEAAsE;AAEtE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAkCvG,uDAAuD;AACvD,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B,gEAAgE;AAChE,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAK7B,2BAA2B;AAC3B,IAAI,CAAC,SAAS,GAAG,CAAC,KAAkC,EAAE,EAAE;IACpD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;IAE3B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,WAAW;YACZ,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;YACtC,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAChD,CAAC;YACD,MAAM;QAEV,KAAK,QAAQ;YACT,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7B,MAAM;QAEV,KAAK,QAAQ;YACT,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7B,MAAM;IACd,CAAC;AACL,CAAC,CAAC;AAEF,sDAAsD;AACtD,SAAS,WAAW,CAAC,OAAqB;IACtC,mDAAmD;IACnD,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAE7E,wCAAwC;IACxC,MAAM,KAAK,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAE7C,wBAAwB;IACxB,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAEvC,sDAAsD;IACtD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEhC,2BAA2B;IAC3B,MAAM,QAAQ,GAAoB;QAC9B,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,MAAM;QACf,KAAK;KACR,CAAC;IACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,iDAAiD;AACjD,SAAS,WAAW,CAAC,OAAoB;IACrC,4BAA4B;IAC5B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IAEpC,qBAAqB;IACrB,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAEpC,2DAA2D;IAC3D,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAElE,kDAAkD;IAClD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEtB,2BAA2B;IAC3B,MAAM,QAAQ,GAAoB;QAC9B,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,MAAM;KAClB,CAAC;IACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.1.
|
|
2
|
+
"version": "0.1.2",
|
|
3
3
|
"name": "@leia-org/luke-client",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
@@ -15,6 +15,13 @@
|
|
|
15
15
|
},
|
|
16
16
|
"./style.css": "./dist/Luke.css"
|
|
17
17
|
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"dev": "tsc --watch",
|
|
21
|
+
"test": "vitest run",
|
|
22
|
+
"lint": "tsc --noEmit",
|
|
23
|
+
"postbuild": "cp src/ui/Luke.css dist/Luke.css"
|
|
24
|
+
},
|
|
18
25
|
"devDependencies": {
|
|
19
26
|
"@types/react": "^19.0.2",
|
|
20
27
|
"typescript": "^5.7.2",
|
|
@@ -26,12 +33,5 @@
|
|
|
26
33
|
"files": [
|
|
27
34
|
"dist"
|
|
28
35
|
],
|
|
29
|
-
"license": "MIT"
|
|
30
|
-
|
|
31
|
-
"build": "tsc",
|
|
32
|
-
"dev": "tsc --watch",
|
|
33
|
-
"test": "vitest run",
|
|
34
|
-
"lint": "tsc --noEmit",
|
|
35
|
-
"postbuild": "cp src/ui/Luke.css dist/Luke.css"
|
|
36
|
-
}
|
|
37
|
-
}
|
|
36
|
+
"license": "MIT"
|
|
37
|
+
}
|