@goodandready/dsh-voice 0.7.2 → 0.7.3
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 +26 -10
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -23,6 +23,7 @@ window.__ModuleLoader__.load({
|
|
|
23
23
|
// пакет, не трогая код этого плагина. Английский — язык по умолчанию,
|
|
24
24
|
// на него же приходится откат, если перевода нет.
|
|
25
25
|
const en = {
|
|
26
|
+
'saveFailed': 'Some fields were not saved —',
|
|
26
27
|
'composerUnavailable': 'Composer unavailable',
|
|
27
28
|
'keySpace': 'Space',
|
|
28
29
|
'keyUnset': 'not set',
|
|
@@ -94,6 +95,7 @@ window.__ModuleLoader__.load({
|
|
|
94
95
|
'openrouterWarning': 'OpenRouter has no /audio/transcriptions \u2014 use the openai-chat-audio template there',
|
|
95
96
|
}
|
|
96
97
|
const ru = {
|
|
98
|
+
'saveFailed': 'Часть полей не сохранилась —',
|
|
97
99
|
'composerUnavailable': 'Композер недоступен',
|
|
98
100
|
'keySpace': 'Пробел',
|
|
99
101
|
'keyUnset': 'не задана',
|
|
@@ -1080,17 +1082,31 @@ window.__ModuleLoader__.load({
|
|
|
1080
1082
|
const save = async () => {
|
|
1081
1083
|
setErr(''); setSaved(false)
|
|
1082
1084
|
if (!draft) return
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1085
|
+
|
|
1086
|
+
// Поля пишутся по одному, и раньше первая же неудача обрывала цикл:
|
|
1087
|
+
// остальные поля не записывались, композер не получал сигнала
|
|
1088
|
+
// перечитать клавишу, а на кнопку это было похоже на «ничего не
|
|
1089
|
+
// происходит». Теперь пишутся все, а неудачи собираются и называются
|
|
1090
|
+
// поимённо — иначе непонятно, какое поле виновато.
|
|
1091
|
+
const failed = []
|
|
1092
|
+
for (const k of Object.keys(draft)) {
|
|
1093
|
+
try {
|
|
1094
|
+
await scope.set(k, draft[k])
|
|
1095
|
+
} catch (e) {
|
|
1096
|
+
failed.push(k + ': ' + String(e && e.message ? e.message : e))
|
|
1088
1097
|
}
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
voice.settings = {
|
|
1101
|
+
vadSilenceMs: Number(draft.dictation && draft.dictation.vadSilenceMs) || 700,
|
|
1102
|
+
autoSendMs: Number(draft.message && draft.message.autoSendMs) || 4000,
|
|
1103
|
+
}
|
|
1104
|
+
// Композер держит обработчик клавиши: пусть перечитает настройку,
|
|
1105
|
+
// иначе новая клавиша заработает только после перезагрузки страницы.
|
|
1106
|
+
try { window.dispatchEvent(new CustomEvent('dsh-voice:settings-saved')) } catch (noEvents) { /* некому */ }
|
|
1107
|
+
|
|
1108
|
+
if (failed.length) { setErr(t('saveFailed') + ' ' + failed.join('; ')); return }
|
|
1109
|
+
setSaved(true); setTimeout(() => setSaved(false), 2000)
|
|
1094
1110
|
}
|
|
1095
1111
|
|
|
1096
1112
|
const modeVal = (mode, key, fallback) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goodandready/dsh-voice",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.3",
|
|
4
4
|
"description": "Voice input for DeepSeek Harness: dictation chunked by pauses and voice messages, each with its own provider fallback chain (Deepgram, Groq, HuggingFace, local whisper.cpp, plus any OpenAI-compatible API of your own).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|