@goodandready/dsh-russian-lang 0.3.11 → 0.3.12
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
CHANGED
|
@@ -545,7 +545,8 @@ const value = scope.getSnapshot().value || {}
|
|
|
545
545
|
if (!!value.enabled !== wantRu) {const r = scope.set('enabled', wantRu)
|
|
546
546
|
if (r && typeof r.catch === 'function') {r.catch((err) => {console.warn('dsh-russian-lang: scope.set enabled failed', err && err.message || err)
|
|
547
547
|
})
|
|
548
|
-
}}} catch (err) {
|
|
548
|
+
}}} catch (err) {void err;
|
|
549
|
+
}}
|
|
549
550
|
ctx.effect(() => {try { return runtime.subscribe(syncFlag) } catch (err) { return undefined }}, 'dsh-russian-lang: sync-flag')
|
|
550
551
|
const activate = () => {try {if (runtime.getLocale().active === 'ru') return
|
|
551
552
|
runtime.setLocale('ru')
|
|
@@ -1113,7 +1114,7 @@ setTimeout(() => { copyKeyBtn.textContent = '📋' }, 1500)
|
|
|
1113
1114
|
}}
|
|
1114
1115
|
const copyReportBtn = modal.querySelector('.rl-copy-report-btn')
|
|
1115
1116
|
if (copyReportBtn) {copyReportBtn.onclick = () => {const snippet = typeof generateBugReportSnippet === 'function'
|
|
1116
|
-
? generateBugReportSnippet({ key: k, ns, original: origText || rawText, current: rawText, override: textarea.value.trim(), pkgVersion: '0.3.
|
|
1117
|
+
? generateBugReportSnippet({ key: k, ns, original: origText || rawText, current: rawText, override: textarea.value.trim(), pkgVersion: '0.3.12' })
|
|
1117
1118
|
: ('### Репорт: ' + (k || rawText) + '\n- Исходный: ' + (origText || rawText) + '\n- Перевод: ' + textarea.value.trim())
|
|
1118
1119
|
try { navigator.clipboard.writeText(snippet) } catch (err) { void err; }
|
|
1119
1120
|
copyReportBtn.textContent = '✓ Скопировано'
|
|
@@ -1400,7 +1401,7 @@ const [snap, setSnap] = React.useState(() => (scope && scope.getSnapshot ? scope
|
|
|
1400
1401
|
const [ruActive, setRuActive] = React.useState(() => { try { return runtime.getLocale().active === 'ru' } catch (e) { return false } })
|
|
1401
1402
|
const [typo, setTypoState] = React.useState(() =>
|
|
1402
1403
|
(snap.value && snap.value.typography) || {})
|
|
1403
|
-
const [upStatus, setUpStatus] = React.useState({currentVersion: '0.3.
|
|
1404
|
+
const [upStatus, setUpStatus] = React.useState({currentVersion: '0.3.12',latestVersion: undefined,updateAvailable: false
|
|
1404
1405
|
})
|
|
1405
1406
|
const [upLoading, setUpLoading] = React.useState(false)
|
|
1406
1407
|
const [upMsg, setUpMsg] = React.useState(null)
|
|
@@ -1493,7 +1494,7 @@ scope.set('agentPromptPreset', val)
|
|
|
1493
1494
|
} catch (err) { console.warn('dsh-russian-lang: set agentPromptPreset failed', err) }}},React.createElement('option', { value: 'technical_expert' }, t('presetExpert')),React.createElement('option', { value: 'tech_writer' }, t('presetWriter')),React.createElement('option', { value: 'concise' }, t('presetConcise')),React.createElement('option', { value: 'code_reviewer' }, t('presetReviewer')),React.createElement('option', { value: 'architect' }, t('presetArchitect')),React.createElement('option', { value: 'tutor' }, t('presetTutor')))),presetInfo ? React.createElement('div', { className: 'rl-preview-box' },React.createElement('div', { style: { fontWeight: 600, marginBottom: '4px', color: 'var(--dsw-alias-label-primary)' } }, '💬 ' + presetInfo.label + ':'),presetInfo.text
|
|
1494
1495
|
) : null
|
|
1495
1496
|
) : null
|
|
1496
|
-
),React.createElement('div', { className: 'rl-section-card' },React.createElement('div', { className: 'rl-section-title' },React.createElement('span', null, t('secUpdater')),React.createElement('span', { className: 'rl-badge ' + (upStatus.updateAvailable ? 'rl-badge-warn' : 'rl-badge-ok') },upStatus.updateAvailable ? t('badgeUpdateAvailable') : t('badgeUpToDate'))),React.createElement('div', { className: 'rl-section-desc' }, t('secUpdaterDesc')),React.createElement('div', { className: 'rl-item-card' },React.createElement('div', { style: { display: 'flex', justifyContent: 'space-between', alignItems: 'center', flexWrap: 'wrap', gap: '8px' } },React.createElement('div', null,React.createElement('div', { style: { fontWeight: 600, color: 'var(--dsw-alias-label-primary)' } },t('updaterCurrent').replace('{version}', upStatus.currentVersion || '0.3.
|
|
1497
|
+
),React.createElement('div', { className: 'rl-section-card' },React.createElement('div', { className: 'rl-section-title' },React.createElement('span', null, t('secUpdater')),React.createElement('span', { className: 'rl-badge ' + (upStatus.updateAvailable ? 'rl-badge-warn' : 'rl-badge-ok') },upStatus.updateAvailable ? t('badgeUpdateAvailable') : t('badgeUpToDate'))),React.createElement('div', { className: 'rl-section-desc' }, t('secUpdaterDesc')),React.createElement('div', { className: 'rl-item-card' },React.createElement('div', { style: { display: 'flex', justifyContent: 'space-between', alignItems: 'center', flexWrap: 'wrap', gap: '8px' } },React.createElement('div', null,React.createElement('div', { style: { fontWeight: 600, color: 'var(--dsw-alias-label-primary)' } },t('updaterCurrent').replace('{version}', upStatus.currentVersion || '0.3.12')),upStatus.updateAvailable
|
|
1497
1498
|
? React.createElement('div', { style: { color: 'var(--dsw-alias-state-warning-primary)', marginTop: '2px', fontWeight: 500 } },t('updaterLatest').replace('{version}', upStatus.latestVersion || ''))
|
|
1498
1499
|
: React.createElement('div', { style: { color: 'var(--dsw-alias-label-secondary)', marginTop: '2px' } },t('updaterUpToDate'))),upStatus.updateAvailable
|
|
1499
1500
|
? React.createElement('button', {type: 'button',className: 'rl-btn rl-btn-primary',disabled: upLoading,onClick: triggerUpdate,}, upLoading ? t('updaterUpdating') : t('updaterBtn').replace('{version}', upStatus.latestVersion || ''))
|
|
@@ -1531,7 +1532,7 @@ if (!input) return
|
|
|
1531
1532
|
try {const parsed = JSON.parse(input)
|
|
1532
1533
|
if (parsed && typeof parsed === 'object') {const merged = Object.assign({}, overrides, parsed)
|
|
1533
1534
|
scope.set('overrides', merged)
|
|
1534
|
-
}} catch (err) { alert('Ошибка разбора JSON: ' + (err && err.message || err)) }}}, '📥 Импорт JSON'))),React.createElement('div', { className: 'rl-section-card' },React.createElement('div', { className: 'rl-section-title' },React.createElement('span', null, t('secSupport')),React.createElement('span', { className: 'rl-badge rl-badge-ok' }, '🟢 100.0%')),React.createElement('div', { className: 'rl-section-desc' }, t('secSupportDesc')),React.createElement('div', { className: 'rl-grid-3' },React.createElement('div', { className: 'rl-stat-box' },React.createElement('div', { className: 'rl-stat-val' }, '113'),React.createElement('div', { className: 'rl-stat-label' }, t('statNamespaces'))),React.createElement('div', { className: 'rl-stat-box' },React.createElement('div', { className: 'rl-stat-val' }, '1 225'),React.createElement('div', { className: 'rl-stat-label' }, t('statCoreKeys'))),React.createElement('div', { className: 'rl-stat-box' },React.createElement('div', { className: 'rl-stat-val' }, '5 924'),React.createElement('div', { className: 'rl-stat-label' }, t('statPluginKeys')))),React.createElement('div', { className: 'rl-actions-row' },React.createElement('a', {href: makeIssueUrl({}, '0.3.
|
|
1535
|
+
}} catch (err) { alert('Ошибка разбора JSON: ' + (err && err.message || err)) }}}, '📥 Импорт JSON'))),React.createElement('div', { className: 'rl-section-card' },React.createElement('div', { className: 'rl-section-title' },React.createElement('span', null, t('secSupport')),React.createElement('span', { className: 'rl-badge rl-badge-ok' }, '🟢 100.0%')),React.createElement('div', { className: 'rl-section-desc' }, t('secSupportDesc')),React.createElement('div', { className: 'rl-grid-3' },React.createElement('div', { className: 'rl-stat-box' },React.createElement('div', { className: 'rl-stat-val' }, '113'),React.createElement('div', { className: 'rl-stat-label' }, t('statNamespaces'))),React.createElement('div', { className: 'rl-stat-box' },React.createElement('div', { className: 'rl-stat-val' }, '1 225'),React.createElement('div', { className: 'rl-stat-label' }, t('statCoreKeys'))),React.createElement('div', { className: 'rl-stat-box' },React.createElement('div', { className: 'rl-stat-val' }, '5 924'),React.createElement('div', { className: 'rl-stat-label' }, t('statPluginKeys')))),React.createElement('div', { className: 'rl-actions-row' },React.createElement('a', {href: makeIssueUrl({}, '0.3.12'),target: '_blank',rel: 'noopener noreferrer',className: 'rl-btn rl-btn-primary'
|
|
1535
1536
|
}, '💬 ' + t('reportIssue')),React.createElement('div', { className: 'rl-hint-text', style: { flex: 1 } },t('exportMdHint')))))))
|
|
1536
1537
|
}
|
|
1537
1538
|
const RL_CSS = ['.rl-modal-mask{position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--dsw-alias-bg-mask);display:flex;align-items:center;justify-content:center;z-index:99999;backdrop-filter:blur(2px)}.rl-modal-box{background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);border:1px solid var(--dsw-alias-border-l1);border-radius:10px;width:calc(100vw - 40px);max-width:500px;box-shadow:var(--dsw-alias-shadow-l3);display:flex;flex-direction:column;gap:12px;padding:18px}.rl-card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:12px;list-style:none;overflow:hidden;transition:border-color .15s ease}.rl-head{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 18px}.rl-head:hover{background:var(--dsw-alias-bg-layer-2)}.rl-head-main{flex:1;display:flex;flex-direction:column;gap:4px}.rl-title{color:var(--dsw-alias-label-primary);font-size:16px;font-weight:600;line-height:1.4;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.rl-sub{color:var(--dsw-alias-label-secondary);font-size:13px}.rl-chev{margin-left:auto;flex:none;color:var(--dsw-alias-label-tertiary);display:inline-flex;transition:transform .16s}.rl-chev-open{transform:rotate(180deg)}.rl-body{border-top:1px solid var(--dsw-alias-border-l2);padding:18px}.rl-page{display:flex;flex-direction:column;gap:16px;max-width:960px}.rl-section-card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}.rl-section-title{font-size:14px;font-weight:600;color:var(--dsw-alias-label-primary);display:flex;align-items:center;justify-content:space-between;gap:8px}.rl-section-desc{font-size:12px;color:var(--dsw-alias-label-secondary);margin-top:-4px;line-height:1.4}.rl-grid-2{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:10px}.rl-grid-3{display:grid;grid-template-columns:repeat(auto-fit, minmax(140px, 1fr));gap:10px}.rl-badge{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--dsw-alias-border-l2);display:inline-flex;align-items:center;gap:4px;font-weight:500}.rl-badge-ok{border-color:var(--dsw-alias-state-success-primary);color:var(--dsw-alias-state-success-primary);background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 8%, transparent)}.rl-badge-warn{border-color:var(--dsw-alias-state-warning-primary);color:var(--dsw-alias-state-warning-primary);background:color-mix(in srgb, var(--dsw-alias-state-warning-primary) 8%, transparent)}.rl-badge-dim{border-color:var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-3)}.rl-item-card{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.rl-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.rl-item-label{font-size:13px;font-weight:500;color:var(--dsw-alias-label-primary);display:flex;align-items:center;gap:8px;cursor:pointer}.rl-item-desc{font-size:11px;color:var(--dsw-alias-label-secondary);line-height:1.4}.rl-stat-box{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.rl-stat-val{font-size:16px;font-weight:700;color:var(--dsw-alias-label-primary)}.rl-stat-label{font-size:11px;color:var(--dsw-alias-label-secondary);letter-spacing:0.3px}.rl-hotkey-box{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:8px;padding:10px 12px;font-size:12px;color:var(--dsw-alias-label-secondary);line-height:1.4;display:flex;align-items:flex-start;gap:10px}.rl-hotkey-tag{font-size:11px;font-weight:700;padding:2px 6px;border-radius:4px;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary);white-space:nowrap}.rl-preview-box{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);border-radius:8px;padding:10px 12px;font-size:12px;color:var(--dsw-alias-label-secondary);line-height:1.4}.rl-btn{appearance:none;font:inherit;cursor:pointer;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;padding:6px 12px;font-size:12px;background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-primary);font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:all .15s ease;text-decoration:none}.rl-btn:hover:not(:disabled){background:var(--dsw-alias-bg-layer-1);border-color:var(--dsw-alias-label-secondary)}.rl-btn-primary{background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-3);border-color:transparent}.rl-btn-primary:hover:not(:disabled){opacity:0.9}.rl-select{height:32px;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-primary);border-radius:6px;padding:0 8px;font-size:12px;outline:none;width:100%;max-width:380px}.rl-select:focus{border-color:var(--dsw-alias-state-brand-primary)}.rl-check{width:16px;height:16px;accent-color:var(--dsw-alias-label-primary);cursor:pointer;flex-shrink:0}.rl-hint-text{font-size:11px;color:var(--dsw-alias-label-secondary);line-height:1.4}.rl-actions-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding-top:4px}.rl-lang-chip{appearance:none;cursor:pointer;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-secondary);font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;display:inline-flex;align-items:center;transition:all .15s;margin:0 4px}.rl-lang-chip:hover{border-color:var(--dsw-alias-label-primary);color:var(--dsw-alias-label-primary)}.rl-lang-chip-active{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2)}.rl-action-btn{appearance:none;background:0 0;border:1px solid transparent;border-radius:4px;color:var(--dsw-alias-label-secondary);cursor:pointer;font-size:11px;padding:2px 5px;display:inline-flex;align-items:center;transition:all .15s}.rl-action-btn:hover{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-3)}.rl-action-btn-active{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border-color:var(--dsw-alias-border-l2)}.rl-turn-translation{margin:8px 0;padding:10px 12px;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);border-radius:8px;font-size:13px;line-height:1.5}.rl-trans-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;border-bottom:1px solid var(--dsw-alias-border-l2);padding-bottom:4px}.rl-trans-title{font-size:11px;font-weight:600;color:var(--dsw-alias-label-secondary);text-transform:uppercase;letter-spacing:0.5px}.rl-trans-tools{display:flex;gap:4px}.rl-trans-btn{appearance:none;background:var(--dsw-alias-bg-layer-3);border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);cursor:pointer;padding:2px 7px;border-radius:4px;font-size:11px}.rl-trans-btn:hover{background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary)}.rl-trans-body{color:var(--dsw-alias-label-primary);white-space:pre-wrap;word-break:break-word;user-select:text}.rl-export-md-btn{appearance:none;border:1px solid var(--dsw-alias-border-l2);height:32px;color:var(--dsw-alias-label-primary);cursor:pointer;background:transparent;border-radius:18px;justify-content:center;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:500;display:inline-flex;white-space:nowrap;margin-left:6px;transition:all .15s ease}.rl-export-md-btn:hover{background:var(--dsw-alias-interactive-bg-hover)}.rl-inspector-hover{position:absolute;pointer-events:none;border:2px solid var(--dsw-alias-state-brand-primary);border-radius:4px;background:color-mix(in srgb,var(--dsw-alias-state-brand-primary) 12%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--dsw-alias-state-brand-primary) 30%,transparent);z-index:99998;transition:all .06s ease;display:none}.rl-inspector-badge{position:absolute;bottom:calc(100% + 4px);left:0;background:var(--dsw-alias-state-brand-primary);color:var(--dsw-alias-label-inverse);font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;white-space:nowrap;box-shadow:var(--dsw-alias-shadow-l2);pointer-events:none}.rl-inspector-pill{position:fixed;bottom:18px;right:18px;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);border:1px solid var(--dsw-alias-border-l1);border-radius:20px;padding:6px 12px;box-shadow:var(--dsw-alias-shadow-l3);display:none;align-items:center;gap:8px;font-size:12px;z-index:99990;user-select:none}.rl-inspector-pill-active{border-color:var(--dsw-alias-state-brand-primary);box-shadow:0 0 12px color-mix(in srgb,var(--dsw-alias-state-brand-primary) 35%,transparent)}'
|
package/lib/client.template.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"@goodandready-private/dsh-memory-brain":{"field.autoInject":"Автоматически добавлять воспоминания в контекст каждого хода","field.base":"Базовый URL memory-brain","field.checkpointBanking":"Сохранять в память контекст перед сжатием","field.includeNeighbors":"Включать соседние воспоминания (граф)","field.minRecallChars":"Мин. длина для инъекции (символов)","field.neighborK":"Количество соседних воспоминаний","field.predictionLoop":"Цикл прогнозирования контекста","field.recallBudget":"Бюджет воспоминаний (символов)","field.showMemoryIndicator":"Показывать индикатор памяти в ответах","field.timeoutMs":"Таймаут HTTP (мс)","field.token":"Имя переменной токена / учётных данных","hint.token":"Никогда не вставляйте сам токен — только имя учётных данных или переменной окружения (по умолчанию MEMORY_BRAIN_TOKEN).","intro":"Укажите базовый URL сервиса memory-brain. Сохраните токен API в учётных данных (или переменных окружения) и введите только имя ниже.","memory.chip":"память","memory.chip.close":"Закрыть","memory.chip.copied":"Скопировано","memory.chip.copy":"Копировать","memory.chip.title":"Память, использованная в этом ответе","memory.chip.unavailable":"память недоступна","save":"Сохранить","saved":"Настройки сохранены","settings.loading":"Загрузка настроек…","settings.save":"Сохранить","settings.saveFailed":"Ошибка сохранения: ","settings.saved":"Настройки сохранены","settings.saving":"Сохранение…","settings.unavailable":"Область настроек недоступна для этого плагина.","subtitle":"Долгосрочная память (recall / remember) через HTTP API memory-brain","title":"Memory Brain","update.action":"Обновить сейчас","update.autoOff":"Автоматическое обновление недоступно в этой среде; выполните обновление через стандартный интерфейс DSH.","update.available":"Доступна версия {version}","update.checking":"Проверка наличия обновлений…","update.failed":"Ошибка обновления: {error}","update.restart":"Обновлено до {version}. Перезапустите веб-профиль DSH, чтобы применить изменения.","update.title":"Версия плагина","update.unavailable":"Не удалось проверить реестр пакетов.","update.upToDate":"Установлена актуальная версия","update.working":"Обновление…"},"@goodandready/dsh-memory-brain":{"field.autoInject":"Автоматически добавлять воспоминания в контекст каждого хода","field.base":"Базовый URL memory-brain","field.checkpointBanking":"Сохранять в память контекст перед сжатием","field.includeNeighbors":"Включать соседние воспоминания (граф)","field.minRecallChars":"Мин. длина для инъекции (символов)","field.neighborK":"Количество соседних воспоминаний","field.predictionLoop":"Цикл прогнозирования контекста","field.recallBudget":"Бюджет воспоминаний (символов)","field.timeoutMs":"Таймаут HTTP (мс)","field.token":"Имя переменной токена / учётных данных","hint.token":"Никогда не вставляйте сам токен — только имя учётных данных или переменной окружения (по умолчанию MEMORY_BRAIN_TOKEN).","intro":"Укажите базовый URL сервиса memory-brain. Сохраните токен API в учётных данных (или переменных окружения) и введите только имя ниже.","save":"Сохранить","saved":"Настройки сохранены","settings.loading":"Загрузка настроек…","settings.save":"Сохранить","settings.saveFailed":"Ошибка сохранения: ","settings.saved":"Настройки сохранены","settings.saving":"Сохранение…","settings.unavailable":"Область настроек недоступна для этого плагина.","subtitle":"Долгосрочная память (recall / remember) через HTTP API memory-brain","title":"Memory Brain"},"dsh-memory-brain":{"field.autoInject":"Автоматически добавлять воспоминания в контекст каждого хода","field.base":"Базовый URL memory-brain","field.checkpointBanking":"Сохранять в память контекст перед сжатием","field.includeNeighbors":"Включать соседние воспоминания (граф)","field.minRecallChars":"Мин. длина для инъекции (символов)","field.neighborK":"Количество соседних воспоминаний","field.predictionLoop":"Цикл прогнозирования контекста","field.recallBudget":"Бюджет воспоминаний (символов)","field.timeoutMs":"Таймаут HTTP (мс)","field.token":"Имя переменной токена / учётных данных","hint.token":"Никогда не вставляйте сам токен — только имя учётных данных или переменной окружения (по умолчанию MEMORY_BRAIN_TOKEN).","intro":"Укажите базовый URL сервиса memory-brain. Сохраните токен API в учётных данных (или переменных окружения) и введите только имя ниже.","save":"Сохранить","saved":"Настройки сохранены","settings.loading":"Загрузка настроек…","settings.save":"Сохранить","settings.saveFailed":"Ошибка сохранения: ","settings.saved":"Настройки сохранены","settings.saving":"Сохранение…","settings.unavailable":"Область настроек недоступна для этого плагина.","subtitle":"Долгосрочная память (recall / remember) через HTTP API memory-brain","title":"Memory Brain"}}
|
|
1
|
+
{"@goodandready-private/dsh-memory-brain":{"field.autoInject":"Автоматически добавлять воспоминания в контекст каждого хода","field.base":"Базовый URL memory-brain","field.checkpointBanking":"Сохранять в память контекст перед сжатием","field.includeNeighbors":"Включать соседние воспоминания (граф)","field.minRecallChars":"Мин. длина для инъекции (символов)","field.neighborK":"Количество соседних воспоминаний","field.predictionLoop":"Цикл прогнозирования контекста","field.recallBudget":"Бюджет воспоминаний (символов)","field.showMemoryIndicator":"Показывать индикатор памяти в ответах","field.timeoutMs":"Таймаут HTTP (мс)","field.token":"Имя переменной токена / учётных данных","hint.token":"Никогда не вставляйте сам токен — только имя учётных данных или переменной окружения (по умолчанию MEMORY_BRAIN_TOKEN).","intro":"Укажите базовый URL сервиса memory-brain. Сохраните токен API в учётных данных (или переменных окружения) и введите только имя ниже.","memory.chip":"память","memory.chip.close":"Закрыть","memory.chip.copied":"Скопировано","memory.chip.copy":"Копировать","memory.chip.title":"Память, использованная в этом ответе","memory.chip.unavailable":"память недоступна","save":"Сохранить","saved":"Настройки сохранены","settings.loading":"Загрузка настроек…","settings.save":"Сохранить","settings.saveFailed":"Ошибка сохранения: ","settings.saved":"Настройки сохранены","settings.saving":"Сохранение…","settings.unavailable":"Область настроек недоступна для этого плагина.","subtitle":"Долгосрочная память (recall / remember) через HTTP API memory-brain","title":"Memory Brain","update.action":"Обновить сейчас","update.autoOff":"Автоматическое обновление недоступно в этой среде; выполните обновление через стандартный интерфейс DSH.","update.available":"Доступна версия {version}","update.checking":"Проверка наличия обновлений…","update.failed":"Ошибка обновления: {error}","update.restart":"Обновлено до {version}. Перезапустите веб-профиль DSH, чтобы применить изменения.","update.title":"Версия плагина","update.unavailable":"Не удалось проверить реестр пакетов.","update.upToDate":"Установлена актуальная версия","update.working":"Обновление…"},"@goodandready/dsh-memory-brain":{"field.autoInject":"Автоматически добавлять воспоминания в контекст каждого хода","field.base":"Базовый URL memory-brain","field.checkpointBanking":"Сохранять в память контекст перед сжатием","field.includeNeighbors":"Включать соседние воспоминания (граф)","field.minRecallChars":"Мин. длина для инъекции (символов)","field.neighborK":"Количество соседних воспоминаний","field.predictionLoop":"Цикл прогнозирования контекста","field.recallBudget":"Бюджет воспоминаний (символов)","field.showMemoryIndicator":"Показывать индикатор памяти в ответах","field.timeoutMs":"Таймаут HTTP (мс)","field.token":"Имя переменной токена / учётных данных","hint.token":"Никогда не вставляйте сам токен — только имя учётных данных или переменной окружения (по умолчанию MEMORY_BRAIN_TOKEN).","intro":"Укажите базовый URL сервиса memory-brain. Сохраните токен API в учётных данных (или переменных окружения) и введите только имя ниже.","memory.chip":"память","memory.chip.close":"Закрыть","memory.chip.copied":"Скопировано","memory.chip.copy":"Копировать","memory.chip.title":"Память, использованная в этом ответе","memory.chip.unavailable":"память недоступна","save":"Сохранить","saved":"Настройки сохранены","settings.loading":"Загрузка настроек…","settings.save":"Сохранить","settings.saveFailed":"Ошибка сохранения: ","settings.saved":"Настройки сохранены","settings.saving":"Сохранение…","settings.unavailable":"Область настроек недоступна для этого плагина.","subtitle":"Долгосрочная память (recall / remember) через HTTP API memory-brain","title":"Memory Brain"},"dsh-memory-brain":{"field.autoInject":"Автоматически добавлять воспоминания в контекст каждого хода","field.base":"Базовый URL memory-brain","field.checkpointBanking":"Сохранять в память контекст перед сжатием","field.includeNeighbors":"Включать соседние воспоминания (граф)","field.minRecallChars":"Мин. длина для инъекции (символов)","field.neighborK":"Количество соседних воспоминаний","field.predictionLoop":"Цикл прогнозирования контекста","field.recallBudget":"Бюджет воспоминаний (символов)","field.showMemoryIndicator":"Показывать индикатор памяти в ответах","field.timeoutMs":"Таймаут HTTP (мс)","field.token":"Имя переменной токена / учётных данных","hint.token":"Никогда не вставляйте сам токен — только имя учётных данных или переменной окружения (по умолчанию MEMORY_BRAIN_TOKEN).","intro":"Укажите базовый URL сервиса memory-brain. Сохраните токен API в учётных данных (или переменных окружения) и введите только имя ниже.","memory.chip":"память","memory.chip.close":"Закрыть","memory.chip.copied":"Скопировано","memory.chip.copy":"Копировать","memory.chip.title":"Память, использованная в этом ответе","memory.chip.unavailable":"память недоступна","save":"Сохранить","saved":"Настройки сохранены","settings.loading":"Загрузка настроек…","settings.save":"Сохранить","settings.saveFailed":"Ошибка сохранения: ","settings.saved":"Настройки сохранены","settings.saving":"Сохранение…","settings.unavailable":"Область настроек недоступна для этого плагина.","subtitle":"Долгосрочная память (recall / remember) через HTTP API memory-brain","title":"Memory Brain"}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goodandready/dsh-russian-lang",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.12",
|
|
4
4
|
"description": "Russian localization for DeepSeek Harness (DSH v0.1.7-rc.1+) web UI: adds Русский as native language option. 100.0% coverage across 11,295 keys (127 namespaces). Features full DSH v0.1.7-rc.1 core support (terminal, archive, command palette, Auto review, trajectory, PTC/Creator presets) and complete GoodAndReady plugin catalog (subscriptions, tts, image-gen, voice, key-limits, notify, commandcode, plugin-console).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|