ugly-app 0.1.190 → 0.1.192

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.
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.190";
1
+ export declare const CLI_VERSION = "0.1.192";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.190";
2
+ export const CLI_VERSION = "0.1.192";
3
3
  //# sourceMappingURL=version.js.map
@@ -1,7 +1,7 @@
1
1
  export declare class AudioRecorder {
2
2
  private ctx;
3
3
  private stream;
4
- private processor;
4
+ private worklet;
5
5
  private _listening;
6
6
  private onChunk;
7
7
  get listening(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"AudioRecorder.d.ts","sourceRoot":"","sources":["../../../src/client/audio/AudioRecorder.ts"],"names":[],"mappings":"AAIA,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAA2C;IAE1D,IAAI,SAAS,IAAI,OAAO,CAEvB;IAEK,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BlE,IAAI,IAAI,IAAI;CAWb"}
1
+ {"version":3,"file":"AudioRecorder.d.ts","sourceRoot":"","sources":["../../../src/client/audio/AudioRecorder.ts"],"names":[],"mappings":"AAIA,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAA2C;IAE1D,IAAI,SAAS,IAAI,OAAO,CAEvB;IAEK,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAgClE,IAAI,IAAI,IAAI;CAWb"}
@@ -1,10 +1,10 @@
1
1
  // src/client/audio/AudioRecorder.ts
2
- const CHUNK_SAMPLES = 4096; // 4096 samples at 48kHz ≈ 85ms per chunk
2
+ const WORKLET_URL = new URL('./audioRecorder.worklet.js', import.meta.url).href;
3
3
  const TARGET_SAMPLE_RATE = 48000;
4
4
  export class AudioRecorder {
5
5
  ctx = null;
6
6
  stream = null;
7
- processor = null;
7
+ worklet = null;
8
8
  _listening = false;
9
9
  onChunk = null;
10
10
  get listening() {
@@ -24,24 +24,27 @@ export class AudioRecorder {
24
24
  });
25
25
  this.ctx = new AudioContext({ sampleRate: TARGET_SAMPLE_RATE });
26
26
  const source = this.ctx.createMediaStreamSource(this.stream);
27
- this.processor = this.ctx.createScriptProcessor(CHUNK_SAMPLES, 1, 1);
28
- this.processor.onaudioprocess = (event) => {
29
- const floatData = event.inputBuffer.getChannelData(0);
30
- const int16 = float32ToInt16(floatData);
31
- const base64 = arrayBufferToBase64(int16.buffer);
32
- this.onChunk?.(base64);
27
+ await this.ctx.audioWorklet.addModule(WORKLET_URL);
28
+ this.worklet = new AudioWorkletNode(this.ctx, 'audio-recorder');
29
+ this.worklet.port.onmessage = (event) => {
30
+ if (event.data?.type === 'chunk') {
31
+ const floatData = event.data.samples;
32
+ const int16 = float32ToInt16(floatData);
33
+ const base64 = arrayBufferToBase64(int16.buffer);
34
+ this.onChunk?.(base64);
35
+ }
33
36
  };
34
- source.connect(this.processor);
35
- this.processor.connect(this.ctx.destination);
37
+ source.connect(this.worklet);
38
+ this.worklet.connect(this.ctx.destination);
36
39
  this._listening = true;
37
40
  }
38
41
  stop() {
39
42
  if (!this._listening)
40
43
  return;
41
- this.processor?.disconnect();
44
+ this.worklet?.disconnect();
42
45
  this.stream?.getTracks().forEach((t) => t.stop());
43
46
  this.ctx?.close().catch(() => { });
44
- this.processor = null;
47
+ this.worklet = null;
45
48
  this.stream = null;
46
49
  this.ctx = null;
47
50
  this._listening = false;
@@ -1 +1 @@
1
- {"version":3,"file":"AudioRecorder.js","sourceRoot":"","sources":["../../../src/client/audio/AudioRecorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AudioRecorder.js","sourceRoot":"","sources":["../../../src/client/audio/AudioRecorder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=audioRecorder.worklet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioRecorder.worklet.d.ts","sourceRoot":"","sources":["../../../src/client/audio/audioRecorder.worklet.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ const CHUNK_SAMPLES = 4096;
2
+ class RecorderProcessor extends AudioWorkletProcessor {
3
+ buffer = new Float32Array(CHUNK_SAMPLES);
4
+ offset = 0;
5
+ process(inputs) {
6
+ const input = inputs[0]?.[0];
7
+ if (!input)
8
+ return true;
9
+ let readPos = 0;
10
+ while (readPos < input.length) {
11
+ const remaining = CHUNK_SAMPLES - this.offset;
12
+ const toCopy = Math.min(remaining, input.length - readPos);
13
+ this.buffer.set(input.subarray(readPos, readPos + toCopy), this.offset);
14
+ this.offset += toCopy;
15
+ readPos += toCopy;
16
+ if (this.offset >= CHUNK_SAMPLES) {
17
+ // Send a copy of the filled buffer to the main thread
18
+ const chunk = this.buffer.slice();
19
+ this.port.postMessage({ type: 'chunk', samples: chunk }, [chunk.buffer]);
20
+ this.offset = 0;
21
+ }
22
+ }
23
+ return true;
24
+ }
25
+ }
26
+ registerProcessor('audio-recorder', RecorderProcessor);
27
+ export {};
28
+ //# sourceMappingURL=audioRecorder.worklet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioRecorder.worklet.js","sourceRoot":"","sources":["../../../src/client/audio/audioRecorder.worklet.ts"],"names":[],"mappings":"AAiBA,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,MAAM,iBAAkB,SAAQ,qBAAqB;IAC3C,MAAM,GAAiB,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,GAAG,CAAC,CAAC;IAEnB,OAAO,CAAC,MAAwB;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,OAAO,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACxE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;YACtB,OAAO,IAAI,MAAM,CAAC;YAElB,IAAI,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;gBACjC,sDAAsD;gBACtD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBACzE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,iBAAiB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createSocket.d.ts","sourceRoot":"","sources":["../../src/client/createSocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createSocket.d.ts","sourceRoot":"","sources":["../../src/client/createSocket.ts"],"names":[],"mappings":"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"}
@@ -74,16 +74,20 @@ export function createSocket(opts) {
74
74
  messageQueue.push(serialized);
75
75
  }
76
76
  }
77
- // ─── Public send / emit ────────────────────────────────────────────────────
78
- function socketSend(type, data, timeout = 60000) {
77
+ function socketSend(typeOrMsg, data, timeout = 60000) {
78
+ // Fire-and-forget when called with a message object (used by audio streaming hooks)
79
+ if (typeof typeOrMsg === 'object' && typeOrMsg !== null) {
80
+ enqueueOrSend(JSON.stringify(typeOrMsg));
81
+ return;
82
+ }
79
83
  return new Promise((resolve, reject) => {
80
84
  const id = nextId();
81
85
  const timeoutHandle = setTimeout(() => {
82
86
  pending.delete(id);
83
- reject(new Error(`Request timeout: ${type}`));
87
+ reject(new Error(`Request timeout: ${typeOrMsg}`));
84
88
  }, timeout);
85
89
  pending.set(id, { resolve, reject, timeout: timeoutHandle });
86
- enqueueOrSend(JSON.stringify({ type, id, data }));
90
+ enqueueOrSend(JSON.stringify({ type: typeOrMsg, id, data }));
87
91
  });
88
92
  }
89
93
  function socketEmit(type, data) {
@@ -1 +1 @@
1
- {"version":3,"file":"createSocket.js","sourceRoot":"","sources":["../../src/client/createSocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createSocket.js","sourceRoot":"","sources":["../../src/client/createSocket.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Kagi.d.ts","sourceRoot":"","sources":["../../../../src/server/ai/providers/Kagi.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAiFvE,eAAO,MAAM,qBAAqB,EAAE,iBAkDnC,CAAC"}
1
+ {"version":3,"file":"Kagi.d.ts","sourceRoot":"","sources":["../../../../src/server/ai/providers/Kagi.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAuFvE,eAAO,MAAM,qBAAqB,EAAE,iBAkDnC,CAAC"}
@@ -42,7 +42,13 @@ async function kagiRequest(method, path, body) {
42
42
  const text = await res.text().catch(() => '');
43
43
  throw new Error(`[Kagi] ${method} ${path} failed: ${res.status} ${text}`);
44
44
  }
45
- return (await res.json());
45
+ const json = (await res.json());
46
+ // Kagi can return 200 with errors in the response body
47
+ if (Array.isArray(json.error) && json.error.length > 0) {
48
+ const msgs = json.error.map((e) => e.msg || `code ${e.code}`).join('; ');
49
+ throw new Error(`[Kagi] ${method} ${path}: ${msgs}`);
50
+ }
51
+ return json;
46
52
  }
47
53
  finally {
48
54
  clearTimeout(timer);
@@ -1 +1 @@
1
- {"version":3,"file":"Kagi.js","sourceRoot":"","sources":["../../../../src/server/ai/providers/Kagi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Kagi.js","sourceRoot":"","sources":["../../../../src/server/ai/providers/Kagi.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.190",
3
+ "version": "0.1.192",
4
4
  "type": "module",
5
5
  "main": "./dist/server/index.js",
6
6
  "exports": {
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.190";
2
+ export const CLI_VERSION = "0.1.192";
@@ -1,11 +1,11 @@
1
1
  // src/client/audio/AudioRecorder.ts
2
- const CHUNK_SAMPLES = 4096; // 4096 samples at 48kHz ≈ 85ms per chunk
2
+ const WORKLET_URL = new URL('./audioRecorder.worklet.js', import.meta.url).href;
3
3
  const TARGET_SAMPLE_RATE = 48000;
4
4
 
5
5
  export class AudioRecorder {
6
6
  private ctx: AudioContext | null = null;
7
7
  private stream: MediaStream | null = null;
8
- private processor: ScriptProcessorNode | null = null;
8
+ private worklet: AudioWorkletNode | null = null;
9
9
  private _listening = false;
10
10
  private onChunk: ((base64: string) => void) | null = null;
11
11
 
@@ -29,25 +29,28 @@ export class AudioRecorder {
29
29
  this.ctx = new AudioContext({ sampleRate: TARGET_SAMPLE_RATE });
30
30
  const source = this.ctx.createMediaStreamSource(this.stream);
31
31
 
32
- this.processor = this.ctx.createScriptProcessor(CHUNK_SAMPLES, 1, 1);
33
- this.processor.onaudioprocess = (event) => {
34
- const floatData = event.inputBuffer.getChannelData(0);
35
- const int16 = float32ToInt16(floatData);
36
- const base64 = arrayBufferToBase64(int16.buffer as ArrayBuffer);
37
- this.onChunk?.(base64);
32
+ await this.ctx.audioWorklet.addModule(WORKLET_URL);
33
+ this.worklet = new AudioWorkletNode(this.ctx, 'audio-recorder');
34
+ this.worklet.port.onmessage = (event: MessageEvent) => {
35
+ if (event.data?.type === 'chunk') {
36
+ const floatData = event.data.samples as Float32Array;
37
+ const int16 = float32ToInt16(floatData);
38
+ const base64 = arrayBufferToBase64(int16.buffer as ArrayBuffer);
39
+ this.onChunk?.(base64);
40
+ }
38
41
  };
39
42
 
40
- source.connect(this.processor);
41
- this.processor.connect(this.ctx.destination);
43
+ source.connect(this.worklet);
44
+ this.worklet.connect(this.ctx.destination);
42
45
  this._listening = true;
43
46
  }
44
47
 
45
48
  stop(): void {
46
49
  if (!this._listening) return;
47
- this.processor?.disconnect();
50
+ this.worklet?.disconnect();
48
51
  this.stream?.getTracks().forEach((t) => t.stop());
49
52
  this.ctx?.close().catch(() => {});
50
- this.processor = null;
53
+ this.worklet = null;
51
54
  this.stream = null;
52
55
  this.ctx = null;
53
56
  this._listening = false;
@@ -0,0 +1,47 @@
1
+ // src/client/audio/audioRecorder.worklet.ts
2
+ // Runs in AudioWorkletGlobalScope — no imports
3
+ declare class AudioWorkletProcessor {
4
+ readonly port: MessagePort;
5
+ constructor();
6
+ process(
7
+ inputs: Float32Array[][],
8
+ outputs: Float32Array[][],
9
+ parameters: Record<string, Float32Array>,
10
+ ): boolean;
11
+ }
12
+ declare function registerProcessor(
13
+ name: string,
14
+ processorCtor: new () => AudioWorkletProcessor,
15
+ ): void;
16
+ declare const sampleRate: number;
17
+
18
+ const CHUNK_SAMPLES = 4096;
19
+
20
+ class RecorderProcessor extends AudioWorkletProcessor {
21
+ private buffer: Float32Array = new Float32Array(CHUNK_SAMPLES);
22
+ private offset = 0;
23
+
24
+ process(inputs: Float32Array[][]): boolean {
25
+ const input = inputs[0]?.[0];
26
+ if (!input) return true;
27
+
28
+ let readPos = 0;
29
+ while (readPos < input.length) {
30
+ const remaining = CHUNK_SAMPLES - this.offset;
31
+ const toCopy = Math.min(remaining, input.length - readPos);
32
+ this.buffer.set(input.subarray(readPos, readPos + toCopy), this.offset);
33
+ this.offset += toCopy;
34
+ readPos += toCopy;
35
+
36
+ if (this.offset >= CHUNK_SAMPLES) {
37
+ // Send a copy of the filled buffer to the main thread
38
+ const chunk = this.buffer.slice();
39
+ this.port.postMessage({ type: 'chunk', samples: chunk }, [chunk.buffer]);
40
+ this.offset = 0;
41
+ }
42
+ }
43
+ return true;
44
+ }
45
+ }
46
+
47
+ registerProcessor('audio-recorder', RecorderProcessor);
@@ -201,15 +201,22 @@ export function createSocket<R extends AppRegistryBase>(
201
201
 
202
202
  // ─── Public send / emit ────────────────────────────────────────────────────
203
203
 
204
- function socketSend(type: string, data: object, timeout = 60000): Promise<unknown> {
204
+ function socketSend(typeOrMsg: string, data: object, timeout?: number): Promise<unknown>;
205
+ function socketSend(typeOrMsg: object): void;
206
+ function socketSend(typeOrMsg: string | object, data?: object, timeout = 60000): Promise<unknown> | void {
207
+ // Fire-and-forget when called with a message object (used by audio streaming hooks)
208
+ if (typeof typeOrMsg === 'object' && typeOrMsg !== null) {
209
+ enqueueOrSend(JSON.stringify(typeOrMsg));
210
+ return;
211
+ }
205
212
  return new Promise((resolve, reject) => {
206
213
  const id = nextId();
207
214
  const timeoutHandle = setTimeout(() => {
208
215
  pending.delete(id);
209
- reject(new Error(`Request timeout: ${type}`));
216
+ reject(new Error(`Request timeout: ${typeOrMsg}`));
210
217
  }, timeout);
211
218
  pending.set(id, { resolve, reject, timeout: timeoutHandle });
212
- enqueueOrSend(JSON.stringify({ type, id, data }));
219
+ enqueueOrSend(JSON.stringify({ type: typeOrMsg, id, data }));
213
220
  });
214
221
  }
215
222
 
@@ -81,7 +81,13 @@ async function kagiRequest<T>(
81
81
  const text = await res.text().catch(() => '');
82
82
  throw new Error(`[Kagi] ${method} ${path} failed: ${res.status} ${text}`);
83
83
  }
84
- return (await res.json()) as T;
84
+ const json = (await res.json()) as T & { error?: { code: number; msg: string }[] };
85
+ // Kagi can return 200 with errors in the response body
86
+ if (Array.isArray(json.error) && json.error.length > 0) {
87
+ const msgs = json.error.map((e) => e.msg || `code ${e.code}`).join('; ');
88
+ throw new Error(`[Kagi] ${method} ${path}: ${msgs}`);
89
+ }
90
+ return json as T;
85
91
  } finally {
86
92
  clearTimeout(timer);
87
93
  }
@@ -34,6 +34,9 @@ export default function AITestPage(): React.ReactElement {
34
34
  const [logs, setLogs] = useState<LogEntry[]>([]);
35
35
 
36
36
  function addLog(msg: string, kind: LogEntry['kind'] = 'info'): void {
37
+ const prefix = '[AITest]';
38
+ if (kind === 'err') console.error(prefix, msg);
39
+ else console.log(prefix, msg);
37
40
  setLogs((prev) => [...prev, { ts: Date.now(), msg, kind }]);
38
41
  }
39
42
 
@@ -1,5 +1,6 @@
1
1
  import React, { useCallback, useEffect, useRef, useState } from 'react';
2
2
  import {
3
+ AudioRecorder,
3
4
  BarsVisualizer,
4
5
  BlobVisualizer,
5
6
  Button,
@@ -265,12 +266,13 @@ function STTSection({ socket }: { socket: RawSocket }) {
265
266
 
266
267
  const mic = useMicAnalyzer();
267
268
  const streamIdRef = useRef<string | null>(null);
268
- const recorderCtxRef = useRef<AudioContext | null>(null);
269
- // eslint-disable-next-line @typescript-eslint/no-deprecated
270
- const processorRef = useRef<ScriptProcessorNode | null>(null);
271
- const recorderStreamRef = useRef<MediaStream | null>(null);
269
+ const recorderRef = useRef<AudioRecorder | null>(null);
270
+ const chunkCountRef = useRef(0);
272
271
 
273
272
  function addLog(msg: string, kind: LogEntry['kind'] = 'info') {
273
+ const prefix = '[STT]';
274
+ if (kind === 'err') console.error(prefix, msg);
275
+ else console.log(prefix, msg);
274
276
  setLogs((prev) => [...prev, { ts: Date.now(), msg, kind }]);
275
277
  }
276
278
 
@@ -279,61 +281,28 @@ function STTSection({ socket }: { socket: RawSocket }) {
279
281
  const m = msg as { type: string; streamId: string; text?: string; isFinal?: boolean; message?: string };
280
282
  if (m.streamId !== streamIdRef.current) return;
281
283
  if (m.type === 'stt:transcript') {
284
+ addLog(`Transcript${m.isFinal ? ' (final)' : ''}: ${m.text ?? ''}`, m.isFinal ? 'ok' : 'info');
282
285
  setTranscript(m.text ?? '');
283
286
  if (m.isFinal && m.text) {
284
287
  setTranscriptHistory((prev) => [...prev, m.text!]);
285
288
  setTranscript('');
286
289
  }
287
290
  } else if (m.type === 'stt:error') {
288
- addLog(m.message ?? 'STT error', 'err');
291
+ addLog(`STT error: ${m.message ?? 'unknown'}`, 'err');
289
292
  stopListening();
290
293
  } else if (m.type === 'stt:stopped') {
291
- addLog('STT stopped', 'ok');
294
+ addLog(`STT stopped — sent ${chunkCountRef.current} audio chunks`, 'ok');
292
295
  }
293
296
  },
294
297
  [],
295
298
  );
296
299
 
297
- function startRecording(stream: MediaStream) {
298
- const ctx = new AudioContext({ sampleRate: 48000 });
299
- const source = ctx.createMediaStreamSource(stream);
300
- // eslint-disable-next-line @typescript-eslint/no-deprecated
301
- const processor = ctx.createScriptProcessor(4096, 1, 1);
302
- // eslint-disable-next-line @typescript-eslint/no-deprecated
303
- processor.onaudioprocess = (e) => {
304
- // eslint-disable-next-line @typescript-eslint/no-deprecated
305
- const floatData = e.inputBuffer.getChannelData(0);
306
- const int16 = new Int16Array(floatData.length);
307
- for (let i = 0; i < floatData.length; i++) {
308
- const clamped = Math.max(-1, Math.min(1, floatData[i] ?? 0));
309
- int16[i] = clamped < 0 ? clamped * 32768 : clamped * 32767;
310
- }
311
- const bytes = new Uint8Array(int16.buffer);
312
- let binary = '';
313
- for (const byte of bytes) binary += String.fromCharCode(byte);
314
- const audio = btoa(binary);
315
- socket.send({ type: 'stt:audio', streamId: streamIdRef.current, audio });
316
- };
317
- source.connect(processor);
318
- processor.connect(ctx.destination);
319
- recorderCtxRef.current = ctx;
320
- processorRef.current = processor;
321
- }
322
-
323
- function stopRecording() {
324
- processorRef.current?.disconnect();
325
- void recorderCtxRef.current?.close().catch(() => { /* noop */ });
326
- recorderStreamRef.current?.getTracks().forEach((t) => { t.stop(); });
327
- processorRef.current = null;
328
- recorderCtxRef.current = null;
329
- recorderStreamRef.current = null;
330
- }
331
-
332
300
  async function startListening() {
333
301
  const streamId = `stt-${++sttCounter}`;
334
302
  streamIdRef.current = streamId;
335
303
  setTranscript('');
336
304
  setLogs([]);
305
+ chunkCountRef.current = 0;
337
306
 
338
307
  const started = Date.now();
339
308
  addLog(`Mode: ${sttMode}${sttMode === 'continuous' ? ' (VAD enabled)' : ''}`);
@@ -369,19 +338,20 @@ function STTSection({ socket }: { socket: RawSocket }) {
369
338
  // Start mic for visualization
370
339
  await mic.start();
371
340
 
372
- // Start separate recording stream for STT
373
- const recStream = await navigator.mediaDevices.getUserMedia({
374
- audio: { sampleRate: 48000, channelCount: 1, echoCancellation: true, noiseSuppression: true },
341
+ // Start recording with AudioRecorder (uses AudioWorkletNode)
342
+ if (!recorderRef.current) recorderRef.current = new AudioRecorder();
343
+ await recorderRef.current.start((audio) => {
344
+ chunkCountRef.current++;
345
+ socket.send({ type: 'stt:audio', streamId: streamIdRef.current, audio });
375
346
  });
376
- recorderStreamRef.current = recStream;
377
- startRecording(recStream);
347
+ addLog('Recording started', 'ok');
378
348
 
379
349
  setListening(true);
380
350
  addLog('Listening…');
381
351
  }
382
352
 
383
353
  function stopListening() {
384
- stopRecording();
354
+ recorderRef.current?.stop();
385
355
  mic.stop();
386
356
  if (streamIdRef.current) {
387
357
  socket.send({ type: 'stt:stop', streamId: streamIdRef.current });
@@ -401,7 +371,7 @@ function STTSection({ socket }: { socket: RawSocket }) {
401
371
  // Cleanup on unmount
402
372
  useEffect(() => { // eslint-disable-line react-hooks/exhaustive-deps
403
373
  return () => {
404
- stopRecording();
374
+ recorderRef.current?.stop();
405
375
  mic.stop();
406
376
  if (streamIdRef.current) {
407
377
  socket.send({ type: 'stt:stop', streamId: streamIdRef.current });
@@ -521,6 +491,9 @@ function TTSSection({ socket }: { socket: RawSocket }) {
521
491
  const activeWordIdxRef = useRef(-1);
522
492
 
523
493
  function addLog(msg: string, kind: LogEntry['kind'] = 'info') {
494
+ const prefix = '[TTS]';
495
+ if (kind === 'err') console.error(prefix, msg);
496
+ else console.log(prefix, msg);
524
497
  setLogs((prev) => [...prev, { ts: Date.now(), msg, kind }]);
525
498
  }
526
499
 
@@ -531,6 +504,7 @@ function TTSSection({ socket }: { socket: RawSocket }) {
531
504
 
532
505
  if (m.type === 'tts:chunk' && m.audio) {
533
506
  ttsAudio.playChunk(m.audio);
507
+ addLog(`Received audio chunk (${m.audio.length} b64 chars)`);
534
508
  } else if (m.type === 'tts:word' && m.word) {
535
509
  setCurrentWord(m.word);
536
510
  activeWordIdxRef.current++;
@@ -549,7 +523,7 @@ function TTSSection({ socket }: { socket: RawSocket }) {
549
523
  socket.off('message', handleMessage);
550
524
  } else if (m.type === 'tts:error') {
551
525
  setPlaying(false);
552
- addLog(m.message ?? 'TTS error', 'err');
526
+ addLog(`TTS error: ${m.message ?? 'unknown'}`, 'err');
553
527
  socket.off('message', handleMessage);
554
528
  }
555
529
  },
@@ -8,6 +8,16 @@ interface SentEntry {
8
8
  sentAt: string;
9
9
  }
10
10
 
11
+ interface LogEntry {
12
+ ts: number;
13
+ msg: string;
14
+ kind: 'info' | 'ok' | 'err';
15
+ }
16
+
17
+ function fmt(ms: number): string {
18
+ return ms < 1000 ? `${ms}ms` : `${(ms / 1000).toFixed(1)}s`;
19
+ }
20
+
11
21
  export default function EmailTestPage(): React.ReactElement {
12
22
  const { socket } = useApp();
13
23
  const [to, setTo] = useState('');
@@ -15,15 +25,23 @@ export default function EmailTestPage(): React.ReactElement {
15
25
  const [html, setHtml] = useState('<h1>Hello!</h1>\n<p>This is a test email sent from ugly-app.</p>');
16
26
  const [replyId, setReplyId] = useState('');
17
27
  const [sending, setSending] = useState(false);
18
- const [error, setError] = useState('');
19
28
  const [sent, setSent] = useState<SentEntry[]>([]);
29
+ const [logs, setLogs] = useState<LogEntry[]>([]);
30
+
31
+ function addLog(msg: string, kind: LogEntry['kind'] = 'info') {
32
+ const prefix = '[EmailTest]';
33
+ if (kind === 'err') console.error(prefix, msg);
34
+ else console.log(prefix, msg);
35
+ setLogs((prev) => [...prev, { ts: Date.now(), msg, kind }]);
36
+ }
20
37
 
21
38
  async function handleSend(): Promise<void> {
22
39
  const trimmedTo = to.trim();
23
40
  if (!trimmedTo) return;
24
41
 
25
42
  setSending(true);
26
- setError('');
43
+ const started = Date.now();
44
+ addLog(`Sending to ${trimmedTo} — subject: "${subject.trim() || 'Test email'}"${replyId.trim() ? ` — replyId: ${replyId.trim()}` : ''}`);
27
45
  try {
28
46
  await socket.request('sendTestEmail', {
29
47
  to: trimmedTo,
@@ -31,13 +49,14 @@ export default function EmailTestPage(): React.ReactElement {
31
49
  html,
32
50
  id: replyId.trim() || undefined,
33
51
  });
52
+ addLog(`Sent in ${fmt(Date.now() - started)}`, 'ok');
34
53
  setSent((prev) => [
35
54
  { to: trimmedTo, subject, id: replyId.trim() || null, sentAt: new Date().toISOString() },
36
55
  ...prev,
37
56
  ]);
38
57
  setTo('');
39
58
  } catch (err) {
40
- setError(err instanceof Error ? err.message : String(err));
59
+ addLog(`Failed: ${err instanceof Error ? err.message : String(err)}`, 'err');
41
60
  } finally {
42
61
  setSending(false);
43
62
  }
@@ -99,12 +118,25 @@ export default function EmailTestPage(): React.ReactElement {
99
118
  style={{ width: '100%', padding: 8, borderRadius: 4, border: '1px solid #444', fontFamily: 'monospace', fontSize: '0.9em' }}
100
119
  />
101
120
  </label>
102
- <Button onClick={() => { void handleSend(); }} disabled={sending || !to.trim()}>Send Email</Button>
103
- {sending && <p>Sending…</p>}
104
- {error && <p style={{ color: '#f44' }}>{error}</p>}
121
+ <Button onClick={() => { void handleSend(); }} disabled={sending || !to.trim()}>
122
+ {sending ? 'Sending…' : 'Send Email'}
123
+ </Button>
105
124
  </div>
106
125
  </Card>
107
126
 
127
+ {/* Log panel */}
128
+ {logs.length > 0 && (
129
+ <div style={{ marginTop: 8, fontSize: '0.85em', opacity: 0.7 }}>
130
+ {logs.map((entry, i) => (
131
+ <div key={i}>
132
+ {entry.kind === 'err' ? '✗' : entry.kind === 'ok' ? '✓' : '·'}{' '}
133
+ {entry.msg}
134
+ </div>
135
+ ))}
136
+ {sending && <div>· waiting…</div>}
137
+ </div>
138
+ )}
139
+
108
140
  {sent.length > 0 && (
109
141
  <Card>
110
142
  <h2>Sent Emails</h2>
@@ -50,6 +50,9 @@ export default function KagiTestPage(): React.ReactElement {
50
50
  const [summaryResult, setSummaryResult] = useState('');
51
51
 
52
52
  function addLog(msg: string, kind: LogEntry['kind'] = 'info'): void {
53
+ const prefix = '[KagiTest]';
54
+ if (kind === 'err') console.error(prefix, msg);
55
+ else console.log(prefix, msg);
53
56
  setLogs((prev) => [...prev, { ts: Date.now(), msg, kind }]);
54
57
  }
55
58
 
@@ -74,11 +77,11 @@ export default function KagiTestPage(): React.ReactElement {
74
77
  query,
75
78
  })) as SearchResult;
76
79
  const elapsed = Date.now() - started;
77
- addLog(`Done in ${fmt(elapsed)} — ${result.items.length} results`, 'ok');
80
+ addLog(`Done in ${fmt(elapsed)} — ${result.items.length} results${result.related ? `, ${result.related.length} related` : ''}`, 'ok');
78
81
  setSearchResult(result);
79
82
  } else if (mode === 'summarize') {
80
83
  if (!url.trim() && !query.trim()) return;
81
- addLog(`Summarizing${url ? `: ${url}` : ''}…`);
84
+ addLog(`Summarizing${url ? `: ${url}` : ' text input'}…`);
82
85
  const { summary } = (await socket.request('kagiSummarize', {
83
86
  url: url || undefined,
84
87
  text: !url ? query : undefined,
@@ -106,8 +109,9 @@ export default function KagiTestPage(): React.ReactElement {
106
109
  setSearchResult(result);
107
110
  }
108
111
  } catch (err) {
112
+ const elapsed = Date.now() - started;
109
113
  const msg = err instanceof Error ? err.message : String(err);
110
- addLog(msg, 'err');
114
+ addLog(`Failed in ${fmt(elapsed)}: ${msg}`, 'err');
111
115
  } finally {
112
116
  setLoading(false);
113
117
  }
@@ -18,21 +18,31 @@ export default function PushTestPage(): React.ReactElement {
18
18
  const [loading, setLoading] = useState(false);
19
19
 
20
20
  function addLog(msg: string, kind: LogEntry['kind'] = 'info') {
21
+ const prefix = '[PushTest]';
22
+ if (kind === 'err') console.error(prefix, msg);
23
+ else console.log(prefix, msg);
21
24
  setLogs((prev) => [...prev, { ts: Date.now(), msg, kind }]);
22
25
  }
23
26
 
27
+ function fmt(ms: number): string {
28
+ return ms < 1000 ? `${ms}ms` : `${(ms / 1000).toFixed(1)}s`;
29
+ }
30
+
24
31
  async function handleInit() {
25
32
  setLoading(true);
33
+ const started = Date.now();
26
34
  try {
27
35
  addLog('Checking push registration...');
28
36
  const result = await initPush();
29
37
  setRegistered(result.registered);
30
38
  addLog(
31
- result.registered ? 'Device is registered for push' : 'Device is NOT registered',
39
+ result.registered
40
+ ? `Device is registered for push (${fmt(Date.now() - started)})`
41
+ : `Device is NOT registered (${fmt(Date.now() - started)})`,
32
42
  result.registered ? 'ok' : 'info',
33
43
  );
34
44
  } catch (err) {
35
- addLog(`Init failed: ${err instanceof Error ? err.message : String(err)}`, 'err');
45
+ addLog(`Init failed in ${fmt(Date.now() - started)}: ${err instanceof Error ? err.message : String(err)}`, 'err');
36
46
  } finally {
37
47
  setLoading(false);
38
48
  }
@@ -40,17 +50,18 @@ export default function PushTestPage(): React.ReactElement {
40
50
 
41
51
  async function handleRegister() {
42
52
  setLoading(true);
53
+ const started = Date.now();
43
54
  try {
44
55
  addLog('Requesting push permission...');
45
56
  const result = await requestPushPermission();
46
57
  if (result.success) {
47
58
  setRegistered(true);
48
- addLog('Push registered successfully!', 'ok');
59
+ addLog(`Push registered in ${fmt(Date.now() - started)}`, 'ok');
49
60
  } else {
50
- addLog(`Registration failed: ${result.error ?? 'unknown'}`, 'err');
61
+ addLog(`Registration failed in ${fmt(Date.now() - started)}: ${result.error ?? 'unknown'}`, 'err');
51
62
  }
52
63
  } catch (err) {
53
- addLog(`Register failed: ${err instanceof Error ? err.message : String(err)}`, 'err');
64
+ addLog(`Register failed in ${fmt(Date.now() - started)}: ${err instanceof Error ? err.message : String(err)}`, 'err');
54
65
  } finally {
55
66
  setLoading(false);
56
67
  }
@@ -59,20 +70,24 @@ export default function PushTestPage(): React.ReactElement {
59
70
  async function handleSend() {
60
71
  if (!targetUserId.trim() || !title.trim()) return;
61
72
  setLoading(true);
73
+ const started = Date.now();
62
74
  try {
63
- addLog(`Sending push to ${targetUserId}...`);
75
+ addLog(`Sending push to ${targetUserId} — "${title.trim()}"...`);
64
76
  const result = await socket.request('sendPush', {
65
77
  targetUserId: targetUserId.trim(),
66
78
  title: title.trim(),
67
79
  body: body.trim(),
68
80
  path: '',
69
81
  });
82
+ const sent = (result as { sent: boolean }).sent;
70
83
  addLog(
71
- (result as { sent: boolean }).sent ? 'Push sent!' : 'Push not delivered (no devices?)',
72
- (result as { sent: boolean }).sent ? 'ok' : 'err',
84
+ sent
85
+ ? `Push sent in ${fmt(Date.now() - started)}`
86
+ : `Push not delivered in ${fmt(Date.now() - started)} (no devices?)`,
87
+ sent ? 'ok' : 'err',
73
88
  );
74
89
  } catch (err) {
75
- addLog(`Send failed: ${err instanceof Error ? err.message : String(err)}`, 'err');
90
+ addLog(`Send failed in ${fmt(Date.now() - started)}: ${err instanceof Error ? err.message : String(err)}`, 'err');
76
91
  } finally {
77
92
  setLoading(false);
78
93
  }
@@ -8,28 +8,48 @@ interface UploadEntry {
8
8
  url: string;
9
9
  }
10
10
 
11
+ interface LogEntry {
12
+ ts: number;
13
+ msg: string;
14
+ kind: 'info' | 'ok' | 'err';
15
+ }
16
+
11
17
  function formatSize(bytes: number): string {
12
18
  if (bytes < 1024) return `${bytes} B`;
13
19
  if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;
14
20
  return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
15
21
  }
16
22
 
23
+ function fmt(ms: number): string {
24
+ return ms < 1000 ? `${ms}ms` : `${(ms / 1000).toFixed(1)}s`;
25
+ }
26
+
17
27
  export default function UploadTestPage(): React.ReactElement {
18
28
  const { socket } = useApp();
19
29
  const [uploads, setUploads] = useState<UploadEntry[]>([]);
20
30
  const [uploading, setUploading] = useState(false);
21
- const [error, setError] = useState('');
31
+ const [logs, setLogs] = useState<LogEntry[]>([]);
22
32
  const [dragOver, setDragOver] = useState(false);
23
33
 
34
+ function addLog(msg: string, kind: LogEntry['kind'] = 'info') {
35
+ const prefix = '[UploadTest]';
36
+ if (kind === 'err') console.error(prefix, msg);
37
+ else console.log(prefix, msg);
38
+ setLogs((prev) => [...prev, { ts: Date.now(), msg, kind }]);
39
+ }
40
+
24
41
  async function uploadFile(file: File): Promise<void> {
25
42
  setUploading(true);
26
- setError('');
43
+ const started = Date.now();
44
+ addLog(`Uploading "${file.name}" (${formatSize(file.size)}, ${file.type || 'unknown type'})`);
27
45
  try {
28
46
  const key = `uploads/${Date.now()}-${file.name}`;
47
+ addLog(`Key: ${key}`);
29
48
  const url = await socket.uploadFile(file, key);
49
+ addLog(`Done in ${fmt(Date.now() - started)} — ${url}`, 'ok');
30
50
  setUploads((prev) => [...prev, { name: file.name, size: file.size, type: file.type, url }]);
31
51
  } catch (err) {
32
- setError(err instanceof Error ? err.message : String(err));
52
+ addLog(`Failed: ${err instanceof Error ? err.message : String(err)}`, 'err');
33
53
  } finally {
34
54
  setUploading(false);
35
55
  }
@@ -79,10 +99,21 @@ export default function UploadTestPage(): React.ReactElement {
79
99
  style={{ marginTop: 8 }}
80
100
  />
81
101
  </div>
82
- {uploading && <p>Uploading…</p>}
83
- {error && <p style={{ color: '#f44' }}>{error}</p>}
84
102
  </Card>
85
103
 
104
+ {/* Log panel */}
105
+ {logs.length > 0 && (
106
+ <div style={{ marginTop: 8, fontSize: '0.85em', opacity: 0.7 }}>
107
+ {logs.map((entry, i) => (
108
+ <div key={i}>
109
+ {entry.kind === 'err' ? '✗' : entry.kind === 'ok' ? '✓' : '·'}{' '}
110
+ {entry.msg}
111
+ </div>
112
+ ))}
113
+ {uploading && <div>· waiting…</div>}
114
+ </div>
115
+ )}
116
+
86
117
  {uploads.length > 0 && (
87
118
  <Card>
88
119
  <h2>Uploaded Files</h2>