dsh-live-voice-debugger 0.4.0 → 0.5.0
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/lib/client.js +77 -24
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -45,6 +45,25 @@ var DIAGNOSTIC_KEY = /* @__PURE__ */ Symbol.for("dsh-live-voice.diagnostics.v1")
|
|
|
45
45
|
var DIAGNOSTIC_CHANGED = "dsh-live-voice:diagnostics-changed";
|
|
46
46
|
|
|
47
47
|
// src/inspector.ts
|
|
48
|
+
function semantic(module2, value) {
|
|
49
|
+
if (value == null) return null;
|
|
50
|
+
if (module2 === "vadRuntime")
|
|
51
|
+
return {
|
|
52
|
+
status: value.status ?? null,
|
|
53
|
+
workerActive: value.workerActive ?? null,
|
|
54
|
+
activeSources: value.activeSources ?? null,
|
|
55
|
+
assets: value.assets ?? null
|
|
56
|
+
};
|
|
57
|
+
const omitted = {
|
|
58
|
+
capture: ["level"],
|
|
59
|
+
vad: ["probability", "silenceMs"],
|
|
60
|
+
chunker: ["bufferedSamples", "bufferedChunks", "silenceSamples", "durationMs"]
|
|
61
|
+
};
|
|
62
|
+
if (!omitted[module2]) return value;
|
|
63
|
+
const result = { ...value };
|
|
64
|
+
for (const key of omitted[module2]) delete result[key];
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
48
67
|
function createInspector(source, now = Date.now, limit = 200) {
|
|
49
68
|
let previous = null;
|
|
50
69
|
let sequence = 0;
|
|
@@ -56,22 +75,56 @@ function createInspector(source, now = Date.now, limit = 200) {
|
|
|
56
75
|
previous = next;
|
|
57
76
|
return;
|
|
58
77
|
}
|
|
78
|
+
const append = (sessionId, module2, before, after) => {
|
|
79
|
+
if (!previous || JSON.stringify(before) === JSON.stringify(after)) return;
|
|
80
|
+
entries.push({
|
|
81
|
+
sequence: ++sequence,
|
|
82
|
+
timeMs: now(),
|
|
83
|
+
sessionId,
|
|
84
|
+
module: module2,
|
|
85
|
+
level: module2.endsWith("error") && after?.present ? "error" : "debug",
|
|
86
|
+
before,
|
|
87
|
+
after
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
append(
|
|
91
|
+
null,
|
|
92
|
+
"vadRuntime",
|
|
93
|
+
semantic("vadRuntime", previous?.vadRuntime),
|
|
94
|
+
semantic("vadRuntime", next?.vadRuntime)
|
|
95
|
+
);
|
|
96
|
+
for (const sourceId of /* @__PURE__ */ new Set([
|
|
97
|
+
...Object.keys(previous?.audioSources ?? {}),
|
|
98
|
+
...Object.keys(next?.audioSources ?? {})
|
|
99
|
+
])) {
|
|
100
|
+
const old = previous?.audioSources?.[sourceId];
|
|
101
|
+
const current = next?.audioSources?.[sourceId];
|
|
102
|
+
if (sourceId === "vad") {
|
|
103
|
+
append(
|
|
104
|
+
null,
|
|
105
|
+
"audioSources.vad",
|
|
106
|
+
semantic("vadRuntime", old),
|
|
107
|
+
semantic("vadRuntime", current)
|
|
108
|
+
);
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
for (const module2 of /* @__PURE__ */ new Set([...Object.keys(old ?? {}), ...Object.keys(current ?? {})])) {
|
|
112
|
+
append(
|
|
113
|
+
null,
|
|
114
|
+
"audioSources." + sourceId + "." + module2,
|
|
115
|
+
semantic(module2, old?.[module2]),
|
|
116
|
+
semantic(module2, current?.[module2])
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
59
120
|
for (const [sessionId, session] of Object.entries(next?.sessions ?? {})) {
|
|
60
121
|
for (const [module2, value] of Object.entries(session)) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
timeMs: now(),
|
|
68
|
-
sessionId,
|
|
69
|
-
module: module2,
|
|
70
|
-
level: module2 === "error" && value?.present ? "error" : "debug",
|
|
71
|
-
before: before ?? null,
|
|
72
|
-
after: normalized
|
|
73
|
-
});
|
|
74
|
-
}
|
|
122
|
+
append(
|
|
123
|
+
sessionId,
|
|
124
|
+
module2,
|
|
125
|
+
semantic(module2, previous?.sessions?.[sessionId]?.[module2]),
|
|
126
|
+
semantic(module2, value)
|
|
127
|
+
);
|
|
75
128
|
}
|
|
76
129
|
}
|
|
77
130
|
entries = entries.slice(-Math.max(1, limit));
|
|
@@ -256,9 +309,9 @@ var dictionaries = {
|
|
|
256
309
|
refreshRate: "Frequ\xEAncia de atualiza\xE7\xE3o",
|
|
257
310
|
resume: "Retomar atualiza\xE7\xF5es",
|
|
258
311
|
states: "Estados atuais",
|
|
259
|
-
title: "Depurador
|
|
312
|
+
title: "Depurador da Voz ao Vivo",
|
|
260
313
|
transitions: "Transi\xE7\xF5es de estado recentes",
|
|
261
|
-
waiting: "Aguardando um runtime
|
|
314
|
+
waiting: "Aguardando um runtime da Voz ao Vivo compat\xEDvel."
|
|
262
315
|
},
|
|
263
316
|
es: {
|
|
264
317
|
activate: "Abrir depurador en una ventana separada",
|
|
@@ -279,9 +332,9 @@ var dictionaries = {
|
|
|
279
332
|
refreshRate: "Frecuencia de actualizaci\xF3n",
|
|
280
333
|
resume: "Reanudar actualizaciones",
|
|
281
334
|
states: "Estados actuales",
|
|
282
|
-
title: "Depurador
|
|
335
|
+
title: "Depurador de Voz en vivo",
|
|
283
336
|
transitions: "Transiciones de estado recientes",
|
|
284
|
-
waiting: "Esperando un runtime
|
|
337
|
+
waiting: "Esperando un runtime de Voz en vivo compatible."
|
|
285
338
|
},
|
|
286
339
|
fr: {
|
|
287
340
|
activate: "Ouvrir le d\xE9bogueur dans une fen\xEAtre s\xE9par\xE9e",
|
|
@@ -302,9 +355,9 @@ var dictionaries = {
|
|
|
302
355
|
refreshRate: "Fr\xE9quence de mise \xE0 jour",
|
|
303
356
|
resume: "Reprendre les mises \xE0 jour",
|
|
304
357
|
states: "\xC9tats actuels",
|
|
305
|
-
title: "D\xE9bogueur
|
|
358
|
+
title: "D\xE9bogueur Voix en direct",
|
|
306
359
|
transitions: "Transitions r\xE9centes des \xE9tats",
|
|
307
|
-
waiting: "En attente d\u2019un runtime
|
|
360
|
+
waiting: "En attente d\u2019un runtime Voix en direct compatible."
|
|
308
361
|
},
|
|
309
362
|
hi: {
|
|
310
363
|
activate: "\u0921\u0940\u092C\u0917\u0930 \u0905\u0932\u0917 \u0935\u093F\u0902\u0921\u094B \u092E\u0947\u0902 \u0916\u094B\u0932\u0947\u0902",
|
|
@@ -325,9 +378,9 @@ var dictionaries = {
|
|
|
325
378
|
refreshRate: "\u0905\u092A\u0921\u0947\u091F \u0906\u0935\u0943\u0924\u094D\u0924\u093F",
|
|
326
379
|
resume: "\u0905\u092A\u0921\u0947\u091F \u092B\u093F\u0930 \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902",
|
|
327
380
|
states: "\u0935\u0930\u094D\u0924\u092E\u093E\u0928 \u0938\u094D\u0925\u093F\u0924\u093F\u092F\u093E\u0901",
|
|
328
|
-
title: "
|
|
381
|
+
title: "\u0932\u093E\u0907\u0935 \u0935\u0949\u0907\u0938 \u0921\u0940\u092C\u0917\u0930",
|
|
329
382
|
transitions: "\u0939\u093E\u0932 \u0915\u0947 \u0938\u094D\u091F\u0947\u091F \u091F\u094D\u0930\u093E\u0902\u091C\u093C\u093F\u0936\u0928",
|
|
330
|
-
waiting: "\u0938\u0902\u0917\u0924
|
|
383
|
+
waiting: "\u0938\u0902\u0917\u0924 \u0932\u093E\u0907\u0935 \u0935\u0949\u0907\u0938 \u0930\u0928\u091F\u093E\u0907\u092E \u0915\u0940 \u092A\u094D\u0930\u0924\u0940\u0915\u094D\u0937\u093E \u0939\u0948\u0964"
|
|
331
384
|
},
|
|
332
385
|
zh: {
|
|
333
386
|
activate: "\u5728\u72EC\u7ACB\u7A97\u53E3\u4E2D\u6253\u5F00\u8C03\u8BD5\u5668",
|
|
@@ -348,9 +401,9 @@ var dictionaries = {
|
|
|
348
401
|
refreshRate: "\u66F4\u65B0\u9891\u7387",
|
|
349
402
|
resume: "\u6062\u590D\u66F4\u65B0",
|
|
350
403
|
states: "\u5F53\u524D\u72B6\u6001",
|
|
351
|
-
title: "
|
|
404
|
+
title: "\u5B9E\u65F6\u8BED\u97F3\u8C03\u8BD5\u5668",
|
|
352
405
|
transitions: "\u6700\u8FD1\u7684\u72B6\u6001\u8F6C\u6362",
|
|
353
|
-
waiting: "\u6B63\u5728\u7B49\u5F85\u517C\u5BB9\u7684
|
|
406
|
+
waiting: "\u6B63\u5728\u7B49\u5F85\u517C\u5BB9\u7684\u5B9E\u65F6\u8BED\u97F3\u8FD0\u884C\u65F6\u3002"
|
|
354
407
|
}
|
|
355
408
|
};
|
|
356
409
|
|