ugly-app 0.1.283 → 0.1.285
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/cli/version.d.ts +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/client/audio/useSTT.d.ts.map +1 -1
- package/dist/client/audio/useSTT.js +12 -10
- package/dist/client/audio/useSTT.js.map +1 -1
- package/dist/client/bootstrapApp.js +1 -1
- package/dist/client/bootstrapApp.js.map +1 -1
- package/dist/client/uglyBotSocket.d.ts +1 -1
- package/dist/client/uglyBotSocket.d.ts.map +1 -1
- package/dist/client/uglyBotSocket.js +22 -7
- package/dist/client/uglyBotSocket.js.map +1 -1
- package/dist/server/Socket.d.ts.map +1 -1
- package/dist/server/Socket.js +27 -1
- package/dist/server/Socket.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/version.ts +1 -1
- package/src/client/audio/useSTT.ts +12 -9
- package/src/client/bootstrapApp.tsx +1 -1
- package/src/client/uglyBotSocket.ts +22 -11
- package/src/server/Socket.ts +28 -1
- package/templates/client/pages/AudioTestPage.tsx +46 -22
package/dist/cli/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const CLI_VERSION = "0.1.
|
|
1
|
+
export declare const CLI_VERSION = "0.1.285";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/cli/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSTT.d.ts","sourceRoot":"","sources":["../../../src/client/audio/useSTT.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID,wBAAgB,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,UAAe;;;;;;;
|
|
1
|
+
{"version":3,"file":"useSTT.d.ts","sourceRoot":"","sources":["../../../src/client/audio/useSTT.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID,wBAAgB,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,UAAe;;;;;;;EAkIrE"}
|
|
@@ -30,10 +30,20 @@ export function useSTT(socket, options = {}) {
|
|
|
30
30
|
setListening(true);
|
|
31
31
|
const mode = options.mode ?? 'auto';
|
|
32
32
|
console.log(`[STT] start streamId=${streamId} mode=${mode} lang=${options.lang ?? 'auto'}`);
|
|
33
|
+
// Start mic acquisition in parallel with socket connection for faster startup
|
|
34
|
+
if (!recorderRef.current)
|
|
35
|
+
recorderRef.current = new AudioRecorder();
|
|
36
|
+
let chunkCount = 0;
|
|
37
|
+
const micReady = recorderRef.current.start((audio) => {
|
|
38
|
+
chunkCount++;
|
|
39
|
+
if (chunkCount <= 3 || chunkCount % 50 === 0) {
|
|
40
|
+
console.log(`[STT] audio chunk #${chunkCount} (${audio.length} b64 chars)`);
|
|
41
|
+
}
|
|
42
|
+
socket.send('stt:audio', { streamId, audio });
|
|
43
|
+
});
|
|
33
44
|
await socket.acquire();
|
|
34
45
|
console.log('[STT] socket acquired');
|
|
35
46
|
cleanupListeners();
|
|
36
|
-
let chunkCount = 0;
|
|
37
47
|
unsubsRef.current.push(socket.on('stt:ready', (data) => {
|
|
38
48
|
if (data.streamId !== streamId)
|
|
39
49
|
return;
|
|
@@ -86,15 +96,7 @@ export function useSTT(socket, options = {}) {
|
|
|
86
96
|
console.log('[STT] cancelled before recording started');
|
|
87
97
|
return;
|
|
88
98
|
}
|
|
89
|
-
|
|
90
|
-
recorderRef.current = new AudioRecorder();
|
|
91
|
-
await recorderRef.current.start((audio) => {
|
|
92
|
-
chunkCount++;
|
|
93
|
-
if (chunkCount <= 3 || chunkCount % 50 === 0) {
|
|
94
|
-
console.log(`[STT] audio chunk #${chunkCount} (${audio.length} b64 chars)`);
|
|
95
|
-
}
|
|
96
|
-
socket.send('stt:audio', { streamId, audio });
|
|
97
|
-
});
|
|
99
|
+
await micReady;
|
|
98
100
|
console.log('[STT] recording started');
|
|
99
101
|
}, [socket, listening, options.mode, options.lang]);
|
|
100
102
|
const stop = useCallback(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSTT.js","sourceRoot":"","sources":["../../../src/client/audio/useSTT.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOnD,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,MAAM,UAAU,MAAM,CAAC,MAAqB,EAAE,UAAsB,EAAE;IACpE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,MAAM,WAAW,GAAG,MAAM,CAAuB,IAAI,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,MAAM,CAAiB,EAAE,CAAC,CAAC;IAE7C,SAAS,gBAAgB;QACvB,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,OAAO;YAAE,KAAK,EAAE,CAAC;QAC/C,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACnC,IAAI,SAAS;YAAE,OAAO;QACtB,MAAM,QAAQ,GAAG,OAAO,EAAE,UAAU,EAAE,CAAC;QACvC,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;QAC/B,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;QAC7B,aAAa,CAAC,EAAE,CAAC,CAAC;QAClB,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,YAAY,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,wBAAwB,QAAQ,SAAS,IAAI,SAAS,OAAO,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;QAE5F,
|
|
1
|
+
{"version":3,"file":"useSTT.js","sourceRoot":"","sources":["../../../src/client/audio/useSTT.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ export function bootstrapApp(options) {
|
|
|
34
34
|
socket
|
|
35
35
|
.connect(token)
|
|
36
36
|
.then(({ user, appToken }) => {
|
|
37
|
-
const uglyBotSocket = appToken ? createUglyBotSocket(appToken) : null;
|
|
37
|
+
const uglyBotSocket = appToken ? createUglyBotSocket(appToken, uglyBotUrl) : null;
|
|
38
38
|
renderWithRouter(true, false, _jsx(AppProvider, { socket: socket, uglyBotSocket: uglyBotSocket, userId: userId, user: user, children: renderApp() }));
|
|
39
39
|
})
|
|
40
40
|
.catch((err) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapApp.js","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AA8BzD,MAAM,CAAC,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAuD,CAAC,CAAC,CAAC,EAAwC,CAAC;AAE7I,MAAM,UAAU,YAAY,CAAC,OAA4B;IACvD,MAAM,EACJ,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,WAAW,GAAG,EAAE,EAC1B,cAAc,EACd,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,OAAO,GAAG,OAAO,EACvB,QAAQ,GAAG,sDAA+B,EAC1C,SAAS,GAAG,MAAM,GACnB,GAAG,OAAO,CAAC;IAEZ,MAAM,MAAM,GACV,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3E,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAEhC,sCAAsC;IACtC,MAAM,UAAU,GAAG,CAAC,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,CAAC;IAC/D,MAAM,gBAAgB,GAAG,CAAC,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;IAC5D,IAAI,gBAAgB,EAAE,CAAC;QACrB,UAAU,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAElC,SAAS,gBAAgB,CACvB,eAAwB,EACxB,SAAkB,EAClB,QAAsB;QAEtB,IAAI,CAAC,MAAM,CACT,KAAC,cAAc,IACb,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe,EACtC,SAAS,EAAE,SAAS,YAEnB,QAAQ,GACM,CAClB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GACV,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CACtC,CAAC,GAAG,CAAC;IACN,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,QAAQ,EAAE,EAAE,GAAG,iBAAiB,EAAE,GAAG,WAAW,EAAE;QAClD,QAAQ,EAAE,EAAE,GAAG,iBAAiB,EAAE,GAAG,WAAW,EAAE;QAClD,GAAG,EAAE,SAAS;KACf,CAAC,CAAC;IAEH,MAAM;SACH,OAAO,CAAC,KAAK,CAAC;SACd,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC3B,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrapApp.js","sourceRoot":"","sources":["../../src/client/bootstrapApp.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,6 @@ export interface UglyBotSocket {
|
|
|
8
8
|
acquire(): Promise<void>;
|
|
9
9
|
release(): void;
|
|
10
10
|
}
|
|
11
|
-
export declare function createUglyBotSocket(appToken: string): UglyBotSocket;
|
|
11
|
+
export declare function createUglyBotSocket(appToken: string, baseUrl?: string): UglyBotSocket;
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=uglyBotSocket.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uglyBotSocket.d.ts","sourceRoot":"","sources":["../../src/client/uglyBotSocket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"uglyBotSocket.d.ts","sourceRoot":"","sources":["../../src/client/uglyBotSocket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,KAAK,WAAW,GAAG,MAAM,IAAI,CAAC;AAC9B,KAAK,aAAa,GAAG,MAAM,eAAe,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,CAAC,SAAS,aAAa,EAC1B,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GACpC,IAAI,CAAC;IACR,EAAE,CAAC,CAAC,SAAS,aAAa,EACxB,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GACvD,WAAW,CAAC;IACf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,IAAI,IAAI,CAAC;CACjB;AAID,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAqHrF"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { getUglyBotWsUrl } from '../shared/uglyBotUrl.js';
|
|
2
1
|
const IDLE_TIMEOUT_MS = 10_000;
|
|
3
|
-
export function createUglyBotSocket(appToken) {
|
|
2
|
+
export function createUglyBotSocket(appToken, baseUrl) {
|
|
4
3
|
let ws = null;
|
|
5
4
|
let connectPromise = null;
|
|
6
5
|
let refCount = 0;
|
|
@@ -8,10 +7,16 @@ export function createUglyBotSocket(appToken) {
|
|
|
8
7
|
const listeners = new Map();
|
|
9
8
|
function handleMessage(event) {
|
|
10
9
|
const msg = JSON.parse(event.data);
|
|
11
|
-
const
|
|
10
|
+
const type = msg.type;
|
|
11
|
+
// Support both { type, data: {...} } and flat { type, streamId, audio, ... } formats
|
|
12
|
+
const data = msg.data !== undefined ? msg.data : (() => {
|
|
13
|
+
const { type: _t, ...rest } = msg;
|
|
14
|
+
return Object.keys(rest).length > 0 ? rest : {};
|
|
15
|
+
})();
|
|
16
|
+
const set = listeners.get(type);
|
|
12
17
|
if (set) {
|
|
13
18
|
for (const handler of set)
|
|
14
|
-
handler(
|
|
19
|
+
handler(data);
|
|
15
20
|
}
|
|
16
21
|
}
|
|
17
22
|
function ensureConnection() {
|
|
@@ -21,18 +26,24 @@ export function createUglyBotSocket(appToken) {
|
|
|
21
26
|
if (connectPromise)
|
|
22
27
|
return connectPromise;
|
|
23
28
|
connectPromise = new Promise((resolve, reject) => {
|
|
24
|
-
const
|
|
29
|
+
const httpBase = baseUrl ?? 'https://ugly.bot';
|
|
30
|
+
const wsBase = httpBase.replace(/^http/, 'ws');
|
|
31
|
+
const url = `${wsBase}/ws?token=${encodeURIComponent(appToken)}`;
|
|
32
|
+
console.log(`[UglyBotSocket] connecting to ${url.replace(/token=[^&]+/, 'token=***')}`);
|
|
25
33
|
const socket = new WebSocket(url);
|
|
26
34
|
socket.addEventListener('open', () => {
|
|
35
|
+
console.log('[UglyBotSocket] connected');
|
|
27
36
|
ws = socket;
|
|
28
37
|
connectPromise = null;
|
|
29
38
|
resolve();
|
|
30
39
|
});
|
|
31
|
-
socket.addEventListener('error', () => {
|
|
40
|
+
socket.addEventListener('error', (e) => {
|
|
41
|
+
console.error('[UglyBotSocket] connection error', e);
|
|
32
42
|
connectPromise = null;
|
|
33
43
|
reject(new Error('ugly.bot WebSocket connection failed'));
|
|
34
44
|
});
|
|
35
|
-
socket.addEventListener('close', () => {
|
|
45
|
+
socket.addEventListener('close', (e) => {
|
|
46
|
+
console.log(`[UglyBotSocket] closed code=${e.code} reason=${e.reason}`);
|
|
36
47
|
if (ws === socket)
|
|
37
48
|
ws = null;
|
|
38
49
|
connectPromise = null;
|
|
@@ -65,8 +76,12 @@ export function createUglyBotSocket(appToken) {
|
|
|
65
76
|
return {
|
|
66
77
|
send(type, data) {
|
|
67
78
|
if (ws && ws.readyState === WebSocket.OPEN) {
|
|
79
|
+
console.log(`[UglyBotSocket] send ${type}`, data);
|
|
68
80
|
ws.send(JSON.stringify({ type, data }));
|
|
69
81
|
}
|
|
82
|
+
else {
|
|
83
|
+
console.error(`[UglyBotSocket] send DROPPED ${type} — ws ${ws ? `readyState=${ws.readyState}` : 'null'}`);
|
|
84
|
+
}
|
|
70
85
|
},
|
|
71
86
|
on(event, handler) {
|
|
72
87
|
let set = listeners.get(event);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uglyBotSocket.js","sourceRoot":"","sources":["../../src/client/uglyBotSocket.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uglyBotSocket.js","sourceRoot":"","sources":["../../src/client/uglyBotSocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Socket.d.ts","sourceRoot":"","sources":["../../src/server/Socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA+ClD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,kBAAkB,EAC/B,QAAQ,EAAE,aAAa,GAAG,IAAI,EAE9B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAErB,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,EAC5B,MAAM,SAAS,EACf,uBAAuB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,EAAE;AACtF;yEACyE;AACzE,WAAW,CAAC,EAAE,eAAe;AAC7B;+EAC+E;AAC/E,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACzF,eAAe,
|
|
1
|
+
{"version":3,"file":"Socket.d.ts","sourceRoot":"","sources":["../../src/server/Socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,mBAAmB,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA+ClD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,kBAAkB,EAC/B,QAAQ,EAAE,aAAa,GAAG,IAAI,EAE9B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAErB,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,EAC5B,MAAM,SAAS,EACf,uBAAuB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,EAAE;AACtF;yEACyE;AACzE,WAAW,CAAC,EAAE,eAAe;AAC7B;+EAC+E;AAC/E,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACzF,eAAe,CA4ZjB"}
|
package/dist/server/Socket.js
CHANGED
|
@@ -29,7 +29,33 @@ onAuth) {
|
|
|
29
29
|
const sessions = new Map();
|
|
30
30
|
wss.on('connection', (ws, req) => {
|
|
31
31
|
let session = null;
|
|
32
|
+
// Support URL token auth: ws://host/ws?token=JWT
|
|
33
|
+
// This allows direct connections (e.g. UglyBotSocket) without a message-based auth handshake.
|
|
34
|
+
const connUrl = new URL(req.url ?? '/', `http://${req.headers.host ?? 'localhost'}`);
|
|
35
|
+
const urlToken = connUrl.searchParams.get('token');
|
|
36
|
+
let urlAuthPromise = null;
|
|
37
|
+
if (urlToken) {
|
|
38
|
+
urlAuthPromise = (async () => {
|
|
39
|
+
try {
|
|
40
|
+
const userId = await verifyToken(urlToken);
|
|
41
|
+
const user = { _id: userId, userId };
|
|
42
|
+
const unregisterPush = await registerPushConnection(userId, ws);
|
|
43
|
+
session = { userId, ws, subscriptions: new Map(), unregisterPush };
|
|
44
|
+
sessions.set(ws, session);
|
|
45
|
+
if (onAuth)
|
|
46
|
+
await onAuth(ws, userId, req);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
ws.close(4001, 'Invalid token');
|
|
50
|
+
}
|
|
51
|
+
})();
|
|
52
|
+
}
|
|
32
53
|
ws.on('message', async (data) => {
|
|
54
|
+
// If URL token auth is in progress, wait for it to complete
|
|
55
|
+
if (urlAuthPromise) {
|
|
56
|
+
await urlAuthPromise;
|
|
57
|
+
urlAuthPromise = null;
|
|
58
|
+
}
|
|
33
59
|
let msg;
|
|
34
60
|
try {
|
|
35
61
|
msg = JSON.parse(String(data));
|
|
@@ -38,7 +64,7 @@ onAuth) {
|
|
|
38
64
|
ws.close();
|
|
39
65
|
return;
|
|
40
66
|
}
|
|
41
|
-
// Auth handshake must be first message
|
|
67
|
+
// Auth handshake must be first message (unless URL token was used)
|
|
42
68
|
if (!session) {
|
|
43
69
|
if (msg.type !== 'auth') {
|
|
44
70
|
ws.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Socket.js","sourceRoot":"","sources":["../../src/server/Socket.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Socket.js","sourceRoot":"","sources":["../../src/server/Socket.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/cli/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Auto-generated by prebuild — do not edit manually
|
|
2
|
-
export const CLI_VERSION = "0.1.
|
|
2
|
+
export const CLI_VERSION = "0.1.285";
|
|
@@ -41,11 +41,21 @@ export function useSTT(socket: UglyBotSocket, options: STTOptions = {}) {
|
|
|
41
41
|
const mode = options.mode ?? 'auto';
|
|
42
42
|
console.log(`[STT] start streamId=${streamId} mode=${mode} lang=${options.lang ?? 'auto'}`);
|
|
43
43
|
|
|
44
|
+
// Start mic acquisition in parallel with socket connection for faster startup
|
|
45
|
+
if (!recorderRef.current) recorderRef.current = new AudioRecorder();
|
|
46
|
+
let chunkCount = 0;
|
|
47
|
+
const micReady = recorderRef.current.start((audio) => {
|
|
48
|
+
chunkCount++;
|
|
49
|
+
if (chunkCount <= 3 || chunkCount % 50 === 0) {
|
|
50
|
+
console.log(`[STT] audio chunk #${chunkCount} (${audio.length} b64 chars)`);
|
|
51
|
+
}
|
|
52
|
+
socket.send('stt:audio', { streamId, audio });
|
|
53
|
+
});
|
|
54
|
+
|
|
44
55
|
await socket.acquire();
|
|
45
56
|
console.log('[STT] socket acquired');
|
|
46
57
|
|
|
47
58
|
cleanupListeners();
|
|
48
|
-
let chunkCount = 0;
|
|
49
59
|
unsubsRef.current.push(
|
|
50
60
|
socket.on('stt:ready', (data) => {
|
|
51
61
|
if (data.streamId !== streamId) return;
|
|
@@ -103,14 +113,7 @@ export function useSTT(socket: UglyBotSocket, options: STTOptions = {}) {
|
|
|
103
113
|
return;
|
|
104
114
|
}
|
|
105
115
|
|
|
106
|
-
|
|
107
|
-
await recorderRef.current.start((audio) => {
|
|
108
|
-
chunkCount++;
|
|
109
|
-
if (chunkCount <= 3 || chunkCount % 50 === 0) {
|
|
110
|
-
console.log(`[STT] audio chunk #${chunkCount} (${audio.length} b64 chars)`);
|
|
111
|
-
}
|
|
112
|
-
socket.send('stt:audio', { streamId, audio });
|
|
113
|
-
});
|
|
116
|
+
await micReady;
|
|
114
117
|
console.log('[STT] recording started');
|
|
115
118
|
}, [socket, listening, options.mode, options.lang]);
|
|
116
119
|
|
|
@@ -95,7 +95,7 @@ export function bootstrapApp(options: BootstrapAppOptions): void {
|
|
|
95
95
|
socket
|
|
96
96
|
.connect(token)
|
|
97
97
|
.then(({ user, appToken }) => {
|
|
98
|
-
const uglyBotSocket = appToken ? createUglyBotSocket(appToken) : null;
|
|
98
|
+
const uglyBotSocket = appToken ? createUglyBotSocket(appToken, uglyBotUrl) : null;
|
|
99
99
|
renderWithRouter(
|
|
100
100
|
true,
|
|
101
101
|
false,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { MessageData } from '../shared/Api.js';
|
|
2
2
|
import type { UglyBotMessages } from '../shared/UglyBotMessages.js';
|
|
3
|
-
import { getUglyBotWsUrl } from '../shared/uglyBotUrl.js';
|
|
4
3
|
|
|
5
4
|
type Unsubscribe = () => void;
|
|
6
5
|
type UglyBotMsgKey = keyof UglyBotMessages;
|
|
@@ -20,7 +19,7 @@ export interface UglyBotSocket {
|
|
|
20
19
|
|
|
21
20
|
const IDLE_TIMEOUT_MS = 10_000;
|
|
22
21
|
|
|
23
|
-
export function createUglyBotSocket(appToken: string): UglyBotSocket {
|
|
22
|
+
export function createUglyBotSocket(appToken: string, baseUrl?: string): UglyBotSocket {
|
|
24
23
|
let ws: WebSocket | null = null;
|
|
25
24
|
let connectPromise: Promise<void> | null = null;
|
|
26
25
|
let refCount = 0;
|
|
@@ -29,13 +28,16 @@ export function createUglyBotSocket(appToken: string): UglyBotSocket {
|
|
|
29
28
|
const listeners = new Map<string, Set<(data: unknown) => void>>();
|
|
30
29
|
|
|
31
30
|
function handleMessage(event: MessageEvent) {
|
|
32
|
-
const msg = JSON.parse(event.data as string) as
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
const msg = JSON.parse(event.data as string) as Record<string, unknown>;
|
|
32
|
+
const type = msg.type as string;
|
|
33
|
+
// Support both { type, data: {...} } and flat { type, streamId, audio, ... } formats
|
|
34
|
+
const data = msg.data !== undefined ? msg.data : (() => {
|
|
35
|
+
const { type: _t, ...rest } = msg;
|
|
36
|
+
return Object.keys(rest).length > 0 ? rest : {};
|
|
37
|
+
})();
|
|
38
|
+
const set = listeners.get(type);
|
|
37
39
|
if (set) {
|
|
38
|
-
for (const handler of set) handler(
|
|
40
|
+
for (const handler of set) handler(data);
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
43
|
|
|
@@ -46,21 +48,27 @@ export function createUglyBotSocket(appToken: string): UglyBotSocket {
|
|
|
46
48
|
if (connectPromise) return connectPromise;
|
|
47
49
|
|
|
48
50
|
connectPromise = new Promise<void>((resolve, reject) => {
|
|
49
|
-
const
|
|
51
|
+
const httpBase = baseUrl ?? 'https://ugly.bot';
|
|
52
|
+
const wsBase = httpBase.replace(/^http/, 'ws');
|
|
53
|
+
const url = `${wsBase}/ws?token=${encodeURIComponent(appToken)}`;
|
|
54
|
+
console.log(`[UglyBotSocket] connecting to ${url.replace(/token=[^&]+/, 'token=***')}`);
|
|
50
55
|
const socket = new WebSocket(url);
|
|
51
56
|
|
|
52
57
|
socket.addEventListener('open', () => {
|
|
58
|
+
console.log('[UglyBotSocket] connected');
|
|
53
59
|
ws = socket;
|
|
54
60
|
connectPromise = null;
|
|
55
61
|
resolve();
|
|
56
62
|
});
|
|
57
63
|
|
|
58
|
-
socket.addEventListener('error', () => {
|
|
64
|
+
socket.addEventListener('error', (e) => {
|
|
65
|
+
console.error('[UglyBotSocket] connection error', e);
|
|
59
66
|
connectPromise = null;
|
|
60
67
|
reject(new Error('ugly.bot WebSocket connection failed'));
|
|
61
68
|
});
|
|
62
69
|
|
|
63
|
-
socket.addEventListener('close', () => {
|
|
70
|
+
socket.addEventListener('close', (e) => {
|
|
71
|
+
console.log(`[UglyBotSocket] closed code=${e.code} reason=${e.reason}`);
|
|
64
72
|
if (ws === socket) ws = null;
|
|
65
73
|
connectPromise = null;
|
|
66
74
|
});
|
|
@@ -97,7 +105,10 @@ export function createUglyBotSocket(appToken: string): UglyBotSocket {
|
|
|
97
105
|
return {
|
|
98
106
|
send(type, data) {
|
|
99
107
|
if (ws && ws.readyState === WebSocket.OPEN) {
|
|
108
|
+
console.log(`[UglyBotSocket] send ${type as string}`, data);
|
|
100
109
|
ws.send(JSON.stringify({ type, data }));
|
|
110
|
+
} else {
|
|
111
|
+
console.error(`[UglyBotSocket] send DROPPED ${type as string} — ws ${ws ? `readyState=${ws.readyState}` : 'null'}`);
|
|
101
112
|
}
|
|
102
113
|
},
|
|
103
114
|
|
package/src/server/Socket.ts
CHANGED
|
@@ -88,7 +88,34 @@ export function initWebSocketServer(
|
|
|
88
88
|
|
|
89
89
|
wss.on('connection', (ws, req) => {
|
|
90
90
|
let session: Session | null = null;
|
|
91
|
+
|
|
92
|
+
// Support URL token auth: ws://host/ws?token=JWT
|
|
93
|
+
// This allows direct connections (e.g. UglyBotSocket) without a message-based auth handshake.
|
|
94
|
+
const connUrl = new URL(req.url ?? '/', `http://${req.headers.host ?? 'localhost'}`);
|
|
95
|
+
const urlToken = connUrl.searchParams.get('token');
|
|
96
|
+
let urlAuthPromise: Promise<void> | null = null;
|
|
97
|
+
if (urlToken) {
|
|
98
|
+
urlAuthPromise = (async () => {
|
|
99
|
+
try {
|
|
100
|
+
const userId = await verifyToken(urlToken);
|
|
101
|
+
const user = { _id: userId, userId };
|
|
102
|
+
const unregisterPush = await registerPushConnection(userId, ws);
|
|
103
|
+
session = { userId, ws, subscriptions: new Map(), unregisterPush };
|
|
104
|
+
sessions.set(ws, session);
|
|
105
|
+
if (onAuth) await onAuth(ws, userId, req);
|
|
106
|
+
} catch {
|
|
107
|
+
ws.close(4001, 'Invalid token');
|
|
108
|
+
}
|
|
109
|
+
})();
|
|
110
|
+
}
|
|
111
|
+
|
|
91
112
|
ws.on('message', async (data) => {
|
|
113
|
+
// If URL token auth is in progress, wait for it to complete
|
|
114
|
+
if (urlAuthPromise) {
|
|
115
|
+
await urlAuthPromise;
|
|
116
|
+
urlAuthPromise = null;
|
|
117
|
+
}
|
|
118
|
+
|
|
92
119
|
let msg: IncomingMessage;
|
|
93
120
|
try {
|
|
94
121
|
msg = JSON.parse(String(data)) as IncomingMessage;
|
|
@@ -97,7 +124,7 @@ export function initWebSocketServer(
|
|
|
97
124
|
return;
|
|
98
125
|
}
|
|
99
126
|
|
|
100
|
-
// Auth handshake must be first message
|
|
127
|
+
// Auth handshake must be first message (unless URL token was used)
|
|
101
128
|
if (!session) {
|
|
102
129
|
if (msg.type !== 'auth') {
|
|
103
130
|
ws.close();
|
|
@@ -285,7 +285,7 @@ function STTSection({ socket }: { socket: UglyBotSocket }) {
|
|
|
285
285
|
unsubAll();
|
|
286
286
|
unsubsRef.current.push(
|
|
287
287
|
socket.on('stt:transcript', (data) => {
|
|
288
|
-
if (data.streamId !== streamId) return;
|
|
288
|
+
if (data.streamId && data.streamId !== streamId) return;
|
|
289
289
|
addLog(`Transcript${data.isFinal ? ' (final)' : ''}: ${data.text ?? ''}`, data.isFinal ? 'ok' : 'info');
|
|
290
290
|
setTranscript(data.text ?? '');
|
|
291
291
|
if (data.isFinal && data.text) {
|
|
@@ -294,13 +294,15 @@ function STTSection({ socket }: { socket: UglyBotSocket }) {
|
|
|
294
294
|
}
|
|
295
295
|
}),
|
|
296
296
|
socket.on('stt:error', (data) => {
|
|
297
|
-
if (data.streamId !== streamId) return;
|
|
297
|
+
if (data.streamId && data.streamId !== streamId) return;
|
|
298
298
|
addLog(`STT error: ${data.message ?? 'unknown'}`, 'err');
|
|
299
299
|
stopListening();
|
|
300
300
|
}),
|
|
301
301
|
socket.on('stt:stopped', (data) => {
|
|
302
|
-
if (data.streamId !== streamId) return;
|
|
302
|
+
if (data.streamId && data.streamId !== streamId) return;
|
|
303
303
|
addLog(`STT stopped — sent ${chunkCountRef.current} audio chunks`, 'ok');
|
|
304
|
+
unsubAll();
|
|
305
|
+
socket.release();
|
|
304
306
|
}),
|
|
305
307
|
);
|
|
306
308
|
}
|
|
@@ -315,6 +317,17 @@ function STTSection({ socket }: { socket: UglyBotSocket }) {
|
|
|
315
317
|
const started = Date.now();
|
|
316
318
|
addLog(`Mode: ${sttMode}${sttMode === 'continuous' ? ' (VAD enabled)' : ''}`);
|
|
317
319
|
|
|
320
|
+
// Start mic + socket in parallel for faster startup
|
|
321
|
+
if (!recorderRef.current) recorderRef.current = new AudioRecorder();
|
|
322
|
+
const micReady = Promise.all([
|
|
323
|
+
mic.start(),
|
|
324
|
+
recorderRef.current.start((audio) => {
|
|
325
|
+
chunkCountRef.current++;
|
|
326
|
+
console.log(`[STT] audio chunk #${chunkCountRef.current} (${audio.length} b64 chars)`);
|
|
327
|
+
socket.send('stt:audio', { streamId, audio });
|
|
328
|
+
}),
|
|
329
|
+
]);
|
|
330
|
+
|
|
318
331
|
await socket.acquire();
|
|
319
332
|
subscribe(streamId);
|
|
320
333
|
|
|
@@ -328,7 +341,7 @@ function STTSection({ socket }: { socket: UglyBotSocket }) {
|
|
|
328
341
|
await new Promise<void>((resolve) => {
|
|
329
342
|
let resolved = false;
|
|
330
343
|
const unsub = socket.on('stt:ready', (data) => {
|
|
331
|
-
if (data.streamId === streamId) {
|
|
344
|
+
if (!data.streamId || data.streamId === streamId) {
|
|
332
345
|
resolved = true;
|
|
333
346
|
unsub();
|
|
334
347
|
resolve();
|
|
@@ -344,15 +357,7 @@ function STTSection({ socket }: { socket: UglyBotSocket }) {
|
|
|
344
357
|
|
|
345
358
|
addLog(`Ready in ${fmt(Date.now() - started)}`, 'ok');
|
|
346
359
|
|
|
347
|
-
|
|
348
|
-
await mic.start();
|
|
349
|
-
|
|
350
|
-
// Start recording with AudioRecorder (uses AudioWorkletNode)
|
|
351
|
-
if (!recorderRef.current) recorderRef.current = new AudioRecorder();
|
|
352
|
-
await recorderRef.current.start((audio) => {
|
|
353
|
-
chunkCountRef.current++;
|
|
354
|
-
socket.send('stt:audio', { streamId, audio });
|
|
355
|
-
});
|
|
360
|
+
await micReady;
|
|
356
361
|
addLog('Recording started', 'ok');
|
|
357
362
|
|
|
358
363
|
setListening(true);
|
|
@@ -365,8 +370,7 @@ function STTSection({ socket }: { socket: UglyBotSocket }) {
|
|
|
365
370
|
if (streamIdRef.current) {
|
|
366
371
|
socket.send('stt:stop', { streamId: streamIdRef.current });
|
|
367
372
|
}
|
|
368
|
-
unsubAll
|
|
369
|
-
socket.release();
|
|
373
|
+
// Don't unsubAll/release here — wait for stt:stopped handler to clean up
|
|
370
374
|
setListening(false);
|
|
371
375
|
}
|
|
372
376
|
|
|
@@ -428,12 +432,14 @@ function STTSection({ socket }: { socket: UglyBotSocket }) {
|
|
|
428
432
|
<div style={{ marginTop: 12 }}>
|
|
429
433
|
{sttMode === 'continuous' ? (
|
|
430
434
|
<Button
|
|
435
|
+
data-id="stt-toggle"
|
|
431
436
|
onClick={listening ? stopListening : () => void startListening()}
|
|
432
437
|
>
|
|
433
438
|
{listening ? 'Stop Listening' : 'Start Listening'}
|
|
434
439
|
</Button>
|
|
435
440
|
) : (
|
|
436
441
|
<button
|
|
442
|
+
data-id="stt-ptt"
|
|
437
443
|
onPointerDown={handlePTTDown}
|
|
438
444
|
onPointerUp={handlePTTUp}
|
|
439
445
|
onPointerLeave={listening ? handlePTTUp : undefined}
|
|
@@ -471,9 +477,9 @@ function STTSection({ socket }: { socket: UglyBotSocket }) {
|
|
|
471
477
|
|
|
472
478
|
{/* Logs */}
|
|
473
479
|
{logs.length > 0 && (
|
|
474
|
-
<div style={{ marginTop: 8, fontSize: '0.85em', opacity: 0.7 }}>
|
|
480
|
+
<div data-id="stt-logs" style={{ marginTop: 8, fontSize: '0.85em', opacity: 0.7 }}>
|
|
475
481
|
{logs.map((entry, i) => (
|
|
476
|
-
<div key={i}>
|
|
482
|
+
<div key={i} data-log-kind={entry.kind}>
|
|
477
483
|
{entry.kind === 'err' ? '✗' : entry.kind === 'ok' ? '✓' : '·'}{' '}
|
|
478
484
|
{entry.msg}
|
|
479
485
|
</div>
|
|
@@ -516,16 +522,19 @@ function TTSSection({ socket }: { socket: UglyBotSocket }) {
|
|
|
516
522
|
|
|
517
523
|
function subscribe(streamId: string) {
|
|
518
524
|
unsubAll();
|
|
525
|
+
addLog(`Subscribing to events for stream ${streamId}`);
|
|
519
526
|
unsubsRef.current.push(
|
|
520
527
|
socket.on('tts:chunk', (data) => {
|
|
528
|
+
addLog(`Got tts:chunk streamId=${data.streamId} (expected=${streamId}) audioLen=${data.audio?.length ?? 0}`);
|
|
521
529
|
if (data.streamId !== streamId) return;
|
|
522
530
|
if (data.audio) {
|
|
523
531
|
ttsAudio.playChunk(data.audio);
|
|
524
|
-
addLog(`
|
|
532
|
+
addLog(`Queued audio chunk (${data.audio.length} b64 chars)`, 'ok');
|
|
525
533
|
}
|
|
526
534
|
}),
|
|
527
535
|
socket.on('tts:word', (data) => {
|
|
528
536
|
if (data.streamId !== streamId) return;
|
|
537
|
+
addLog(`Word: "${data.word}"`);
|
|
529
538
|
if (data.word) {
|
|
530
539
|
setCurrentWord(data.word);
|
|
531
540
|
activeWordIdxRef.current++;
|
|
@@ -540,6 +549,7 @@ function TTSSection({ socket }: { socket: UglyBotSocket }) {
|
|
|
540
549
|
}
|
|
541
550
|
}),
|
|
542
551
|
socket.on('tts:done', (data) => {
|
|
552
|
+
addLog(`Got tts:done streamId=${data.streamId}`);
|
|
543
553
|
if (data.streamId !== streamId) return;
|
|
544
554
|
setPlaying(false);
|
|
545
555
|
setCurrentWord('');
|
|
@@ -548,6 +558,7 @@ function TTSSection({ socket }: { socket: UglyBotSocket }) {
|
|
|
548
558
|
socket.release();
|
|
549
559
|
}),
|
|
550
560
|
socket.on('tts:error', (data) => {
|
|
561
|
+
addLog(`Got tts:error streamId=${data.streamId} msg=${data.message}`, 'err');
|
|
551
562
|
if (data.streamId !== streamId) return;
|
|
552
563
|
setPlaying(false);
|
|
553
564
|
addLog(`TTS error: ${data.message ?? 'unknown'}`, 'err');
|
|
@@ -573,16 +584,29 @@ function TTSSection({ socket }: { socket: UglyBotSocket }) {
|
|
|
573
584
|
|
|
574
585
|
ttsAudio.init();
|
|
575
586
|
addLog(`Voice: ${voice || 'default'}`);
|
|
576
|
-
addLog(
|
|
587
|
+
addLog(`Stream ID: ${streamId}`);
|
|
588
|
+
addLog('Acquiring socket…');
|
|
589
|
+
|
|
590
|
+
try {
|
|
591
|
+
await socket.acquire();
|
|
592
|
+
addLog('Socket acquired', 'ok');
|
|
593
|
+
} catch (err) {
|
|
594
|
+
addLog(`Socket acquire failed: ${err}`, 'err');
|
|
595
|
+
setPlaying(false);
|
|
596
|
+
return;
|
|
597
|
+
}
|
|
577
598
|
|
|
578
|
-
await socket.acquire();
|
|
579
599
|
subscribe(streamId);
|
|
580
|
-
|
|
600
|
+
|
|
601
|
+
const payload = {
|
|
581
602
|
streamId,
|
|
582
603
|
text: text.trim(),
|
|
583
604
|
...(voice ? { voice } : {}),
|
|
584
605
|
requestVisemes: false,
|
|
585
|
-
}
|
|
606
|
+
};
|
|
607
|
+
addLog(`Sending tts:start ${JSON.stringify(payload).slice(0, 200)}`);
|
|
608
|
+
socket.send('tts:start', payload);
|
|
609
|
+
addLog('tts:start sent, waiting for chunks…');
|
|
586
610
|
}
|
|
587
611
|
|
|
588
612
|
function handleStop() {
|