@goodandready/dsh-voice 0.8.0 → 0.8.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.
Files changed (2) hide show
  1. package/lib/client.js +27 -9
  2. package/package.json +1 -1
package/lib/client.js CHANGED
@@ -877,23 +877,23 @@ window.__ModuleLoader__.load({
877
877
  '.dvs-row{display:flex;gap:8px;align-items:center}' +
878
878
  '.dvs-row select,.dvs-row input{background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-primary);border-radius:6px;padding:6px 8px;font-size:13px}' +
879
879
  '.dvs-row .dvs-model{flex:1}' +
880
- '.dvs-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--dsw-alias-label-secondary)}' +
881
- '.dvs-field input,.dvs-field select{background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-primary);border-radius:6px;padding:6px 8px;font-size:13px}' +
880
+ '.dvs-field{display:flex;flex-direction:column;gap:6px;padding:12px 0;font-size:12px;color:var(--dsw-alias-label-secondary)}' +
881
+ '.dvs-field input,.dvs-field select{height:34px;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-primary);border-radius:8px;padding:0 12px;font-size:13px}' +
882
882
  '.dvs-mini{border:1px solid var(--dsw-alias-border-l2);background:transparent;color:var(--dsw-alias-label-primary);border-radius:6px;width:28px;height:28px;cursor:pointer;flex:none}' +
883
- '.dvs-save{background:var(--dsw-alias-brand-primary);color:#fff;border:none;border-radius:6px;padding:7px 14px;font-size:13px;cursor:pointer}' +
883
+ '.dvs-save{appearance:none;font:inherit;cursor:pointer;border:1px solid transparent;border-radius:8px;padding:5px 14px;font-size:13px;background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-3)}' +
884
884
  '.dvs-card{display:flex;flex-direction:column;gap:6px;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;padding:10px}' +
885
885
  '.dvs-card input,.dvs-card select{background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-primary);border-radius:6px;padding:6px 8px;font-size:13px}' +
886
886
  '.dvs-wait{font-size:13px;color:var(--dsw-alias-label-secondary);line-height:1.5;max-width:520px}' +
887
887
  '.dvs-ok{font-size:12px;color:var(--dsw-alias-state-success-primary)}' +
888
888
  '.dvs-bad{font-size:12px;color:var(--dsw-alias-state-error-primary)}' +
889
- '.dvo-pcard{list-style:none;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);border-radius:10px}' +
890
- '.dvo-phead{display:flex;align-items:center;gap:8px;width:100%;padding:12px 14px;background:transparent;border:none;border-radius:10px;cursor:pointer;text-align:left;font:inherit;color:inherit}' +
889
+ '.dvo-pcard{list-style:none;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:12px}' +
890
+ '.dvo-phead{appearance:none;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;display:flex;align-items:center;gap:12px;padding:14px 16px}' +
891
891
  '.dvo-pheadtext{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}' +
892
- '.dvo-ptitle{font-size:14px;font-weight:600;color:var(--dsw-alias-label-primary)}' +
893
- '.dvo-pdesc{font-size:12px;color:var(--dsw-alias-label-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}' +
892
+ '.dvo-ptitle{color:var(--dsw-alias-label-primary);font-size:15px;font-weight:600;line-height:1.4}' +
893
+ '.dvo-pdesc{color:var(--dsw-alias-label-secondary);font-size:13px}' +
894
894
  '.dvo-pchev{flex:none;display:flex;color:var(--dsw-alias-label-secondary);transition:transform .15s ease}' +
895
895
  '.dvo-pcardOpen .dvo-pchev{transform:rotate(180deg)}' +
896
- '.dvo-pbody{border-top:1px solid var(--dsw-alias-border-l1);padding:12px 14px}'
896
+ '.dvo-pbody{border-top:1px solid var(--dsw-alias-border-l2);margin:0 16px;padding-bottom:8px}'
897
897
  const setCssId = 'dsh-voice/settings.module.css'
898
898
  if (typeof document !== 'undefined' && !document.querySelector('style[data-plugin-css="' + setCssId + '"]')) {
899
899
  const tag = document.createElement('style')
@@ -1289,7 +1289,25 @@ window.__ModuleLoader__.load({
1289
1289
 
1290
1290
  exports.inject = ['timer', 'slots', 'settingsScope', 'locale']
1291
1291
  exports.apply = function apply(ctx) {
1292
- ctx.effect(() => ctx.locale.register(NS, { en, ru }), 'dsh-voice: словари')
1292
+ // Язык может принести не только плагин: словарные пакеты объявляют
1293
+ // русский для чужих пространств. Ядро на повторное объявление той же
1294
+ // пары «пространство + язык» бросает исключение, и незащищённый вызов
1295
+ // уносил с собой весь плагин — в интерфейсе это выглядело как «Failed to
1296
+ // load plugins» с перечнем ни в чём не повинных соседей.
1297
+ //
1298
+ // Поэтому каждый язык объявляется отдельно и по-хорошему: заняли до нас —
1299
+ // уступаем, свой английский при этом всё равно встаёт на место.
1300
+ const addLocale = (locale, dictionary) => {
1301
+ try {
1302
+ return ctx.locale.register(NS, locale, dictionary)
1303
+ } catch (alreadyTaken) {
1304
+ return () => {}
1305
+ }
1306
+ }
1307
+ ctx.effect(() => {
1308
+ const undo = [addLocale('en', en), addLocale('ru', ru)]
1309
+ return () => { for (const off of undo) off() }
1310
+ }, 'dsh-voice: словари')
1293
1311
  moduleT = ctx.locale.bind(NS)
1294
1312
  registerComposer(ctx)
1295
1313
  registerSettings(ctx)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goodandready/dsh-voice",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
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",