@goodandready/dsh-russian-lang 0.2.23 → 0.2.25

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.
@@ -0,0 +1 @@
1
+ {"@goodandready/dsh-vision-bridge":{"checkUpdates":"Проверить обновления","checking":"Проверка...","restartNotice":"Обновлено! Пожалуйста, перезапустите DeepSeek Harness.","upToDate":"Актуальная версия","updateAvailable":"Доступно обновление","updateFailed":"Сбой обновления:","updateTo":"Обновить до","updating":"Обновление..."}}
@@ -1 +1 @@
1
- {"commandcode":{"accountSeparator":"────────────────────","accountTitle":"📊 {label}{badges}","activeBadge":" ✅ активен","barLine":" └ {bar} {pct}%","blockedInvalidKey":"⛔ API-ключ недействителен или истёк — сервер отклонил запросы (401); проверьте ключ аккаунта","blockedNetwork":"⚠️ Не удалось подключиться к Command Code — проверьте сеть или адрес API","blockedServiceUnavailable":"⚠️ Сервис Command Code временно недоступен (5xx); повторите позже","cooldownBadge":" ⏳ охлаждение, сброс {when}","costLine":" 💰 Расход {money} ({credits} кредитов)","creditsHeader":"── Кредиты ──────────────────────────","errorText":"Не удалось получить статистику Command Code: {message}","exceededWarning":" ⚠️ превышен!","fiveHourLine":" ⏱ 5-часовое {used} / {cap}{warn}","imageGate":"В сессии уже есть изображения, а модель {model} не поддерживает изображения; выберите модель с поддержкой зрения или удалите изображения из сессии.","invalidCredentialBadge":" ⛔ неверный ключ","monthlyLine":" 💳 В месяц {monthly} (куплено {purchased} / бесплатно {free})","noData":"(нет данных — проверьте API-ключ)","partialFailures":"⚠️ Сбои на некоторых эндпоинтах: {list}","planLine":" 📦 Тариф {name}{status}{period}","planPeriodSuffix":" · окончание периода: {date}","rateLimitBadge":" ⏳ лимит запросов (ожидание окна)","requestsLine":" 💬 Запросы {n} / сбоев {f} успешность {r}%","resetSuffix":"сброс {when}","title":"📊 Использование Command Code{account}","tokensLine":" 🔤 Токены {in} вход / {out} выход","unconfigured":" (API-ключ не настроен)","usageHeader":"── Запросы ──────────────────────────","weeklyLine":" 📅 Недельное {used} / {cap}{warn}","windowBarLine":" └ {bar} сброс {when}","windowsHeader":"── Использование окна ───────────────"},"panel.commandcode":{"active":"Активен","close":"Закрыть","closeHint":"Вернуться к диалогу","coolingDown":"Охлаждение","credits":"Кредиты","errorGeneric":"Не удалось получить данные об использовании аккаунта","errorInvalidKey":"API-ключ недействителен или истёк","errorInvalidKeyHint":"Сервер отклонил все запросы (401). Проверьте ключ для этого аккаунта или сгенерируйте новый в консоли commandcode.ai.","errorNetwork":"Не удалось связаться с сервисом Command Code","errorNetworkHint":"Запрос не достиг сервера. Проверьте сетевое подключение или настройку базового URL API.","errorServiceUnavailable":"Сервис Command Code временно недоступен","errorServiceUnavailableHint":"Сервер возвращает ошибки (5xx). Повторите попытку через минуту.","exceeded":"Превышен","exhausted":"Исчерпан","failed":"ошибок","fiveHour":"5-часовое окно","fiveHourShort":"5 ч","free":"Бесплатно","invalidKey":"Неверный ключ","limits":"Лимиты","loading":"Загрузка…","monthly":"Месячный лимит","monthlyLimit":"Месячный лимит","monthlyUsed":"Использовано за месяц","nav":"Command Code","noKey":"Ключ не настроен","noKeyHint":"Добавьте API-ключ Command Code в Настройках, чтобы отслеживать квоту и кредиты.","partial":"Частично","periodEnds":"Окончание периода","plan":"Тариф","purchased":"Приобретено","refresh":"Обновить","refreshing":"Обновление…","remaining":"Осталось","requests":"Запросы","resets":"Сброс через","spend":"Расходы","subtitle":"Тарифы, кредиты и плавающие окна квот","successRate":"Успешность","tokens":"Токены","tokensIn":"Входящие токены","tokensOut":"Исходящие токены","unavailable":"Недоступно","unconfigured":"Не настроено","updated":"Обновлено","usage":"Использование","weekly":"Недельное окно","weeklyShort":"7 дн","windowUnlimited":"Без ограничений"},"settings.commandcode":{"accountAdd":"Добавить аккаунт","accountDefault":"Основной аккаунт","accountKey":"API-ключ","accountKeyHint":"API-ключ этого аккаунта. Если оставить поле пустым, сохранённый ключ останется без изменений.","accountLabel":"Название аккаунта","accountRemove":"Удалить","accountSeparator":"────────────────────","accountTitle":"📊 {label}{badges}","accountsHint":"Когда активный аккаунт достигает лимита использования (429) или его ключ недействителен (401), запросы переключаются на следующий аккаунт; когда все аккаунты исчерпаны, ошибка указывает ближайшее время сброса окна.","accountsTitle":"Смена аккаунта","activeAccount":"Активный аккаунт","activeAccountAuto":"Авто (первый доступный аккаунт)","activeAccountHint":"Закрепите предпочтительный аккаунт; применяется к следующему запросу после сохранения. Если выбранный аккаунт исчерпан, запросы будут перенаправлены на другой доступный аккаунт.","activeBadge":" ✅ активен","advancedInvalid":"Число в расширенных настройках не готово к сохранению; раскройте, чтобы исправить.","advancedOverriddenMany":"{count} настроено","advancedOverriddenOne":"1 настроенный","advancedSettings":"Дополнительно","advancedSettingsHint":"Редко используемые параметры: базовый URL API, рабочая директория, тайм-ауты и фильтрация моделей.","apiBase":"Базовый URL API","apiBaseHint":"По умолчанию используется https://api.commandcode.ai; обычно оставляйте как есть.","apiKey":"API-ключ","apiKeyHint":"Создайте его в консоли commandcode.ai. Если оставить это поле пустым, сохранённый ключ останется без изменений.","apiKeyLocked":"Ключ предоставлен только для чтения","apiKeySet":"Настроено","apiKeyUnset":"Не настроено","barLine":" └ {bar} {pct}%","blockedInvalidKey":"⛔ API-ключ недействителен или истёк — сервер отклонил запросы (401); проверьте ключ аккаунта","blockedNetwork":"⚠️ Не удалось подключиться к Command Code — проверьте сеть или адрес API","blockedServiceUnavailable":"⚠️ Сервис Command Code временно недоступен (5xx); повторите позже","cancel":"Отмена","cardConfiguredHint":"API-ключ готов. Чтобы заменить его, добавить ротацию аккаунтов, проверить использование или изменить базовый API, откройте страницу \"Command Code\" в Настройках.","cardLoadingHint":"Загрузка конфигурации командного кода…","cardRegistrationHint":"Эта карта предоставлена плагином Command Code; для отображения всех элементов управления требуется более новая версия DeepSeek Harness.","cardRouteActive":"Активный","cardTitle":"Подключение командного кода","cooldownBadge":" ⏳ охлаждение, сброс {when}","costLine":" 💰 Расход {money} ({credits} кредитов)","creditsHeader":"── Кредиты ──────────────────────────","discard":"Отменить","errorText":"Не удалось получить статистику Command Code: {message}","exceededWarning":" ⚠️ превышен!","filterModelsByPlan":"Скрыть модели вне тарифного плана","filterModelsByPlanHint":"Если включено, в выборе моделей отображаются только те, что входят в вашу подписку; при наличии баланса кредитов по запросу показывается полный каталог.","fiveHourLine":" ⏱ 5-часовое {used} / {cap}{warn}","hide":"Скрыть","imageGate":"В сессии уже есть изображения, а модель {model} не поддерживает изображения; выберите модель с поддержкой зрения или удалите изображения из сессии.","intro":"Настройте подключение к Command Code Provider. API-ключ сохраняется только в локальной службе учетных данных и никогда не отображается; остальные поля записываются в пользовательские настройки и вступают в силу при следующем запросе.","invalidCredentialBadge":" ⛔ неверный ключ","invalidNumber":"Недопустимый номер","loginButton":"Войдите в Command Code","loginCancel":"Отменить вход","loginCancelled":"Вход отменён.","loginDenied":"Доступ запрещён. Попробуйте снова или вставьте ключ вручную.","loginFailedGeneric":"Не удалось войти; попробуйте снова или вставьте ключ вручную.","loginHintIdle":"Не хотите создавать ключ вручную? Войдите в систему, и ваш браузер откроет страницу авторизации commandcode.ai; одобренный ключ сохранится в локальном сервисе учетных данных и будет применяться к следующему запросу.","loginInvalidKey":"Доставленный ключ не прошел проверку (401). Попробуйте снова или вставьте его вручную.","loginNetwork":"Не удалось подключиться к сервису Command Code для проверки ключа; проверьте подключение к сети и повторите попытку.","loginOpenLink":"Откройте страницу авторизации ↗","loginStarting":"Запуск локального серверного обработчика callback…","loginStoreFailed":"Не удалось сохранить ключ в локальной службе учетных данных; вставьте его вручную.","loginSuccess":"Вошли как","loginTimeout":"Истекло время ожидания ответа авторизации; попробуйте снова.","loginTitle":"Войти, чтобы получить ключ","loginUnavailable":"Вход в систему недоступен в этой среде; вставьте {API key} вместо этого.","loginWaiting":"Ожидание авторизации в вашем браузере…","modelSearchEmpty":"Подходящих моделей не найдено","modelSearchPlaceholder":"Поиск модели по имени или ID…","modelStale":"Устаревшая модель (не найдена в текущем каталоге)","monthlyLine":" 💳 В месяц {monthly} (куплено {purchased} / бесплатно {free})","nav":"Код команды","noData":"(нет данных — проверьте API-ключ)","numberTooLarge":"Превышено допустимое максимальное значение (2147483647 мс)","numberTooSmall":"Должно быть не менее 1 (мс)","overridden":"Переопределено","partialFailures":"⚠️ Сбои на некоторых эндпоинтах: {list}","planLine":" 📦 Тариф {name}{status}{period}","planPeriodSuffix":" · окончание периода: {date}","rateLimitBadge":" ⏳ лимит запросов (ожидание окна)","readOnly":"Настройки доступны только для чтения.","requestTimeoutMs":"Таймаут запроса (мс)","requestTimeoutMsHint":"Время ожидания первого байта ответа; по умолчанию 60000.","requestsLine":" 💬 Запросы {n} / сбоев {f} успешность {r}%","reset":"Сбросить","resetSuffix":"сброс {when}","ruleAccount":"Целевой аккаунт","ruleAdd":"Добавить правило","ruleHint":"Отметьте модели для маршрутизации в выпадающем списке (множественный выбор), затем выберите целевой аккаунт.","ruleModel":"Модели","ruleModelCount":"Выбрано моделей: {count}","ruleModelPick":"Выберите модели…","ruleRemove":"Удалить","rulesCatalogFailed":"Не удалось загрузить каталог моделей — выбор моделей недоступен; сохранённые правила продолжают действовать.","rulesEmpty":"Правил пока нет.","rulesHint":"Выберите модели (множественный выбор) и направьте их на конкретный аккаунт. Когда модель из запроса совпадает с правилом и аккаунт доступен, запрос обслуживается им; при исчерпании или недоступности аккаунта происходит откат к стандартной ротации. Правила проверяются по порядку сверху вниз — срабатывает первое совпадение.","rulesOrder":"Порядок правил","rulesTitle":"Правила маршрутизации моделей","rulesTotal":"Всего правил: {count}","save":"Сохранить","saveFailed":"Не удалось сохранить, попробуйте снова.","saved":"Сохранено ✓","saving":"Сохранение","show":"Показать","showSidebarQuota":"Показывать карточку квоты в боковой панели","showSidebarQuotaHint":"Когда включено, карточка тарифа и квоты Command Code располагается внизу боковой панели (над Настройками) и открывает полный дашборд. По умолчанию выключено: ничего не отображается слева и фоновый опрос не выполняется. Применяется при сохранении.","streamIdleTimeoutMs":"Таймаут простоя потока (мс)","streamIdleTimeoutMsHint":"Как долго зависший поток считается мёртвым; по умолчанию 300000 (намеренно щедро — модели с долгим обдумыванием могут молчать минутами).","title":"Код команды","tokensLine":" 🔤 Токены {in} вход / {out} выход","unconfigured":" (API-ключ не настроен)","unsaved":"Не сохранено","updateAvailable":"доступно обновление","updateHint":"Доступна новая версия; нажмите для просмотра заметок о выпуске. Уведомление исчезнет после обновления плагина.","usageActive":"Активно","usageCooldown":"Охлаждение","usageCost":"Потратить","usageError":"Не удалось получить данные об использовании","usageExceeded":"Превышено","usageFailed":"не удалось","usageFiveHour":"5-часовое окно","usageFree":"Бесплатно","usageHeader":"── Запросы ──────────────────────────","usageInvalidKey":"Неверный ключ","usageKeyClear":"Очистить сохранённый ключ","usageKeyClearStaged":"Будет очищено при сохранении","usageKeyInvalid":"Неверный или просроченный API-ключ","usageKeyInvalidHint":"Сервер отклоняет все запросы (401). Проверьте ключ, настроенный для этого аккаунта, или создайте новый в консоли commandcode.ai.","usageLoading":"Получение данных об использовании аккаунта…","usageMonthly":"Ежемесячно","usageNetworkError":"Не удалось подключиться к сервису Command Code","usageNetworkHint":"На сервер не поступило ни одного запроса. Проверьте подключение к сети или настройку базового API.","usageNoKey":"Настройте API-ключ, чтобы увидеть здесь данные об использовании и состоянии кредитов этого аккаунта.","usagePartial":"Некоторые данные конечной точки недоступны","usagePeriodEnd":"Период заканчивается","usagePurchased":"Куплено","usageRefresh":"Обновить","usageRefreshing":"Обновление…","usageRequests":"Запросы","usageReset":"Сбросить","usageServiceUnavailable":"Сервис Command Code временно недоступен","usageServiceUnavailableHint":"Сервер вернул ошибки (5xx); попробуйте обновить позже.","usageSuccessRate":"Уровень успеха","usageTitle":"Использование аккаунта","usageTokens":"Токены","usageTokensIn":"в","usageTokensOut":"выход","usageUnconfigured":"Для этого аккаунта ещё не настроен API-ключ.","usageUndoKeyClear":"Отменить очистку","usageUpdated":"Обновлено","usageWeekly":"Еженедельное окно","visibleModelsCleanStale":"Очистить устаревшие ({count})","visibleModelsCount":"Выбрано моделей: {count}","visibleModelsHideInactive":"Скрыть неактивные","visibleModelsHint":"Выберите модели, которые будут доступны для назначения правил маршрутизации","visibleModelsPick":"Выбрать модели","visibleModelsReset":"Сбросить выбор моделей","visibleModelsShowAll":"Показать все модели","visibleModelsStaleHint":"{count} выбранных моделей больше нет в каталоге (возможно, выведены из эксплуатации); на остальные модели это не влияет. Удалите их или сохраните.","visibleModelsTitle":"Видимые модели","webSearch":"Использовать Command Code для веб-поиска DSH","webSearchHint":"Если включено, инструмент web_search для модели работает через Command Code (тот же API-ключ и base URL, что и в чате). Если выключено, используется встроенный поиск DeepSeek.","weeklyLine":" 📅 Недельное {used} / {cap}{warn}","windowBarLine":" └ {bar} сброс {when}","windowsHeader":"── Использование окна ───────────────","workingDir":"Рабочая директория","workingDirHint":"Необязательно. Оставьте пустым, чтобы использовать текущий рабочий каталог процесса (указан в поле); укажите путь только для фиксации конкретного расположения."}}
1
+ {"commandcode":{"accountSeparator":"────────────────────","accountTitle":"📊 {label}{badges}","activeBadge":" ✅ активен","barLine":" └ {bar} {pct}%","blockedInvalidKey":"⛔ API-ключ недействителен или истёк — сервер отклонил запросы (401); проверьте ключ аккаунта","blockedNetwork":"⚠️ Не удалось подключиться к Command Code — проверьте сеть или адрес API","blockedServiceUnavailable":"⚠️ Сервис Command Code временно недоступен (5xx); повторите позже","cooldownBadge":" ⏳ охлаждение, сброс {when}","costLine":" 💰 Расход {money} ({credits} кредитов)","creditsHeader":"── Кредиты ──────────────────────────","errorText":"Не удалось получить статистику Command Code: {message}","exceededWarning":" ⚠️ превышен!","fiveHourLine":" ⏱ 5-часовое {used} / {cap}{warn}","imageGate":"В сессии уже есть изображения, а модель {model} не поддерживает изображения; выберите модель с поддержкой зрения или удалите изображения из сессии.","invalidCredentialBadge":" ⛔ неверный ключ","monthlyLine":" 💳 В месяц {monthly} (куплено {purchased} / бесплатно {free})","noData":"(нет данных — проверьте API-ключ)","partialFailures":"⚠️ Сбои на некоторых эндпоинтах: {list}","planLine":" 📦 Тариф {name}{status}{period}","planPeriodSuffix":" · окончание периода: {date}","rateLimitBadge":" ⏳ лимит запросов (ожидание окна)","requestsLine":" 💬 Запросы {n} / сбоев {f} успешность {r}%","resetSuffix":"сброс {when}","title":"📊 Использование Command Code{account}","tokensLine":" 🔤 Токены {in} вход / {out} выход","unconfigured":" (API-ключ не настроен)","usageHeader":"── Запросы ──────────────────────────","weeklyLine":" 📅 Недельное {used} / {cap}{warn}","windowBarLine":" └ {bar} сброс {when}","windowsHeader":"── Использование окна ───────────────"},"panel.commandcode":{"active":"Активен","close":"Закрыть","closeHint":"Вернуться к диалогу","coolingDown":"Охлаждение","credits":"Кредиты","errorGeneric":"Не удалось получить данные об использовании аккаунта","errorInvalidKey":"API-ключ недействителен или истёк","errorInvalidKeyHint":"Сервер отклонил все запросы (401). Проверьте ключ для этого аккаунта или сгенерируйте новый в консоли commandcode.ai.","errorNetwork":"Не удалось связаться с сервисом Command Code","errorNetworkHint":"Запрос не достиг сервера. Проверьте сетевое подключение или настройку базового URL API.","errorServiceUnavailable":"Сервис Command Code временно недоступен","errorServiceUnavailableHint":"Сервер возвращает ошибки (5xx). Повторите попытку через минуту.","exceeded":"Превышен","exhausted":"Исчерпан","failed":"ошибок","fiveHour":"5-часовое окно","fiveHourShort":"5 ч","free":"Бесплатно","invalidKey":"Неверный ключ","limits":"Лимиты","loading":"Загрузка…","monthly":"Месячный лимит","monthlyLimit":"Месячный лимит","monthlyUsed":"Использовано за месяц","nav":"Command Code","noKey":"Ключ не настроен","noKeyHint":"Добавьте API-ключ Command Code в Настройках, чтобы отслеживать квоту и кредиты.","partial":"Частично","periodEnds":"Окончание периода","plan":"Тариф","purchased":"Приобретено","refresh":"Обновить","refreshing":"Обновление…","remaining":"Осталось","requests":"Запросы","resets":"Сброс через","spend":"Расходы","subtitle":"Тарифы, кредиты и плавающие окна квот","successRate":"Успешность","tokens":"Токены","tokensIn":"Входящие токены","tokensOut":"Исходящие токены","unavailable":"Недоступно","unconfigured":"Не настроено","updated":"Обновлено","usage":"Использование","weekly":"Недельное окно","weeklyShort":"7 дн","windowUnlimited":"Без ограничений"},"settings.commandcode":{"accountAdd":"Добавить аккаунт","accountDefault":"Основной аккаунт","accountKey":"API-ключ","accountKeyHint":"API-ключ этого аккаунта. Если оставить поле пустым, сохранённый ключ останется без изменений.","accountLabel":"Название аккаунта","accountRemove":"Удалить","accountSeparator":"────────────────────","accountTitle":"📊 {label}{badges}","accountsHint":"Когда активный аккаунт достигает лимита использования (429) или его ключ недействителен (401), запросы переключаются на следующий аккаунт; когда все аккаунты исчерпаны, ошибка указывает ближайшее время сброса окна.","accountsTitle":"Смена аккаунта","activeAccount":"Активный аккаунт","activeAccountAuto":"Авто (первый доступный аккаунт)","activeAccountHint":"Закрепите предпочтительный аккаунт; применяется к следующему запросу после сохранения. Если выбранный аккаунт исчерпан, запросы будут перенаправлены на другой доступный аккаунт.","activeBadge":" ✅ активен","advancedInvalid":"Число в расширенных настройках не готово к сохранению; раскройте, чтобы исправить.","advancedOverriddenMany":"{count} настроено","advancedOverriddenOne":"1 настроенный","advancedSettings":"Дополнительно","advancedSettingsHint":"Редко используемые параметры: базовый URL API, рабочая директория, тайм-ауты и фильтрация моделей.","apiBase":"Базовый URL API","apiBaseHint":"По умолчанию используется https://api.commandcode.ai; обычно оставляйте как есть.","apiKey":"API-ключ","apiKeyHint":"Создайте его в консоли commandcode.ai. Если оставить это поле пустым, сохранённый ключ останется без изменений.","apiKeyLocked":"Ключ предоставлен только для чтения","apiKeySet":"Настроено","apiKeyUnset":"Не настроено","barLine":" └ {bar} {pct}%","blockedInvalidKey":"⛔ API-ключ недействителен или истёк — сервер отклонил запросы (401); проверьте ключ аккаунта","blockedNetwork":"⚠️ Не удалось подключиться к Command Code — проверьте сеть или адрес API","blockedServiceUnavailable":"⚠️ Сервис Command Code временно недоступен (5xx); повторите позже","cancel":"Отмена","cardConfiguredHint":"API-ключ готов. Чтобы заменить его, добавить ротацию аккаунтов, проверить использование или изменить базовый API, откройте страницу \"Command Code\" в Настройках.","cardLoadingHint":"Загрузка конфигурации командного кода…","cardRegistrationHint":"Эта карта предоставлена плагином Command Code; для отображения всех элементов управления требуется более новая версия DeepSeek Harness.","cardRouteActive":"Активный","cardTitle":"Подключение командного кода","cooldownBadge":" ⏳ охлаждение, сброс {when}","costLine":" 💰 Расход {money} ({credits} кредитов)","creditsHeader":"── Кредиты ──────────────────────────","discard":"Отменить","errorText":"Не удалось получить статистику Command Code: {message}","exceededWarning":" ⚠️ превышен!","filterModelsByPlan":"Скрыть модели вне тарифного плана","filterModelsByPlanHint":"Если включено, в выборе моделей отображаются только те, что входят в вашу подписку; при наличии баланса кредитов по запросу показывается полный каталог.","fiveHourLine":" ⏱ 5-часовое {used} / {cap}{warn}","hide":"Скрыть","imageGate":"В сессии уже есть изображения, а модель {model} не поддерживает изображения; выберите модель с поддержкой зрения или удалите изображения из сессии.","intro":"Настройте подключение к Command Code Provider. API-ключ сохраняется только в локальной службе учетных данных и никогда не отображается; остальные поля записываются в пользовательские настройки и вступают в силу при следующем запросе.","invalidCredentialBadge":" ⛔ неверный ключ","invalidNumber":"Недопустимый номер","loginButton":"Войдите в Command Code","loginCancel":"Отменить вход","loginCancelled":"Вход отменён.","loginDenied":"Доступ запрещён. Попробуйте снова или вставьте ключ вручную.","loginFailedGeneric":"Не удалось войти; попробуйте снова или вставьте ключ вручную.","loginHintIdle":"Не хотите создавать ключ вручную? Войдите в систему, и ваш браузер откроет страницу авторизации commandcode.ai; одобренный ключ сохранится в локальном сервисе учетных данных и будет применяться к следующему запросу.","loginInvalidKey":"Доставленный ключ не прошел проверку (401). Попробуйте снова или вставьте его вручную.","loginNetwork":"Не удалось подключиться к сервису Command Code для проверки ключа; проверьте подключение к сети и повторите попытку.","loginOpenLink":"Откройте страницу авторизации ↗","loginStarting":"Запуск локального серверного обработчика callback…","loginStoreFailed":"Не удалось сохранить ключ в локальной службе учетных данных; вставьте его вручную.","loginSuccess":"Вошли как","loginTimeout":"Истекло время ожидания ответа авторизации; попробуйте снова.","loginTitle":"Войти, чтобы получить ключ","loginUnavailable":"Вход в систему недоступен в этой среде; вставьте {API key} вместо этого.","loginWaiting":"Ожидание авторизации в вашем браузере…","modelSearchEmpty":"Подходящих моделей не найдено","modelSearchPlaceholder":"Поиск модели по имени или ID…","modelStale":"Устаревшая модель (не найдена в текущем каталоге)","monthlyLine":" 💳 В месяц {monthly} (куплено {purchased} / бесплатно {free})","nav":"Код команды","noData":"(нет данных — проверьте API-ключ)","numberTooLarge":"Превышено допустимое максимальное значение (2147483647 мс)","numberTooSmall":"Должно быть не менее 1 (мс)","overridden":"Переопределено","partialFailures":"⚠️ Сбои на некоторых эндпоинтах: {list}","planLine":" 📦 Тариф {name}{status}{period}","planPeriodSuffix":" · окончание периода: {date}","rateLimitBadge":" ⏳ лимит запросов (ожидание окна)","readOnly":"Настройки доступны только для чтения.","requestTimeoutMs":"Таймаут запроса (мс)","requestTimeoutMsHint":"Время ожидания первого байта ответа; по умолчанию 60000.","requestsLine":" 💬 Запросы {n} / сбоев {f} успешность {r}%","reset":"Сбросить","resetSuffix":"сброс {when}","ruleAccount":"Целевой аккаунт","ruleAdd":"Добавить правило","ruleHint":"Отметьте модели для маршрутизации в выпадающем списке (множественный выбор), затем выберите целевой аккаунт.","ruleModel":"Модели","ruleModelCount":"Выбрано моделей: {count}","ruleModelPick":"Выберите модели…","ruleRemove":"Удалить","rulesCatalogFailed":"Не удалось загрузить каталог моделей — выбор моделей недоступен; сохранённые правила продолжают действовать.","rulesEmpty":"Правил пока нет.","rulesHint":"Выберите модели (множественный выбор) и направьте их на конкретный аккаунт. Когда модель из запроса совпадает с правилом и аккаунт доступен, запрос обслуживается им; при исчерпании или недоступности аккаунта происходит откат к стандартной ротации. Правила проверяются по порядку сверху вниз — срабатывает первое совпадение.","rulesOrder":"Порядок правил","rulesTitle":"Правила маршрутизации моделей","rulesTotal":"Всего правил: {count}","save":"Сохранить","saveFailed":"Не удалось сохранить, попробуйте снова.","saved":"Сохранено ✓","saving":"Сохранение","show":"Показать","showSidebarQuota":"Показывать карточку квоты в боковой панели","showSidebarQuotaHint":"Когда включено, карточка тарифа и квоты Command Code располагается внизу боковой панели (над Настройками) и открывает полный дашборд. По умолчанию выключено: ничего не отображается слева и фоновый опрос не выполняется. Применяется при сохранении.","streamIdleTimeoutMs":"Таймаут простоя потока (мс)","streamIdleTimeoutMsHint":"Как долго зависший поток считается мёртвым; по умолчанию 300000 (намеренно щедро — модели с долгим обдумыванием могут молчать минутами).","title":"Код команды","tokensLine":" 🔤 Токены {in} вход / {out} выход","transportMaxRetries":"Повторные попытки транспорта","transportMaxRetriesHint":"Сколько раз соединение пытается повториться автоматически; по умолчанию 5 (интервалы 0.5+1+2+4+8с, ~15с всего). После этого выдаётся ошибка вместо дальнейшего экспоненциального ожидания. Значение 0 отключает повторы. Для ограничений частоты и ответов 5xx действует отдельный более длительный интервал.","unconfigured":" (API-ключ не настроен)","unsaved":"Не сохранено","updateAvailable":"доступно обновление","updateHint":"Доступна новая версия; нажмите для просмотра заметок о выпуске. Уведомление исчезнет после обновления плагина.","usageActive":"Активно","usageCooldown":"Охлаждение","usageCost":"Потратить","usageError":"Не удалось получить данные об использовании","usageExceeded":"Превышено","usageFailed":"не удалось","usageFiveHour":"5-часовое окно","usageFree":"Бесплатно","usageHeader":"── Запросы ──────────────────────────","usageInvalidKey":"Неверный ключ","usageKeyClear":"Очистить сохранённый ключ","usageKeyClearStaged":"Будет очищено при сохранении","usageKeyInvalid":"Неверный или просроченный API-ключ","usageKeyInvalidHint":"Сервер отклоняет все запросы (401). Проверьте ключ, настроенный для этого аккаунта, или создайте новый в консоли commandcode.ai.","usageLoading":"Получение данных об использовании аккаунта…","usageMonthly":"Ежемесячно","usageNetworkError":"Не удалось подключиться к сервису Command Code","usageNetworkHint":"На сервер не поступило ни одного запроса. Проверьте подключение к сети или настройку базового API.","usageNoKey":"Настройте API-ключ, чтобы увидеть здесь данные об использовании и состоянии кредитов этого аккаунта.","usagePartial":"Некоторые данные конечной точки недоступны","usagePeriodEnd":"Период заканчивается","usagePurchased":"Куплено","usageRefresh":"Обновить","usageRefreshing":"Обновление…","usageRequests":"Запросы","usageReset":"Сбросить","usageServiceUnavailable":"Сервис Command Code временно недоступен","usageServiceUnavailableHint":"Сервер вернул ошибки (5xx); попробуйте обновить позже.","usageSuccessRate":"Уровень успеха","usageTitle":"Использование аккаунта","usageTokens":"Токены","usageTokensIn":"в","usageTokensOut":"выход","usageUnconfigured":"Для этого аккаунта ещё не настроен API-ключ.","usageUndoKeyClear":"Отменить очистку","usageUpdated":"Обновлено","usageWeekly":"Еженедельное окно","visibleModelsCleanStale":"Очистить устаревшие ({count})","visibleModelsCount":"Выбрано моделей: {count}","visibleModelsHideInactive":"Скрыть неактивные","visibleModelsHint":"Выберите модели, которые будут доступны для назначения правил маршрутизации","visibleModelsPick":"Выбрать модели","visibleModelsReset":"Сбросить выбор моделей","visibleModelsShowAll":"Показать все модели","visibleModelsStaleHint":"{count} выбранных моделей больше нет в каталоге (возможно, выведены из эксплуатации); на остальные модели это не влияет. Удалите их или сохраните.","visibleModelsTitle":"Видимые модели","webSearch":"Использовать Command Code для веб-поиска DSH","webSearchHint":"Если включено, инструмент web_search для модели работает через Command Code (тот же API-ключ и base URL, что и в чате). Если выключено, используется встроенный поиск DeepSeek.","weeklyLine":" 📅 Недельное {used} / {cap}{warn}","windowBarLine":" └ {bar} сброс {when}","windowsHeader":"── Использование окна ───────────────","workingDir":"Рабочая директория","workingDirHint":"Необязательно. Оставьте пустым, чтобы использовать текущий рабочий каталог процесса (указан в поле); укажите путь только для фиксации конкретного расположения."}}
@@ -1 +1 @@
1
- {"dsh-context":{"agents.billed":"{n} выставлено к оплате","agents.chip.count":"{n} агентов","agents.chip.running":"{n} запущено","agents.chip.tokens":"{n} токенов в контексте","agents.continuable":"продолжаемый","agents.legend.free":"свободное окно","agents.more":"Ещё {n} не показано","agents.oneshot":"одноразовый","agents.open":"нажмите, чтобы открыть →","agents.requests":"{n} запросов","agents.running":"выполняется","agents.self":"текущий","agents.solo":"Пока нет суб-агентов — когда агент делегирует работу через инструмент суб-агентов, сеть будет отображаться здесь","agents.sub":"Живой контекст этого агента и его подчиненных агентов · нажмите на узел, чтобы открыть его сессию","agents.title":"Сеть агентов","attach.close":"Закрыть","attach.image":"Изображение","attach.images":"Изображения","attach.loadFailed":"Не удалось загрузить · нажмите, чтобы повторить","attach.loading":"…","attach.open":"Открыть изображение полностью","attach.other":"Другой контент","attach.preview":"Превью изображения","attach.raw":"Сырой","attach.sent":"Отправлено","attach.token":"Токен","attach.tokensTip":"Расчетная стоимость токенов через официальное преобразование размера изображения DeepSeek (ограничение в 384 токена на изображение)","block.answer":"Ответ","block.content":"Контент","block.line":"1 строка","block.lines":"{n} строк","block.result":"Результат","block.summary":"Сводка","block.thinking":"Обоснование","brief.input":"В","brief.inputTip":"Что было введено после предыдущего ответа и перед этим запросом — обычно результаты предыдущего вызова инструмента; начало нового оборота не содержит ничего нового","brief.locate":"Показать в контекстном браузере","brief.more":"+{n}","brief.noInputs":"(ничего нового)","brief.reply":"Ответ","brief.replyTip":"Что модель вернула на этом шаге (текстовый ответ или вызовы инструментов) — результаты вызовов отображаются в строке In следующего бара","brief.turn":"Пользователь","brief.turnTip":"Сообщение пользователя, которое открыло этот ход — каждый шаг хода ссылается на него","browser.approx":"Некоторые удаленные сообщения этого шага превышают срок хранения — приведенное ниже восстановление является приблизительным","browser.deltaHint":"по сравнению с предыдущим ходом","browser.dna":"Режим ДНК","browser.dnaTip":"Ленточная полоса элементов в порядке чтения контекста моделью: системный промпт, схемы инструментов, хронология сообщений (наведите для деталей, нажмите для перехода к строке)","browser.headerMetaOnly":"Эта среда не может загрузить заголовки по запросу; только оценка токенов","browser.items":"{n} элементов","browser.live":"В прямом эфире (Следующий запрос)","browser.liveNow":"В прямом эфире · Следующий запрос","browser.loadFailed":"Не удалось загрузить — нажмите, чтобы повторить","browser.loading":"Загрузка полного содержимого из более старой истории сеанса…","browser.missingLive":"… {n} предыдущих сообщений также являются частью контекста (за пределами предоставленного окна)","browser.noContent":"Полное содержимое находится за пределами загруженного окна сообщений (загрузите более старую историю в Чате для просмотра)","browser.noEpoch":"Содержание заголовка (Системное сообщение / Схемы инструментов) этого шага находится за пределами удержания","browser.noHeader":"Обслуживается устаревшей версией плагина: только оценка токенов, без содержимого","browser.noSystem":"В заголовке этого запроса не было системного промпта","browser.notInLog":"Этот элемент больше не находится в журнале сессии (возможно, он был удалён или очищен)","browser.preview":"Предварительный просмотр","browser.rowNoMatch":"Нет строк, соответствующих текущему фильтру","browser.search.assistant":"Фильтровать по ответам или звонкам…","browser.search.inject":"Фильтровать введённый контекст…","browser.search.skill":"Фильтр навыков…","browser.search.tool":"Фильтровать по инструменту или аргументам…","browser.search.user":"Фильтровать по тексту сообщения…","browser.title":"Контекстный браузер","call.exit":"выход {n}","call.fail":"Не удалось","call.ok":"ОК","cat.assistant":"Сообщения ассистента","cat.inject":"Введённый контекст","cat.skill":"Инъекции навыков","cat.system":"Системное сообщение","cat.tool":"Результаты инструмента","cat.tools":"Схемы инструментов","cat.user":"Сообщения пользователя","cmd.close":"Закрыть","cmd.desc":"Просмотр текущего контекста макияжа, просмотр состава по шагам","cmd.label":"Контекст","cmd.section":"Контекст","detail.actual":"Фактический запрос {n}","detail.cache":"Кэш {n}%","detail.estTotal":"Примерно ≈ {n}","detail.lastStep":"Последний шаг","detail.loadFailed":"Не удалось загрузить историю — нажмите для повтора","detail.loading":"Загрузка истории…","detail.output":"Вывод {n}","detail.step":"Поверните {t} · Шаг {s}","detail.turn":"Поверните {t} · {n} шагов","error":"Не удалось прочитать данные контекста:","error.retry":"Повторить","ev.compaction":"Контекст сжат (резюме заменено {n} сообщений)","ev.mode.plan.off":"Режим плана выключен","ev.mode.plan.on":"Режим планирования включён","ev.model":"Модель изменена: {a} → {b}","ev.prune":"Вывод инструмента обрезан","ev.skill":"Навык внедрён ({name})","events.at":"Поверните {t} · Шаг {s}","events.empty":"Событий контекста пока нет (компактизация, инъекции, переключения моделей отображаются здесь)","events.range":"Поверните {t} · Шаг {a}→{b}","events.rangeTo":"Поверните {a} · Шаг {as} → Поверните {b} · Шаг {bs}","events.title":"Контекстные события","files.chipTip":"{files} файлов · {ops} операций","files.deltaTip":"Совокупное изменение строк, оцененное по аргументам вызовов редактирования/записи: + добавлено / − удалено","files.empty":"Нет чтений, записей или поиска файлов в этом диапазоне","files.errs":"{n} не удалось","files.files":"{n} файлов","files.form.dir":"Каталог","files.form.image":"Изображение","files.form.text":"Файл","files.glyph.archive":"Архив","files.glyph.assets":"Активы","files.glyph.build":"Результат сборки","files.glyph.config":"Конфигурация","files.glyph.data":"Данные / манифест","files.glyph.database":"База данных","files.glyph.deps":"Зависимости","files.glyph.docker":"Docker","files.glyph.docs":"Документы","files.glyph.document":"Документ","files.glyph.font":"Шрифт","files.glyph.hidden":"Каталог метаданных","files.glyph.ignore":"Игнорировать правила","files.glyph.lang.c":"C","files.glyph.lang.cpp":"C++","files.glyph.lang.csharp":"C#","files.glyph.lang.dart":"Dart","files.glyph.lang.go":"Перейти","files.glyph.lang.html":"HTML","files.glyph.lang.java":"Java","files.glyph.lang.js":"JavaScript","files.glyph.lang.kotlin":"Kotlin","files.glyph.lang.lua":"Lua","files.glyph.lang.php":"PHP","files.glyph.lang.ruby":"Рубин","files.glyph.lang.rust":"Ржавчина","files.glyph.lang.scala":"Скала","files.glyph.lang.svelte":"Свелт","files.glyph.lang.swift":"Быстро","files.glyph.lang.ts":"TypeScript","files.glyph.lang.vue":"Вью","files.glyph.license":"Лицензия","files.glyph.lock":"Файл блокировки","files.glyph.log":"Войти","files.glyph.markdown":"Документ с разметкой","files.glyph.media":"Медиа","files.glyph.notebook":"Блокнот","files.glyph.python":"Питон","files.glyph.root":"Корневая папка рабочей области","files.glyph.scripts":"Скрипты","files.glyph.sheet":"Таблица","files.glyph.shell":"Оболочка","files.glyph.style":"Стили","files.glyph.tests":"Тесты","files.hits":"{n} попаданий","files.kind.all":"Все","files.kind.image":"Изображения","files.kind.read":"Читать","files.kind.search":"Искали","files.kind.write":"Написано","files.locate":"Показать эту операцию в Обозревателе контекста","files.noMatch":"Нет файлов, соответствующих текущим фильтрам","files.open":"Открыть на вашем устройстве","files.preview":"Предпросмотр в боковой панели","files.readEst":"Строк прочитано, оценка на основе аргумента limit","files.readTip":"Прочитайте строки {a}–{b}","files.scopeLatest":"До последнего · следует за выбором трендового графика","files.search":"Фильтровать по пути…","files.sort.count":"Самый активный","files.sort.latest":"Последние","files.sort.path":"По пути","files.sortTip":"Сортировать файлы по количеству операций (выбранного вида при активной метке вида), последней активности или пути","files.title":"Активность файла","footer":"Оценка: та же эвристика с фиксированной плотностью, что и встроенный tokenMeter в dsh (~4 символа ≈ 1 токен); «фактическое» — это использование, сообщаемое провайдером.","form.catalog":"Обновление каталога","form.context":"Контекстная инъекция","form.instructions":"Инструкции","form.notice":"Уведомление","form.recall":"Напомнить","form.relay":"Агентский ретранслятор","form.snapshot":"Снимок состояния","gate.body":"dsh-context поддерживает DeepSeek Harness версии {minimum} или новее.","gate.current":"Текущая","gate.minimum":"Минимально требуемая","gate.ok":"Понятно","gate.orNewer":"или новее","gate.title":"Требуется обновление DSH","gran.delta":"Дельта","gran.modeHint":"Итого: суммарное значение; Дельта: изменение по сравнению с предыдущим запросом","gran.step":"Шаг","gran.total":"Всего","gran.turn":"Повернуть","jump.statsLine":"Просмотр состава контекста на вкладке «Контекст»","jump.title":"Посмотреть этот шаг во вкладке Контекст","kind.compaction":"Компактный","kind.inject":"Внедрить","kind.mode":"Режим","kind.model":"Переключить","kind.prune":"Обрезать","loading":"Чтение журнала сессии…","node.calls":"Звонки","node.empty":"(пустой ответ)","node.failed":"Выполнение инструмента завершилось с ошибкой","node.nonText":"(сообщение без текста)","node.skillTag":"Навык · {name}","node.snapshot":"Снимок:","node.toolResult":"Результат инструмента","nodes.empty":"Нет видимых сообщений прямо сейчас","nodes.hint":"в настоящее время видимые модели, сначала новые","nodes.more":"… {n} предыдущих сообщений пропущено","nodes.title":"Сообщения","overview.compactReserve":"Резерв автоуплотнения: автоуплотнение срабатывает при {pct}% окна — эта область обычно сохраняется как запас, фактически не используется.","overview.estimate":"токены (примерно)","overview.free":"Бесплатное окно","overview.ofUsed":"из использованного контекста","overview.title":"Текущий контекст","overview.used":"использовано контекста","placement.all":"Везде","placement.sidebar":"Боковая панель","placement.tab":"Вкладка","plugin.github":"GitHub","plugin.hint":"Лучший плагин контекста для DSH ⭐","plugin.name":"Плагин","plugin.settings":"Настройки","plugin.settingsOpen":"Открыть в Настройках","plugin.title":"Информация о плагине","rich.copied":"Скопировано","rich.copy":"Скопировать исходный текст","rich.md":"Markdown","rich.md.copied":"Скопировано","rich.md.copy":"Копировать","rich.md.footnotes":"Сноски","rich.raw":"Сырьё","rich.toMd":"Просмотреть как Markdown","rich.toRaw":"Просмотреть исходный текст","settings.collapse":"Свернуть","settings.desc":"Настройки отображения для панели Context","settings.expand":"Развернуть","settings.fileSort":"Сортировка файлов по умолчанию","settings.gran":"Гранулярность трендов по умолчанию","settings.mode":"Отображение трендов по умолчанию","settings.placement":"Варианты размещения","settings.readOnly":"Настройки доступны только для чтения в этой среде","settings.title":"Контекст","settings.toolSort":"Схемы инструментов · Сортировка по умолчанию","sidebar.guideDescription":"Анализ состава контекста сессии, пошаговой истории и сообщений.","stats.cacheHit":"Кэш-попадания","stats.cacheHitTip":"Накопительная доля чтения из кэша от общего платного ввода за сессию.","stats.compactions":"Компактизации","stats.cost":"Расч. стоимость","stats.costHit":"попадание","stats.costMiss":"пропустить","stats.costOut":"Вывод","stats.costPriceHead":"Тарифы за 1 миллион токенов (пиковый | внепиковый по половине цены):","stats.costPriceHeadPair":"Ставки за 1 млн токенов (пик|скидка):","stats.costTip":"Примерная совокупная стоимость всей сессии по прайс-листу DeepSeek: входные данные разделены по попаданию/промаху кэша, выходные данные включают рассуждения; каждый запрос оценивается по пиковой ставке (01:00–04:00, 06:00–10:00 UTC) или по половинной ставке вне пикового времени в зависимости от времени запроса. Применяется к deepseek-v4-flash / deepseek-v4-pro на любом провайдере; цены зафиксированы, только для справки.","stats.costTipDeepseek":"DeepSeek тарифицирует пиковые окна (будни 09:00–12:00, 14:00–18:00 по Пекину) по полному прайсу; в остальные часы действует скидка 50%.","stats.costUnavailable":"Цены моделей недоступны (повторяем запрос) — стоимость пока не может быть рассчитана.","stats.costWrite":"запись","stats.hint":"За период сохранённой истории (аналогично графику истории)","stats.humanInputs":"Сообщения пользователя","stats.humanInputsTip":"Сообщения пользователя и ответы на вопросы в текущей сессии.","stats.images":"Изображения","stats.injects":"Инъекции","stats.prunes":"Чернослив","stats.steps":"Шаги","stats.title":"Статистика контекста","stats.toolCalls":"Вызовы инструментов","stats.turns":"Переключается","tab":"Контекст","timing.callTimes":"Вызовов: {n}","timing.empty":"Данных о таймингах пока нет — они появятся в процессе беседы","timing.gen":"Генерация LLM","timing.hint":"Распределение времени активности за всю сессию","timing.other":"Накладные расходы","timing.reasoning":"Размышление","timing.text":"Ответ","timing.title":"Статистика таймингов","timing.toolArgs":"Аргументы инструментов","timing.toolTimes":"Запусков: {n}","timing.tools":"Вызовы инструментов","timing.total":"Время активности","timing.ttft":"TTFT","tip.actual":"(фактическое {n})","tip.cat":"{cat} ≈ {n}","tip.delta":"Дельта {n}","tip.step":"Повернуть {t} · Шаг {s}","tip.total":"Всего ≈ {n}","tip.turn":"Поверните {t} · {n} шагов","tip.turn1":"Шаг {t} · 1 действие","tokens.cacheHit":"Попадание в кэш","tokens.cacheRead":"Вход из кэша","tokens.cacheWrite":"Запись в кэш","tokens.hint":"Суммарное использование по данным провайдера","tokens.output":"Выход","tokens.outputNote":"вкл. рассуждения","tokens.title":"Статистика токенов","tokens.total":"Всего","tokens.uncached":"Вход без кэша","tool.desc":"Описание","tool.hitsTip":"Сколько раз этот инструмент вызывался и возвращал ответ в контексте текущего шага","tool.jsonHide":"Свернуть","tool.jsonToggle":"Просмотреть сырой JSON","tool.noMatch":"Нет инструментов, соответствующих текущему фильтру","tool.params":"Параметры","tool.paramsEmpty":"(без параметров)","tool.plugin":"Регистрирующий плагин этого инструмента (для справки)","tool.search":"Фильтровать по названию, описанию или параметрам…","tool.sort.count":"По числу вызовов","tool.sort.name":"По имени","tool.sort.size":"По размеру","tool.sortTip":"Сортировать инструменты по размеру токена (по умолчанию) или по названию","tool.unknown":"Неизвестный плагин","tool.unknownTitle":"Инструмент был зарегистрирован до загрузки контекстного плагина, или его плагин был выгружен, поэтому его провайдер не может быть определен","tools.more":"из {n}","tools.top":"Лучшие схемы инструментов:","trend.adaptive":"Адаптивный","trend.adaptiveHint":"Масштабировать высоту столбцов под видимый диапазон с учётом прокрутки","trend.empty":"Отправьте сообщение, и состав контекста каждого запроса модели появится здесь","trend.focus":"Отображается только {cat}","trend.hint":"Наведите курсор для просмотра деталей, ✂ обозначает уплотнение/удаление, Шаг/Ход переключает детализацию","trend.title":"История контекста"}}
1
+ {"dsh-context":{"agents.billed":"{n} выставлено к оплате","agents.chip.count":"{n} агентов","agents.chip.running":"{n} запущено","agents.chip.tokens":"{n} токенов в контексте","agents.continuable":"продолжаемый","agents.legend.free":"свободное окно","agents.more":"Ещё {n} не показано","agents.oneshot":"одноразовый","agents.open":"нажмите, чтобы открыть →","agents.requests":"{n} запросов","agents.running":"выполняется","agents.self":"текущий","agents.solo":"Пока нет суб-агентов — когда агент делегирует работу через инструмент суб-агентов, сеть будет отображаться здесь","agents.sub":"Живой контекст этого агента и его подчиненных агентов · нажмите на узел, чтобы открыть его сессию","agents.title":"Сеть агентов","attach.close":"Закрыть","attach.image":"Изображение","attach.images":"Изображения","attach.loadFailed":"Не удалось загрузить · нажмите, чтобы повторить","attach.loading":"…","attach.open":"Открыть изображение полностью","attach.other":"Другой контент","attach.preview":"Превью изображения","attach.raw":"Сырой","attach.sent":"Отправлено","attach.token":"Токен","attach.tokensTip":"Расчетная стоимость токенов через официальное преобразование размера изображения DeepSeek (ограничение в 384 токена на изображение)","block.answer":"Ответ","block.content":"Контент","block.line":"1 строка","block.lines":"{n} строк","block.result":"Результат","block.summary":"Сводка","block.thinking":"Обоснование","brief.input":"В","brief.inputTip":"Что было введено после предыдущего ответа и перед этим запросом — обычно результаты предыдущего вызова инструмента; начало нового оборота не содержит ничего нового","brief.locate":"Показать в контекстном браузере","brief.more":"+{n}","brief.noInputs":"(ничего нового)","brief.reply":"Ответ","brief.replyTip":"Что модель вернула на этом шаге (текстовый ответ или вызовы инструментов) — результаты вызовов отображаются в строке In следующего бара","brief.turn":"Пользователь","brief.turnTip":"Сообщение пользователя, которое открыло этот ход — каждый шаг хода ссылается на него","browser.approx":"Некоторые удаленные сообщения этого шага превышают срок хранения — приведенное ниже восстановление является приблизительным","browser.deltaHint":"по сравнению с предыдущим ходом","browser.dna":"Режим ДНК","browser.dnaTip":"Ленточная полоса элементов в порядке чтения контекста моделью: системный промпт, схемы инструментов, хронология сообщений (наведите для деталей, нажмите для перехода к строке)","browser.headerMetaOnly":"Эта среда не может загрузить заголовки по запросу; только оценка токенов","browser.items":"{n} элементов","browser.live":"В прямом эфире (Следующий запрос)","browser.liveNow":"В прямом эфире · Следующий запрос","browser.loadFailed":"Не удалось загрузить — нажмите, чтобы повторить","browser.loading":"Загрузка полного содержимого из более старой истории сеанса…","browser.missingLive":"… {n} предыдущих сообщений также являются частью контекста (за пределами предоставленного окна)","browser.noContent":"Полное содержимое находится за пределами загруженного окна сообщений (загрузите более старую историю в Чате для просмотра)","browser.noEpoch":"Содержание заголовка (Системное сообщение / Схемы инструментов) этого шага находится за пределами удержания","browser.noHeader":"Обслуживается устаревшей версией плагина: только оценка токенов, без содержимого","browser.noSystem":"В заголовке этого запроса не было системного промпта","browser.notInLog":"Этот элемент больше не находится в журнале сессии (возможно, он был удалён или очищен)","browser.preview":"Предварительный просмотр","browser.rowNoMatch":"Нет строк, соответствующих текущему фильтру","browser.search.assistant":"Фильтровать по ответам или звонкам…","browser.search.inject":"Фильтровать введённый контекст…","browser.search.skill":"Фильтр навыков…","browser.search.tool":"Фильтровать по инструменту или аргументам…","browser.search.user":"Фильтровать по тексту сообщения…","browser.title":"Контекстный браузер","call.exit":"выход {n}","call.fail":"Не удалось","call.ok":"ОК","cat.assistant":"Сообщения ассистента","cat.inject":"Введённый контекст","cat.skill":"Инъекции навыков","cat.system":"Системное сообщение","cat.tool":"Результаты инструмента","cat.tools":"Схемы инструментов","cat.user":"Сообщения пользователя","cmd.close":"Закрыть","cmd.desc":"Просмотр текущего контекста макияжа, просмотр состава по шагам","cmd.label":"Контекст","cmd.section":"Контекст","detail.actual":"Фактический запрос {n}","detail.cache":"Кэш {n}%","detail.estTotal":"Примерно ≈ {n}","detail.lastStep":"Последний шаг","detail.loadFailed":"Не удалось загрузить историю — нажмите для повтора","detail.loading":"Загрузка истории…","detail.output":"Вывод {n}","detail.step":"Поверните {t} · Шаг {s}","detail.turn":"Поверните {t} · {n} шагов","error":"Не удалось прочитать данные контекста:","error.retry":"Повторить","ev.compaction":"Контекст сжат (резюме заменено {n} сообщений)","ev.mode.plan.off":"Режим плана выключен","ev.mode.plan.on":"Режим планирования включён","ev.model":"Модель изменена: {a} → {b}","ev.prune":"Вывод инструмента обрезан","ev.skill":"Навык внедрён ({name})","events.at":"Поверните {t} · Шаг {s}","events.empty":"Событий контекста пока нет (компактизация, инъекции, переключения моделей отображаются здесь)","events.range":"Поверните {t} · Шаг {a}→{b}","events.rangeTo":"Поверните {a} · Шаг {as} → Поверните {b} · Шаг {bs}","events.title":"Контекстные события","files.chipTip":"{files} файлов · {ops} операций","files.deltaTip":"Совокупное изменение строк, оцененное по аргументам вызовов редактирования/записи: + добавлено / − удалено","files.empty":"Нет чтений, записей или поиска файлов в этом диапазоне","files.errs":"{n} не удалось","files.files":"{n} файлов","files.form.dir":"Каталог","files.form.image":"Изображение","files.form.text":"Файл","files.glyph.archive":"Архив","files.glyph.assets":"Активы","files.glyph.build":"Результат сборки","files.glyph.config":"Конфигурация","files.glyph.data":"Данные / манифест","files.glyph.database":"База данных","files.glyph.deps":"Зависимости","files.glyph.docker":"Docker","files.glyph.docs":"Документы","files.glyph.document":"Документ","files.glyph.font":"Шрифт","files.glyph.hidden":"Каталог метаданных","files.glyph.ignore":"Игнорировать правила","files.glyph.lang.c":"C","files.glyph.lang.cpp":"C++","files.glyph.lang.csharp":"C#","files.glyph.lang.dart":"Dart","files.glyph.lang.go":"Перейти","files.glyph.lang.html":"HTML","files.glyph.lang.java":"Java","files.glyph.lang.js":"JavaScript","files.glyph.lang.kotlin":"Kotlin","files.glyph.lang.lua":"Lua","files.glyph.lang.php":"PHP","files.glyph.lang.ruby":"Рубин","files.glyph.lang.rust":"Ржавчина","files.glyph.lang.scala":"Скала","files.glyph.lang.svelte":"Свелт","files.glyph.lang.swift":"Быстро","files.glyph.lang.ts":"TypeScript","files.glyph.lang.vue":"Вью","files.glyph.license":"Лицензия","files.glyph.lock":"Файл блокировки","files.glyph.log":"Войти","files.glyph.markdown":"Документ с разметкой","files.glyph.media":"Медиа","files.glyph.notebook":"Блокнот","files.glyph.python":"Питон","files.glyph.root":"Корневая папка рабочей области","files.glyph.scripts":"Скрипты","files.glyph.sheet":"Таблица","files.glyph.shell":"Оболочка","files.glyph.style":"Стили","files.glyph.tests":"Тесты","files.hits":"{n} попаданий","files.kind.all":"Все","files.kind.image":"Изображения","files.kind.read":"Читать","files.kind.search":"Искали","files.kind.write":"Написано","files.locate":"Показать эту операцию в Обозревателе контекста","files.noMatch":"Нет файлов, соответствующих текущим фильтрам","files.open":"Открыть на вашем устройстве","files.preview":"Предпросмотр в боковой панели","files.readEst":"Строк прочитано, оценка на основе аргумента limit","files.readTip":"Прочитайте строки {a}–{b}","files.scopeLatest":"До последнего · следует за выбором трендового графика","files.search":"Фильтровать по пути…","files.sort.count":"Самый активный","files.sort.latest":"Последние","files.sort.path":"По пути","files.sortTip":"Сортировать файлы по количеству операций (выбранного вида при активной метке вида), последней активности или пути","files.title":"Активность файла","footer":"Оценка: та же эвристика с фиксированной плотностью, что и встроенный tokenMeter в dsh (~4 символа ≈ 1 токен); «фактическое» — это использование, сообщаемое провайдером.","form.catalog":"Обновление каталога","form.context":"Контекстная инъекция","form.instructions":"Инструкции","form.notice":"Уведомление","form.recall":"Напомнить","form.relay":"Агентский ретранслятор","form.snapshot":"Снимок состояния","gate.body":"dsh-context поддерживает DeepSeek Harness версии {minimum} или новее.","gate.current":"Текущая","gate.minimum":"Минимально требуемая","gate.ok":"Понятно","gate.orNewer":"или новее","gate.title":"Требуется обновление DSH","gran.delta":"Дельта","gran.modeHint":"Итого: суммарное значение; Дельта: изменение по сравнению с предыдущим запросом","gran.step":"Шаг","gran.total":"Всего","gran.turn":"Повернуть","insightsEntry.hide":"Скрывать","insightsEntry.show":"Показывать","jump.statsLine":"Просмотр состава контекста на вкладке «Контекст»","jump.title":"Посмотреть этот шаг во вкладке Контекст","kind.compaction":"Компактный","kind.inject":"Внедрить","kind.mode":"Режим","kind.model":"Переключить","kind.prune":"Обрезать","loading":"Чтение журнала сессии…","node.calls":"Звонки","node.empty":"(пустой ответ)","node.failed":"Выполнение инструмента завершилось с ошибкой","node.nonText":"(сообщение без текста)","node.skillTag":"Навык · {name}","node.snapshot":"Снимок:","node.toolResult":"Результат инструмента","nodes.empty":"Нет видимых сообщений прямо сейчас","nodes.hint":"в настоящее время видимые модели, сначала новые","nodes.more":"… {n} предыдущих сообщений пропущено","nodes.title":"Сообщения","ov.card.lastUser":"Последнее сообщение","ov.card.turns":"{n} реплик · {s} шагов","ov.current":"текущая","ov.entry":"Аналитика контекста","ov.group.label":"Группа","ov.group.ungrouped":"Без группы","ov.heat.empty":"Активности пока нет — ежедневное использование появится после запросов к моделям","ov.heat.mon.01":"Янв","ov.heat.mon.02":"Фев","ov.heat.mon.03":"Мар","ov.heat.mon.04":"Апр","ov.heat.mon.05":"Май","ov.heat.mon.06":"Июн","ov.heat.mon.07":"Июл","ov.heat.mon.08":"Авг","ov.heat.mon.09":"Сен","ov.heat.mon.10":"Окт","ov.heat.mon.11":"Ноя","ov.heat.mon.12":"Дек","ov.heat.sessions":"Активных сессий: {n}","ov.heat.sub":"Фильтр по дате","ov.heat.title":"Активность","ov.heat.wd.1":"Пн","ov.heat.wd.3":"Ср","ov.heat.wd.5":"Пт","ov.kpi.ofTotal":"из {n} всего","ov.kpi.sessions":"Активные сессии","ov.kpi.sessionsSub":"в {n} сессиях","ov.kpi.tokens":"Использовано токенов","ov.kpi.toolSub":"запусков инструментов: {dur}","ov.kpi.wallSub":"{n} вызовов модели","ov.list.dayClear":"Сбросить фильтр по дню","ov.list.dayFilter":"активность за {day}","ov.list.empty":"Сессий пока нет — профиль контекста каждой сессии появится здесь после её запуска","ov.list.next":"Следующая страница","ov.list.noData":"Данных контекста пока нет — статистика появится после запросов к модели","ov.list.noMatch":"Нет сессий, соответствующих текущим фильтрам","ov.list.page":"Страница {n} из {total}","ov.list.pager":"Пагинация сессий","ov.list.prev":"Предыдущая страница","ov.list.search":"Поиск по названию или пути…","ov.list.sort.context":"По текущему контексту","ov.list.sort.recent":"По обновлению","ov.list.sort.tokens":"По токенам","ov.list.sortLabel":"Сортировка","ov.list.title":"Сессии","ov.range.30d":"Последние 30 дней","ov.range.7d":"Последние 7 дней","ov.range.all":"Все","ov.range.label":"Период","ov.running":"Выполняется","ov.time.d":"{n} дн назад","ov.time.h":"{n} ч назад","ov.time.m":"{n} мин назад","ov.time.now":"только что","ov.title":"Аналитика контекста","ov.unavailable":"Список сессий недоступен","overview.compactReserve":"Резерв автоуплотнения: автоуплотнение срабатывает при {pct}% окна — эта область обычно сохраняется как запас, фактически не используется.","overview.estimate":"токены (примерно)","overview.free":"Бесплатное окно","overview.ofUsed":"из использованного контекста","overview.title":"Текущий контекст","overview.used":"использовано контекста","placement.all":"Везде","placement.sidebar":"Боковая панель","placement.tab":"Вкладка","plugin.github":"GitHub","plugin.hint":"Лучший плагин контекста для DSH ⭐","plugin.name":"Плагин","plugin.settings":"Настройки","plugin.settingsOpen":"Открыть в Настройках","plugin.title":"Информация о плагине","rich.copied":"Скопировано","rich.copy":"Скопировать исходный текст","rich.md":"Markdown","rich.md.copied":"Скопировано","rich.md.copy":"Копировать","rich.md.footnotes":"Сноски","rich.raw":"Сырьё","rich.toMd":"Просмотреть как Markdown","rich.toRaw":"Просмотреть исходный текст","settings.collapse":"Свернуть","settings.desc":"Настройки отображения для панели Context","settings.expand":"Развернуть","settings.fileSort":"Сортировка файлов по умолчанию","settings.gran":"Гранулярность трендов по умолчанию","settings.insightsEntry":"Пункт Context Insights","settings.mode":"Отображение трендов по умолчанию","settings.placement":"Варианты размещения","settings.readOnly":"Настройки доступны только для чтения в этой среде","settings.title":"Контекст","settings.toolSort":"Схемы инструментов · Сортировка по умолчанию","sidebar.guideDescription":"Анализ состава контекста сессии, пошаговой истории и сообщений.","stats.cacheHit":"Кэш-попадания","stats.cacheHitTip":"Накопительная доля чтения из кэша от общего платного ввода за сессию.","stats.compactions":"Компактизации","stats.cost":"Расч. стоимость","stats.costHit":"попадание","stats.costMiss":"пропустить","stats.costOut":"Вывод","stats.costPriceHead":"Тарифы за 1 миллион токенов (пиковый | внепиковый по половине цены):","stats.costPriceHeadPair":"Ставки за 1 млн токенов (пик|скидка):","stats.costTip":"Примерная совокупная стоимость всей сессии по прайс-листу DeepSeek: входные данные разделены по попаданию/промаху кэша, выходные данные включают рассуждения; каждый запрос оценивается по пиковой ставке (01:00–04:00, 06:00–10:00 UTC) или по половинной ставке вне пикового времени в зависимости от времени запроса. Применяется к deepseek-v4-flash / deepseek-v4-pro на любом провайдере; цены зафиксированы, только для справки.","stats.costTipDeepseek":"DeepSeek тарифицирует пиковые окна (будни 09:00–12:00, 14:00–18:00 по Пекину) по полному прайсу; в остальные часы действует скидка 50%.","stats.costUnavailable":"Цены моделей недоступны (повторяем запрос) — стоимость пока не может быть рассчитана.","stats.costWrite":"запись","stats.hint":"За период сохранённой истории (аналогично графику истории)","stats.humanInputs":"Сообщения пользователя","stats.humanInputsTip":"Сообщения пользователя и ответы на вопросы в текущей сессии.","stats.images":"Изображения","stats.injects":"Инъекции","stats.prunes":"Чернослив","stats.steps":"Шаги","stats.subCost":"Затраты субагентов","stats.subCostTip":"Суммарная оценка совокупных затрат всех сессий субагентов (на той же основе); текущий агент не включён.","stats.title":"Статистика контекста","stats.toolCalls":"Вызовы инструментов","stats.turns":"Переключается","tab":"Контекст","timing.callTimes":"Вызовов: {n}","timing.empty":"Данных о таймингах пока нет — они появятся в процессе беседы","timing.gen":"Генерация LLM","timing.hint":"Распределение времени активности за всю сессию","timing.other":"Накладные расходы","timing.reasoning":"Размышление","timing.text":"Ответ","timing.title":"Статистика таймингов","timing.toolArgs":"Аргументы инструментов","timing.toolTimes":"Запусков: {n}","timing.tools":"Вызовы инструментов","timing.total":"Время активности","timing.ttft":"TTFT","tip.actual":"(фактическое {n})","tip.cat":"{cat} ≈ {n}","tip.delta":"Дельта {n}","tip.step":"Повернуть {t} · Шаг {s}","tip.total":"Всего ≈ {n}","tip.turn":"Поверните {t} · {n} шагов","tip.turn1":"Шаг {t} · 1 действие","tokens.cacheHit":"Попадание в кэш","tokens.cacheRead":"Вход из кэша","tokens.cacheWrite":"Запись в кэш","tokens.hint":"Суммарное использование по данным провайдера","tokens.output":"Выход","tokens.outputNote":"вкл. рассуждения","tokens.title":"Статистика токенов","tokens.total":"Всего","tokens.uncached":"Вход без кэша","tool.desc":"Описание","tool.hitsTip":"Сколько раз этот инструмент вызывался и возвращал ответ в контексте текущего шага","tool.jsonHide":"Свернуть","tool.jsonToggle":"Просмотреть сырой JSON","tool.noMatch":"Нет инструментов, соответствующих текущему фильтру","tool.params":"Параметры","tool.paramsEmpty":"(без параметров)","tool.plugin":"Регистрирующий плагин этого инструмента (для справки)","tool.search":"Фильтровать по названию, описанию или параметрам…","tool.sort.count":"По числу вызовов","tool.sort.name":"По имени","tool.sort.size":"По размеру","tool.sortTip":"Сортировать инструменты по размеру токена (по умолчанию) или по названию","tool.unknown":"Неизвестный плагин","tool.unknownTitle":"Инструмент был зарегистрирован до загрузки контекстного плагина, или его плагин был выгружен, поэтому его провайдер не может быть определен","tools.more":"из {n}","tools.top":"Лучшие схемы инструментов:","trend.adaptive":"Адаптивный","trend.adaptiveHint":"Масштабировать высоту столбцов под видимый диапазон с учётом прокрутки","trend.empty":"Отправьте сообщение, и состав контекста каждого запроса модели появится здесь","trend.focus":"Отображается только {cat}","trend.hint":"Наведите курсор для просмотра деталей, ✂ обозначает уплотнение/удаление, Шаг/Ход переключает детализацию","trend.title":"История контекста"}}
@@ -0,0 +1 @@
1
+ {"@goodandready/dsh-remote-workspace":{"checkUpdate":"Проверить обновления","checking":"Проверка...","currentVersion":"Текущая версия","latestVersion":"npm Последняя","restartRequired":"Обновление успешно установлено. Перезапустите DSH для применения.","upToDate":"Актуальная версия","updateAvailable":"Доступно обновление","updateFailed":"Сбой обновления","updateNow":"Обновить сейчас","updaterTitle":"Обновление плагина","updating":"Обновление..."}}
@@ -0,0 +1 @@
1
+ {"@goodandready/dsh-live-canvas":{"canvasOpenedToast":"Сессия холста открыта","chatCompact":"Компактный чат (320px)","chatExpanded":"Максимальный чат (680px)","chatResizeTooltip":"Ширина чата","chatStandard":"Стандартный чат (440px)","chatWide":"Широкий чат (560px)","demoTemplatesHeader":"Быстрый старт с демо-шаблонами","dragToResize":"Потяните для изменения высоты","noRecentProjects":"Недавние проекты не найдены","openCanvas":"Открыть холст","openingCanvas":"Открытие...","projectsHub":"Хаб проектов","recentProjects":"Недавние проекты","reloadCanvas":"Перезагрузить холст","searchProjectsPlaceholder":"Поиск проектов или файлов..."}}
@@ -0,0 +1 @@
1
+ {"@goodandready/dsh-context-lens":{"update.available":"Доступно обновление: v{latestVersion} (текущая: v{currentVersion})","update.btn":"Обновить сейчас","update.checking":"Проверка обновлений…","update.done":"Успешно обновлено до v{version}! Пожалуйста, перезапустите DSH.","update.failed":"Ошибка обновления: {error}","update.up_to_date":"Актуальная версия","update.updating":"Обновление…"}}
@@ -1 +1 @@
1
- {"dsh-vision-bridge":{"addChannel":"Добавить канал","advanced":"Расширенные настройки","apiKey":"Ключ API","attachMaxItems":"Макс. вложений за вызов","attachMaxItemsRange":"Количество вложений за вызов должно быть целым числом от 1 до 32","attachments":"Вложения","attachmentsHint":"Сколько изображений можно опубликовать за один вызов attach, и нужно ли скрывать инструменты бриджа от моделей с нативным зрением.","auto":"Автоматически","autoDiscoverOllama":"Автопоиск моделей Ollama","baseURL":"Базовый URL","bench":"Бенчмарк","blurFaces":"Размывать лица на изображениях","channelOrderAutoLatency":"По задержке (наименьший пинг)","channelOrderManual":"Вручную (по списку)","channelOrderMode":"Режим порядка каналов","channelOrderWeighted":"По весам провайдеров","channels":"Каналы провайдеров","channelsDesc":"Список настроенных OCR / Vision провайдеров для анализа изображений.","channelsHint":"Перетащите каналы для изменения порядка приоритета.","circuitClosed":"Норма","circuitHalfOpen":"Тест восстановления","circuitOpen":"Разомкнут (сбой)","circuitState":"Состояние предохранителя (Circuit Breaker)","compression":"Сжатие изображений","compressionDesc":"Автоматически масштабировать и сжимать большие изображения перед отправкой в API.","concurrency":"Параллельные запросы","concurrencyHint":"Максимальное количество одновременных задач распознавания","consensus":"Консенсус моделей","cropImages":"Автообрезка пустых полей","cropImagesDesc":"Удалять пустые поля для экономии токенов и ускорения анализа","current":"Текущая: {provider} / {model}","currentAuto":"Автовыбор","defaultChannel":"Основной канал","defaultModel":"Модель по умолчанию","degraded":"Деградация","deleteChannel":"Удалить канал","describeStrategy":"Стратегия описания","description":"Шлюз компьютерного зрения: анализ скриншотов, распознавание документов, OCR и обработка изображений через мультимодальные модели.","deskew":"Устранение перекоса изображений","detailLevel":"Детализация (Detail Level)","detailLevelAuto":"Авто (Auto)","detailLevelHigh":"Высокая (High Detail)","detailLevelLow":"Низкая (Low Detail - экономия токенов)","discard":"Сбросить","editChannel":"Редактировать канал","empty":"-","emptyChannels":"Каналы компьютерного зрения не настроены.","enableFacePrivacy":"Защита приватности лиц","enableFacePrivacyDesc":"Обнаруживать и скрывать лица людей на скриншотах перед отправкой во внешние API","enhanceImage":"Улучшение качества изображений","errorCount":"Ошибок: {n}","escalateAuto":"Авто (быстрый OCR → LLM)","escalateLlm":"Всегда использовать Vision LLM","escalateOff":"Отключено (сразу ошибка)","escalateOnFail":"Эскалация при сбое","escalation":"Эскалация","escalationAuto":"Автоэскалация (второй проход для сложных изображений)","escalationSimple":"Только простой режим (один проход)","failCount":"Сбоев: {n}","failed":"Не удалось загрузить/сохранить","fallbackChannel":"Резервный канал","fallbackChannelDesc":"Канал, используемый при недоступности основного провайдера","fastMode":"Быстрый режим OCR","filterProviders":"Фильтр провайдеров…","freeProviders":"Бесплатные провайдеры","healthy":"В норме","hideRedundantTools":"Скрывать инструменты бриджа у моделей со зрением","imageDimensions":"Максимальное разрешение (px)","imageDimensionsHint":"Например 2048 для ограничения максимальной стороны изображения","imageFormat":"Формат конвертации","imageFormatJpeg":"JPEG (меньший размер)","imageFormatPng":"PNG (без потерь)","imageFormatWebp":"WebP (оптимальный баланс)","imageMaxHeight":"Макс. высота (px)","imageMaxWidth":"Макс. ширина (px)","imageQuality":"Качество (1–100)","jsonrpc":"JSON-RPC","keyHidden":"неизвестно","keyMissing":"нет ключа","keyOk":"ключ в порядке","latency":"Задержка: {time}мс","latencyAvg":"Средняя задержка: {time}мс","latencyMax":"Макс. задержка: {time}мс","latencyMin":"Мин. задержка: {time}мс","latencyP95":"p95 задержка: {time}мс","loading":"Загрузка настроек Vision Bridge…","maskPII":"Маскировать персональные данные в промптах","maskSystemPaths":"Маскировать пути и IP в ответах","maxDimension":"Макс. размер стороны (px)","maxDimensionHint":"Изображения большего размера будут пропорционально уменьшены","maxTokens":"Максимум токенов вывода","method":"Метод","mode":"Режим","modeHybrid":"Гибридный (автоперезапись + инструменты)","modeLlm":"Только LLM (автоперезапись, инструменты доступны)","modeTools":"Только инструменты (без перезаписи, вызов describe_image)","model":"Модель","modelCatalog":"Каталог моделей","modelCatalogFailed":"Не удалось загрузить каталог моделей","modelCatalogLoading":"Загрузка каталога моделей…","modelInvalid":"Модель не принимает изображения","modelName":"Имя модели (например gpt-4o, claude-3-5-sonnet, qwen-vl)","modelPlaceholder":"gpt-4o","modelSelection":"Выбор модели","noChannels":"Нет доступных каналов","noModels":"Модели не найдены","noVisionModels":"В каталоге нет моделей со зрением (вход: [text, image]) — добавьте в Настройки → Модели.","nsfwFilter":"Фильтр неприемлемого контента","ocrEngine":"Движок OCR","ocrEngineAuto":"Автовыбор","ocrEngineCloud":"Облачные мультимодальные модели","ocrEngineLocal":"Локальный OCR / Ollama","ocrLanguage":"Язык распознавания текста","ocrLanguageHint":"Например rus+eng для Tesseract / локальных движков","offline":"Офлайн","orderLatency":"По минимальной задержке","orderManual":"Ручной порядок","orderRandom":"Случайный балансировщик","orderRoundRobin":"Циклический (Round Robin)","orderWeighted":"Взвешенный балансировщик","pipeline":"Пайплайн обработки","pixelDiff":"Попиксельное сравнение (Pixel Diff)","pixelDiffHint":"Точное отслеживание изменений интерфейса «до / после» на уровне пикселей.","presetCloud":"Пресет: Облако","presetLmStudio":"Пресет: LM Studio","presetLocal":"Пресет: Локальный","privacy":"Приватность и безопасность","protocol":"Протокол","protocolOpenaiChat":"openai-chat","protocolOpenaiResponses":"openai-responses","provider":"Провайдер","providerName":"Имя провайдера (например openai, anthropic, ollama)","providerNameHint":"Идентификатор провайдера в системе","providerPlaceholder":"openai","quality":"Качество сжатия (1-100)","qualityAnalysis":"Анализ качества и детекция размытия","qualityAnalysisHint":"Определение резкости (дисперсия Лапласа) и извлечение цветовой палитры.","qualityHint":"85 рекомендуется для оптимального соотношения качества и размера","qualityJpeg":"Качество JPEG (%)","qualityWebp":"Качество WebP (%)","rateLimit":"Лимит запросов в минуту (RPM)","rateLimitRpm":"Лимит RPM","rateLimitTpm":"Лимит TPM","remove":"Удалить","reqBoth":"Выберите провайдера и модель, или оставьте оба пустыми для автовыбора","requestTemplate":"Шаблон запроса","requestTimeout":"Таймаут запроса (сек)","requestTimeoutHint":"Максимальное время ожидания ответа от Vision API","requests":"Запросов","reset":"Сброс (авто)","resetCircuits":"Сбросить предохранители","resetCircuitsSuccess":"Состояния предохранителей сброшены","resolution":"Разрешение","responsePath":"Путь ответа","retryAttempts":"Попыток повтора при ошибке","retryAttemptsHint":"Количество автоматических повторов при временных сбоях сети","retryCount":"Повторов: {n}","routeDirect":"Прямой маршрут","routeFallback":"Резервный маршрут","routeStrategy":"Стратегия маршрутизации","routing":"Маршрутизация","routingBalanced":"Сбалансированная","routingQuality":"Приоритет качества","routingSpeed":"Приоритет скорости","routingStrategy":"Стратегия маршрутизации","save":"Сохранить","saveChannel":"Сохранить канал","saved":"Настройки сохранены","savedChannel":"Канал сохранён","saving":"Сохранение…","savingChannel":"Сохранение канала…","secImage":"Качество изображений","secRouting":"Маршрутизация","security":"Безопасность","selfCheck":"Визуальная самопроверка","settings.channels":"Каналы","settings.circuitBreaker":"Предохранители","settings.general":"Основные","settings.performance":"Производительность","settings.privacy":"Приватность","sglang":"SGLang","status":"Статус провайдеров","statusActive":"Канал активен и проверен","statusBenchmarking":"Тестирование задержки…","statusError":"Ошибка канала: {error}","statusIdle":"Канал ожидает запросов","strategyAuto":"Авто (использовать Vision LLM)","strategyCacheOnly":"Только кэш (без сети)","strategyLlm":"Зрительная модель (Vision LLM)","strategyOcr":"Быстрый OCR","strategyOcrLocal":"Локальный OCR (резерв)","stripEXIF":"Удалять метаданные EXIF","subtitle":"Изображения в чате обрабатываются выбранной моделью зрения. Оставьте поля пустыми для автовыбора первой подходящей модели.","successCount":"Успешных: {n}","successRate":"Успешность: {rate}%","targetFormat":"Целевой формат","telemetry":"Телеметрия канала","telemetryHint":"Задержка канала (RTT) в реальном времени, объём запросов и статус работоспособности.","testAllChannels":"Протестировать все каналы","testChannel":"Проверить канал","testFail":"Сбой: {err}","testOk":"OK ({ms}мс)","testSuccess":"Тест успешно пройден: ответ за {time}мс","testVision":"Тест зрения","testing":"Тестирование…","testingChannels":"Тестирование каналов…","tileLargeImages":"Фрагментировать большие изображения","timeoutSec":"Таймаут (сек)","title":"Шлюз компьютерного зрения (Vision Bridge)","tokenCount":"Токенов: {n}","tokenUsage":"Расход токенов","tokensAvg":"В среднем токенов: {n}","totalCalls":"Всего вызовов: {n}","totalLatency":"Суммарная задержка: {time}с","totalProcessed":"Обработано изображений: {n}","type":"Тип","visionFeatures":"Функции распознавания","visionFeaturesDesc":"Анализ структуры страниц, таблиц, графиков и рукописного текста","vllm":"vLLM","weightHint":"Относительный вес канала при взвешенной балансировке","weightLabel":"Вес:"}}
1
+ {"dsh-vision-bridge":{"addChannel":"Добавить канал","advanced":"Расширенные настройки","apiKey":"Ключ API","attachMaxItems":"Макс. вложений за вызов","attachMaxItemsRange":"Количество вложений за вызов должно быть целым числом от 1 до 32","attachments":"Вложения","attachmentsHint":"Сколько изображений можно опубликовать за один вызов attach, и нужно ли скрывать инструменты бриджа от моделей с нативным зрением.","auto":"Автоматически","autoDiscoverOllama":"Автопоиск моделей Ollama","baseURL":"Базовый URL","bench":"Бенчмарк","blurFaces":"Размывать лица на изображениях","channelOrderAutoLatency":"По задержке (наименьший пинг)","channelOrderManual":"Вручную (по списку)","channelOrderMode":"Режим порядка каналов","channelOrderWeighted":"По весам провайдеров","channels":"Каналы провайдеров","channelsDesc":"Список настроенных OCR / Vision провайдеров для анализа изображений.","channelsHint":"Перетащите каналы для изменения порядка приоритета.","circuitClosed":"Норма","circuitHalfOpen":"Тест восстановления","circuitOpen":"Разомкнут (сбой)","circuitState":"Состояние предохранителя (Circuit Breaker)","compression":"Сжатие изображений","compressionDesc":"Автоматически масштабировать и сжимать большие изображения перед отправкой в API.","concurrency":"Параллельные запросы","concurrencyHint":"Максимальное количество одновременных задач распознавания","consensus":"Консенсус моделей","cropImages":"Автообрезка пустых полей","cropImagesDesc":"Удалять пустые поля для экономии токенов и ускорения анализа","current":"Текущая: {provider} / {model}","currentAuto":"Автовыбор","defaultChannel":"Основной канал","defaultModel":"Модель по умолчанию","degraded":"Деградация","deleteChannel":"Удалить канал","describeStrategy":"Стратегия описания","description":"Шлюз компьютерного зрения: анализ скриншотов, распознавание документов, OCR и обработка изображений через мультимодальные модели.","deskew":"Устранение перекоса изображений","detailLevel":"Детализация (Detail Level)","detailLevelAuto":"Авто (Auto)","detailLevelHigh":"Высокая (High Detail)","detailLevelLow":"Низкая (Low Detail - экономия токенов)","discard":"Сбросить","editChannel":"Редактировать канал","empty":"-","emptyChannels":"Каналы компьютерного зрения не настроены.","enableFacePrivacy":"Защита приватности лиц","enableFacePrivacyDesc":"Обнаруживать и скрывать лица людей на скриншотах перед отправкой во внешние API","enhanceImage":"Улучшение качества изображений","errorCount":"Ошибок: {n}","escalateAuto":"Авто (быстрый OCR → LLM)","escalateLlm":"Всегда использовать Vision LLM","escalateOff":"Отключено (сразу ошибка)","escalateOnFail":"Эскалация при сбое","escalation":"Эскалация","escalationAuto":"Автоэскалация (второй проход для сложных изображений)","escalationSimple":"Только простой режим (один проход)","failCount":"Сбоев: {n}","failed":"Не удалось загрузить/сохранить","fallbackChannel":"Резервный канал","fallbackChannelDesc":"Канал, используемый при недоступности основного провайдера","fastMode":"Быстрый режим OCR","filterProviders":"Фильтр провайдеров…","freeProviders":"Бесплатные провайдеры","healthy":"В норме","hideRedundantTools":"Скрывать инструменты бриджа у моделей со зрением","imageDimensions":"Максимальное разрешение (px)","imageDimensionsHint":"Например 2048 для ограничения максимальной стороны изображения","imageFormat":"Формат конвертации","imageFormatJpeg":"JPEG (меньший размер)","imageFormatPng":"PNG (без потерь)","imageFormatWebp":"WebP (оптимальный баланс)","imageMaxHeight":"Макс. высота (px)","imageMaxWidth":"Макс. ширина (px)","imageQuality":"Качество (1–100)","jsonrpc":"JSON-RPC","keyHidden":"неизвестно","keyMissing":"нет ключа","keyOk":"ключ в порядке","latency":"Задержка: {time}мс","latencyAvg":"Средняя задержка: {time}мс","latencyMax":"Макс. задержка: {time}мс","latencyMin":"Мин. задержка: {time}мс","latencyP95":"p95 задержка: {time}мс","loading":"Загрузка настроек Vision Bridge…","maskPII":"Маскировать персональные данные в промптах","maskSystemPaths":"Маскировать пути и IP в ответах","maxDimension":"Макс. размер стороны (px)","maxDimensionHint":"Изображения большего размера будут пропорционально уменьшены","maxTokens":"Максимум токенов вывода","method":"Метод","mode":"Режим","modeHybrid":"Гибридный (автоперезапись + инструменты)","modeLlm":"Только LLM (автоперезапись, инструменты доступны)","modeTools":"Только инструменты (без перезаписи, вызов describe_image)","model":"Модель","modelCatalog":"Каталог моделей","modelCatalogFailed":"Не удалось загрузить каталог моделей","modelCatalogLoading":"Загрузка каталога моделей…","modelInvalid":"Модель не принимает изображения","modelName":"Имя модели (например gpt-4o, claude-3-5-sonnet, qwen-vl)","modelPlaceholder":"gpt-4o","modelSelection":"Выбор модели","noChannels":"Нет доступных каналов","noModels":"Модели не найдены","noVisionModels":"В каталоге нет моделей со зрением (вход: [text, image]) — добавьте в Настройки → Модели.","nsfwFilter":"Фильтр неприемлемого контента","ocrEngine":"Движок OCR","ocrEngineAuto":"Автовыбор","ocrEngineCloud":"Облачные мультимодальные модели","ocrEngineLocal":"Локальный OCR / Ollama","ocrLanguage":"Язык распознавания текста","ocrLanguageHint":"Например rus+eng для Tesseract / локальных движков","offline":"Офлайн","orderLatency":"По минимальной задержке","orderManual":"Ручной порядок","orderRandom":"Случайный балансировщик","orderRoundRobin":"Циклический (Round Robin)","orderWeighted":"Взвешенный балансировщик","pipeline":"Пайплайн обработки","pixelDiff":"Попиксельное сравнение (Pixel Diff)","pixelDiffHint":"Точное отслеживание изменений интерфейса «до / после» на уровне пикселей.","presetCloud":"Пресет: Облако","presetLmStudio":"Пресет: LM Studio","presetLocal":"Пресет: Локальный","privacy":"Приватность и безопасность","protocol":"Протокол","protocolOpenaiChat":"openai-chat","protocolOpenaiResponses":"openai-responses","provider":"Провайдер","providerName":"Имя провайдера (например openai, anthropic, ollama)","providerNameHint":"Идентификатор провайдера в системе","providerPlaceholder":"openai","quality":"Качество сжатия (1-100)","qualityAnalysis":"Анализ качества и детекция размытия","qualityAnalysisHint":"Определение резкости (дисперсия Лапласа) и извлечение цветовой палитры.","qualityHint":"85 рекомендуется для оптимального соотношения качества и размера","qualityJpeg":"Качество JPEG (%)","qualityWebp":"Качество WebP (%)","rateLimit":"Лимит запросов в минуту (RPM)","rateLimitRpm":"Лимит RPM","rateLimitTpm":"Лимит TPM","remove":"Удалить","reqBoth":"Выберите провайдера и модель, или оставьте оба пустыми для автовыбора","requestTemplate":"Шаблон запроса","requestTimeout":"Таймаут запроса (сек)","requestTimeoutHint":"Максимальное время ожидания ответа от Vision API","requests":"Запросов","reset":"Сброс (авто)","resetCircuits":"Сбросить предохранители","resetCircuitsSuccess":"Состояния предохранителей сброшены","resolution":"Разрешение","responsePath":"Путь ответа","retryAttempts":"Попыток повтора при ошибке","retryAttemptsHint":"Количество автоматических повторов при временных сбоях сети","retryCount":"Повторов: {n}","routeDirect":"Прямой маршрут","routeFallback":"Резервный маршрут","routeStrategy":"Стратегия маршрутизации","routing":"Маршрутизация","routingBalanced":"Сбалансированная","routingQuality":"Приоритет качества","routingSpeed":"Приоритет скорости","routingStrategy":"Стратегия маршрутизации","save":"Сохранить","saveChannel":"Сохранить канал","saved":"Настройки сохранены","savedChannel":"Канал сохранён","saving":"Сохранение…","savingChannel":"Сохранение канала…","secImage":"Качество изображений","secRouting":"Маршрутизация","security":"Безопасность","selfCheck":"Визуальная самопроверка","settings.channels":"Каналы","settings.circuitBreaker":"Предохранители","settings.general":"Основные","settings.performance":"Производительность","settings.privacy":"Приватность","sglang":"SGLang","status":"Статус провайдеров","statusActive":"Канал активен и проверен","statusBenchmarking":"Тестирование задержки…","statusError":"Ошибка канала: {error}","statusIdle":"Канал ожидает запросов","strategyAuto":"Авто (использовать Vision LLM)","strategyCacheOnly":"Только кэш (без сети)","strategyLlm":"Зрительная модель (Vision LLM)","strategyOcr":"Быстрый OCR","strategyOcrLocal":"Локальный OCR (резерв)","stripEXIF":"Удалять метаданные EXIF","subtitle":"Изображения в чате обрабатываются выбранной моделью зрения. Оставьте поля пустыми для автовыбора первой подходящей модели.","successCount":"Успешных: {n}","successRate":"Успешность: {rate}%","targetFormat":"Целевой формат","telemetry":"Телеметрия канала","telemetryHint":"Задержка канала (RTT) в реальном времени, объём запросов и статус работоспособности.","testAllChannels":"Протестировать все каналы","testChannel":"Проверить канал","testFail":"Сбой: {err}","testOk":"OK ({ms}мс)","testSuccess":"Тест успешно пройден: ответ за {time}мс","testVision":"Тест зрения","testing":"Тестирование…","testingChannels":"Тестирование каналов…","tileLargeImages":"Фрагментировать большие изображения","timeoutSec":"Таймаут (сек)","title":"Шлюз компьютерного зрения (Vision Bridge)","tokenCount":"Токенов: {n}","tokenUsage":"Расход токенов","tokensAvg":"В среднем токенов: {n}","totalCalls":"Всего вызовов: {n}","totalLatency":"Суммарная задержка: {time}с","totalProcessed":"Обработано изображений: {n}","type":"Тип","updater_check":"Проверить обновления","updater_checking":"Проверка…","updater_current":"Текущая версия","updater_failed":"Не удалось проверить обновления","updater_latest":"Последняя версия","updater_success":"Обновление выполнено успешно. Перезапустите DSH.","updater_title":"Версия плагина и обновления","updater_up_to_date":"Установлена актуальная версия","updater_update_now":"Обновить до v{version}","updater_updating":"Обновление…","visionFeatures":"Функции распознавания","visionFeaturesDesc":"Анализ структуры страниц, таблиц, графиков и рукописного текста","vllm":"vLLM","weightHint":"Относительный вес канала при взвешенной балансировке","weightLabel":"Вес:"}}
@@ -0,0 +1 @@
1
+ {"dsh-session-control":{"card.handoffHint":"Оставьте провайдера или модель пустыми — тогда будет только мгновенная выдержка без модели.","card.handoffMaxInput":"Бюджет расшифровки, символов","card.handoffModel":"Идентификатор модели","card.handoffProvider":"Идентификатор провайдера","card.handoffTimeout":"Таймаут, секунд","card.handoffTitle":"Пересказ моделью для «Продолжить в новой сессии»","card.invalidNumber":"Введите целое число больше нуля.","card.sizeDanger":"Красный значок с, событий","card.sizeHint":"Очень большие сессии могут подвешивать вкладку браузера во время долгих ходов агента. В строках появляется жёлтый значок, затем красный.","card.sizeTitle":"Размер сессии","card.sizeWarn":"Жёлтый значок с, событий","card.updaterTitle":"Обновление плагина","error.handoff":"Не удалось продолжить в новой сессии: {message}","error.handoffNoWorkspace":"у этой сессии нет рабочей папки для продолжения","handoff.busy":"Готовлю новую сессию…","menu.handoff":"Продолжить в новой сессии","menu.handoffModel":"Продолжить с пересказом моделью","menu.handoffModelOff":"Продолжить с пересказом моделью (задайте модель в настройках)","size.danger":"Сессия слишком большая для интерфейса: {n} событий","size.tooltip":"{n} событий, {size}. Продолжите в новой сессии, чтобы интерфейс не зависал.","size.warn":"Большая сессия: {n} событий","update.available":"Доступно обновление: v{latest}","update.btn":"Обновить сейчас","update.checking":"Проверяю наличие обновлений…","update.done":"Обновлено до v{version}. Пожалуйста, перезапустите DSH для применения изменений.","update.failed":"Не удалось обновить: {error}","update.upToDate":"Установлена последняя версия","update.updating":"Обновление…"}}
@@ -1 +1 @@
1
- {"dsh-cost-meter":{"action.copied":"Скопировано!","action.copy_report":"Скопировать сводку","action.sync_err":"Синхронизация не удалась","action.sync_now":"Синхронизировать сейчас","action.sync_ok":"Каталог обновлён","action.sync_rate_limited":"Подождите {seconds} с","action.syncing":"Синхронизация…","badge.catalog_empty":"Каталог: загрузка…","badge.catalog_err":"Каталог: ошибка","badge.catalog_off":"Каталог: отключён","badge.catalog_ok":"Каталог: моделей — {count}","badge.catalog_stale":"Кэш: офлайн","badge.deepseek":"Тариф DeepSeek: активен","budget.exceeded":"⚠️ Лимит бюджета превышен: {limit}","catalogUnavailable":"Каталог OpenRouter недоступен: ","chipRate":"тариф","chipUnknown":"тариф ?","diag.last_sync":"Последняя синхронизация","diag.models_count":"Моделей в каталоге","diag.route":"Активный маршрут","diag.tariff_source":"Источник тарифов","field.budgetThreshold":"Порог бюджета сессии (USD)","field.currency":"Символ валюты","field.displayTimeZone":"Часовой пояс отображения","field.refreshHours":"Интервал обновления каталога (в часах)","field.usdRate":"Курс к USD","field.useOpenRouter":"Использовать каталог OpenRouter","flat":"фикс.","header.sub":"Мониторинг расхода токенов, автоматический расчёт тарифов и скидочные интервалы","header.title":"Счётчик расходов","hint.budgetThreshold":"Предупреждать цветом плашки при превышении расходов в сессии (0 — выключено).","hint.currency":"Символ валюты в виджете (например $, ₽, €).","hint.displayTimeZone":"Часовой пояс IANA для расписания пиковых/ночных тарифов.","hint.refreshHours":"Интервал фонового запроса каталога в часах (от 1 до 168).","hint.usdRate":"Курс обмена: количество единиц валюты за 1 USD (например 80 для ₽).","hint.useOpenRouter":"Динамически получать тарифы и окна скидок через публичный API OpenRouter.","modal.close":"Закрыть","modal.title":"Тарифы и стоимость моделей","modelNotFound":"Модель не найдена в каталоге OpenRouter. Задайте цены вручную в настройках или сопоставьте модель через modelMap.","models.show_less":"Свернуть","models.show_more":"Показать все модели ({count})","modelsBreakdown":"Детализация по моделям","noPriceSpecified":"тариф не указан","noUsageYet":"Провайдер ещё не передал данные об использовании для этой сессии.","offPeak":"ночь","offpeak":"ночной тариф","peak":"пик","rate.cache_hit":"Вход (попадание в кэш)","rate.cache_write":"Вход (запись в кэш)","rate.custom":"Пользовательский","rate.default":"По умолчанию","rate.input":"Вход: {price} / 1M токенов","rate.output":"Выход: {price} / 1M токенов","rate.per_1m":"1 млн токенов, $","rate.unit":"/ 1M ток.","routeUnknown":"маршрут неизвестен","savings.cache_saved":"⚡ Сэкономлено на кэше контекста: ≈ {amount} ({percent}%)","savings.hint":"💡 Скидка 50% начнётся через {time} ({clock} {zone})","section.diagnostics":"Диагностика и статус","section.diagnostics_desc":"Текущее состояние фоновой синхронизации и кэша тарифов","section.general":"Основные параметры","section.general_desc":"Отображение валюты, коэффициент конвертации и настройка часового пояса","section.openrouter":"Каталог тарифов OpenRouter","section.openrouter_desc":"Публичный каталог для динамического расчёта стоимости моделей и скидочных интервалов","sessionTokens":"Токены сессии","settings.loading":"Загрузка настроек…","settings.retry":"Повторить попытку","settings.save":"Сохранить","settings.saveFailed":"Не удалось сохранить настройки: ","settings.saved":"Сохранено","settings.saving":"Сохранение…","settings.unavailable":"Настройки недоступны (namespace ещё не зарегистрирован).","subtitle":"Стоимость сессии в шапке, тарифы токенов и детализация по моделям","table.model":"Модель","table.provider":"Провайдер","table.rate":"Тарифная ставка","table.total":"Итого","title":"Счётчик стоимости токенов","tokens.models_spent":"Расходы по моделям","tokens.no_usage_yet":"Провайдер пока не передал статистику использования для этой сессии.","tokens.not_priced":"Тариф не задан","tokens.session":"Токены сессии","tokens.session_total":"Всего за сессию:","tokens.tokens_col":"Токены","totalCost":"Общая стоимость","tz.invalid":"Недопустимый идентификатор часового пояса IANA"}}
1
+ {"@goodandready/dsh-cost-meter":{"update.available":"Доступно обновление","update.btn":"Обновить сейчас","update.checking":"Проверка...","update.done":"Обновлено успешно! Перезапустите DSH.","update.failed":"Ошибка обновления:","update.up_to_date":"Актуальная версия","update.updating":"Обновление..."},"dsh-cost-meter":{"action.copied":"Скопировано!","action.copy_report":"Скопировать сводку","action.sync_err":"Синхронизация не удалась","action.sync_now":"Синхронизировать сейчас","action.sync_ok":"Каталог обновлён","action.sync_rate_limited":"Подождите {seconds} с","action.syncing":"Синхронизация…","badge.catalog_empty":"Каталог: загрузка…","badge.catalog_err":"Каталог: ошибка","badge.catalog_off":"Каталог: отключён","badge.catalog_ok":"Каталог: моделей — {count}","badge.catalog_stale":"Кэш: офлайн","badge.deepseek":"Тариф DeepSeek: активен","budget.exceeded":"⚠️ Лимит бюджета превышен: {limit}","catalogUnavailable":"Каталог OpenRouter недоступен: ","chipRate":"тариф","chipUnknown":"тариф ?","diag.last_sync":"Последняя синхронизация","diag.models_count":"Моделей в каталоге","diag.route":"Активный маршрут","diag.tariff_source":"Источник тарифов","field.budgetThreshold":"Порог бюджета сессии (USD)","field.currency":"Символ валюты","field.displayTimeZone":"Часовой пояс отображения","field.refreshHours":"Интервал обновления каталога (в часах)","field.usdRate":"Курс к USD","field.useOpenRouter":"Использовать каталог OpenRouter","flat":"фикс.","header.sub":"Мониторинг расхода токенов, автоматический расчёт тарифов и скидочные интервалы","header.title":"Счётчик расходов","hint.budgetThreshold":"Предупреждать цветом плашки при превышении расходов в сессии (0 — выключено).","hint.currency":"Символ валюты в виджете (например $, ₽, €).","hint.displayTimeZone":"Часовой пояс IANA для расписания пиковых/ночных тарифов.","hint.refreshHours":"Интервал фонового запроса каталога в часах (от 1 до 168).","hint.usdRate":"Курс обмена: количество единиц валюты за 1 USD (например 80 для ₽).","hint.useOpenRouter":"Динамически получать тарифы и окна скидок через публичный API OpenRouter.","modal.close":"Закрыть","modal.title":"Тарифы и стоимость моделей","modelNotFound":"Модель не найдена в каталоге OpenRouter. Задайте цены вручную в настройках или сопоставьте модель через modelMap.","models.show_less":"Свернуть","models.show_more":"Показать все модели ({count})","modelsBreakdown":"Детализация по моделям","noPriceSpecified":"тариф не указан","noUsageYet":"Провайдер ещё не передал данные об использовании для этой сессии.","offPeak":"ночь","offpeak":"ночной тариф","peak":"пик","rate.cache_hit":"Вход (попадание в кэш)","rate.cache_write":"Вход (запись в кэш)","rate.custom":"Пользовательский","rate.default":"По умолчанию","rate.input":"Вход: {price} / 1M токенов","rate.output":"Выход: {price} / 1M токенов","rate.per_1m":"1 млн токенов, $","rate.unit":"/ 1M ток.","routeUnknown":"маршрут неизвестен","savings.cache_saved":"⚡ Сэкономлено на кэше контекста: ≈ {amount} ({percent}%)","savings.hint":"💡 Скидка 50% начнётся через {time} ({clock} {zone})","section.diagnostics":"Диагностика и статус","section.diagnostics_desc":"Текущее состояние фоновой синхронизации и кэша тарифов","section.general":"Основные параметры","section.general_desc":"Отображение валюты, коэффициент конвертации и настройка часового пояса","section.openrouter":"Каталог тарифов OpenRouter","section.openrouter_desc":"Публичный каталог для динамического расчёта стоимости моделей и скидочных интервалов","sessionTokens":"Токены сессии","settings.loading":"Загрузка настроек…","settings.retry":"Повторить попытку","settings.save":"Сохранить","settings.saveFailed":"Не удалось сохранить настройки: ","settings.saved":"Сохранено","settings.saving":"Сохранение…","settings.unavailable":"Настройки недоступны (namespace ещё не зарегистрирован).","subtitle":"Стоимость сессии в шапке, тарифы токенов и детализация по моделям","table.model":"Модель","table.provider":"Провайдер","table.rate":"Тарифная ставка","table.total":"Итого","title":"Счётчик стоимости токенов","tokens.models_spent":"Расходы по моделям","tokens.no_usage_yet":"Провайдер пока не передал статистику использования для этой сессии.","tokens.not_priced":"Тариф не задан","tokens.session":"Токены сессии","tokens.session_total":"Всего за сессию:","tokens.tokens_col":"Токены","totalCost":"Общая стоимость","tz.invalid":"Недопустимый идентификатор часового пояса IANA","update.available":"Доступно обновление: v{latestVersion} (текущая: v{currentVersion})","update.btn":"Обновить сейчас","update.checking":"Проверка обновлений…","update.done":"Успешно обновлено до v{version}! Перезапустите DSH.","update.failed":"Ошибка обновления: {error}","update.up_to_date":"Установлена актуальная версия","update.updating":"Обновление…"}}
@@ -1 +1 @@
1
- {"@goodandready/dsh-time-machine":{"allFiles":"Все файлы","autoHeal":"Восстановление промпта при сбое","autoSnapshot":"Автоснимок перед правкой файлов","close":"Закрыть","confirmDelete":"Удалить эту контрольную точку?","confirmRestoreFile":"Восстановить этот файл к состоянию контрольной точки?","confirmRollback":"Откатиться к этой контрольной точке? Это сбросит изменения в рабочей области.","create":"Создать точку сохранения","delete":"Удалить","diff":"Различия","empty":"Контрольных точек пока нет.","fileRestored":"Файл успешно восстановлен.","filesChanged":"Изменённые файлы","guideDesc":"Контрольные точки, визуальные диффы и мгновенный откат рабочей области.","guideTitle":"Машина времени","labelPh":"Название контрольной точки","list":"Хронология","loading":"Загрузка точек сохранения…","maxSnapshots":"Максимум снимков","noDiff":"Нет изменений относительно контрольной точки.","restore":"Восстановить","restoreFile":"Восстановить файл","rollback":"Откат","rollbackSuccess":"Рабочая область успешно восстановлена.","save":"Создать точку","saved":"Точка сохранена","selectFile":"Выберите файл для просмотра различий","sidebarNotice":"Снимки состояния рабочей области сохраняются автоматически перед каждым крупным действием агента.","snapshots":"Снимки состояния","sub":"Теневые снимки, diff и мгновенный откат для безопасности агента.","tabTitle":"Машина времени","title":"Машина времени (Time Machine)","unavailable":"Настройки недоступны","view":"Просмотр"}}
1
+ {"@goodandready/dsh-time-machine":{"allFiles":"Все файлы","autoHeal":"Восстановление промпта при сбое","autoSnapshot":"Автоснимок перед правкой файлов","close":"Закрыть","confirmDelete":"Удалить эту контрольную точку?","confirmRestoreFile":"Восстановить этот файл к состоянию контрольной точки?","confirmRollback":"Откатиться к этой контрольной точке? Это сбросит изменения в рабочей области.","create":"Создать точку сохранения","delete":"Удалить","diff":"Различия","empty":"Контрольных точек пока нет.","fileRestored":"Файл успешно восстановлен.","filesChanged":"Изменённые файлы","guideDesc":"Контрольные точки, визуальные диффы и мгновенный откат рабочей области.","guideTitle":"Машина времени","labelPh":"Название контрольной точки","list":"Хронология","loading":"Загрузка точек сохранения…","maxSnapshots":"Максимум снимков","noDiff":"Нет изменений относительно контрольной точки.","restore":"Восстановить","restoreFile":"Восстановить файл","rollback":"Откат","rollbackSuccess":"Рабочая область успешно восстановлена.","save":"Создать точку","saved":"Точка сохранена","selectFile":"Выберите файл для просмотра различий","sidebarNotice":"Снимки состояния рабочей области сохраняются автоматически перед каждым крупным действием агента.","snapshots":"Снимки состояния","sub":"Теневые снимки, diff и мгновенный откат для безопасности агента.","tabTitle":"Машина времени","title":"Машина времени (Time Machine)","unavailable":"Настройки недоступны","updaterCheck":"Проверить обновления","updaterChecking":"Проверка...","updaterCurrent":"Текущая: v{version}","updaterFailed":"Ошибка обновления: {error}","updaterLatest":"Доступна: v{version}","updaterSuccess":"Обновлено до v{version}! Перезапустите DSH.","updaterTitle":"Обновление плагина","updaterUpToDate":"Актуальная версия","updaterUpdate":"Обновить сейчас","updaterUpdateNow":"Обновить до v{version}","updaterUpdating":"Обновление...","view":"Просмотр"}}
@@ -0,0 +1 @@
1
+ {"dsh-model-sync":{"checkAgain":"Проверить обновления","checkingUpdate":"Проверка...","currentVersion":"Установлена: v{0}","latestVersion":"Доступна: v{0}","restartNotice":"Обновлено до v{0}. Пожалуйста, перезапустите DeepSeek Harness для применения изменений.","upToDate":"Актуальная версия","updateAvailable":"Доступно обновление","updateFailed":"Ошибка обновления","updateNow":"Обновить сейчас","updaterTitle":"Обновление плагина","updating":"Обновление..."}}
@@ -0,0 +1 @@
1
+ {"goal":{"checkUpdate":"Проверить","checking":"Проверка...","upToDate":"Установлена последняя версия","updateAvailable":"Доступно обновление","updateBtn":"Обновить","updateDone":"Обновление завершено! Перезапустите harness для применения.","updateFailed":"Ошибка обновления:","updating":"Обновление...","version":"Версия"}}
@@ -1 +1 @@
1
- {"@goodandready-private/dsh-memory-brain":{"field.autoInject":"Автоматическое внедрение воспоминаний","field.base":"Базовый URL хранилища памяти","field.includeNeighbors":"Включать смежные контекстные узлы","field.minRecallChars":"Минимальная длина запроса для поиска","field.neighborK":"Количество смежных воспоминаний (K)","field.predictionLoop":"Предсказательный цикл контекста","field.recallBudget":"Бюджет токенов на воспоминания","field.timeoutMs":"Таймаут поиска памяти (мс)","field.token":"Имя учётных данных / переменной токена","hint.autoInject":"Автоматически подмешивать релевантные факты из долгосрочной памяти в системный контекст","hint.base":"URL gRPC/HTTP сервиса векторной памяти Memory Brain","hint.includeNeighbors":"Извлекать связанные факты из графа знаний для обогащения ответа","hint.minRecallChars":"Минимум символов в сообщении пользователя для запуска семантического поиска","hint.neighborK":"Сколько ближайших соседей по векторному сходству добавлять в выборку","hint.predictionLoop":"Использовать фоновое прогнозирование необходимых фактов для будущих шагов","hint.recallBudget":"Максимальное число токенов, выделяемое под блок воспоминаний в промпте","hint.timeoutMs":"Максимальное время ожидания ответа от сервиса памяти","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":"Долгосрочное запоминание и поиск через HTTP API memory-brain","title":"Долгосрочная память (Memory Brain)"}}
1
+ {"@goodandready-private/dsh-memory-brain":{"field.autoInject":"Автоматическое внедрение воспоминаний","field.base":"Базовый URL хранилища памяти","field.checkpointBanking":"Банкинг контрольных точек","field.includeNeighbors":"Включать смежные контекстные узлы","field.minRecallChars":"Минимальная длина запроса для поиска","field.neighborK":"Количество смежных воспоминаний (K)","field.predictionLoop":"Предсказательный цикл контекста","field.recallBudget":"Бюджет токенов на воспоминания","field.timeoutMs":"Таймаут поиска памяти (мс)","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":"Долгосрочное запоминание и поиск через HTTP API memory-brain","title":"Долгосрочная память (Memory Brain)"}}
@@ -0,0 +1 @@
1
+ {"@goodandready/dsh-dsml-artifact-guard":{"checkUpdateFailed":"Не удалось проверить обновления","checking":"Проверка...","disabledNotice":"Защита отключена. Теги могут отображаться в чате.","mode":"Режим работы","modeAudit":"Только аудит","modeDisabled":"Отключено","modeSanitize":"Очистка потока (рекомендуется)","modelId":"Идентификатор модели","providerId":"Идентификатор провайдера","ready":"Сохранить настройки","saveError":"Ошибка сохранения: {msg}","saved":"Настройки сохранены","saving":"Сохранение…","statusUnavailable":"Служба настроек недоступна.","sub":"Удаляет утекшие закрывающие теги протокола DSML из текстовых потоков модели","subtitle":"Очистка закрывающих тегов протокола DSML","title":"Защита протокольных тегов","upToDate":"Актуальная версия","updateAvailable":"Доступно обновление","updateChecking":"Проверка обновлений…","updateFailed":"Ошибка обновления: {msg}","updateNow":"Обновить сейчас","updateSuccess":"Обновлено до v{v}. Перезапустите службу DSH для применения.","updating":"Обновление...","version":"Версия"}}
package/lib/locales.js CHANGED
@@ -11,7 +11,7 @@ export function getCoreDictionaries() {
11
11
  if (existsSync(CORE_FILE)) {
12
12
  try {
13
13
  return JSON.parse(readFileSync(CORE_FILE, "utf8"))
14
- } catch (_) {}
14
+ } catch (_) { /* bestEffort */ void _; }
15
15
  }
16
16
  return {}
17
17
  }
@@ -26,7 +26,7 @@ export function getPluginDictionaries() {
26
26
  for (const [ns, entries] of Object.entries(data)) {
27
27
  merged[ns] = Object.assign(merged[ns] || {}, entries)
28
28
  }
29
- } catch (_) {}
29
+ } catch (_) { /* bestEffort */ void _; }
30
30
  }
31
31
  }
32
32
  return merged
@@ -42,7 +42,7 @@ export function getZhRuMap() {
42
42
  if (existsSync(ZH_RU_FILE)) {
43
43
  try {
44
44
  return JSON.parse(readFileSync(ZH_RU_FILE, "utf8"))
45
- } catch (_) {}
45
+ } catch (_) { /* bestEffort */ void _; }
46
46
  }
47
47
  return {}
48
48
  }
package/lib/translator.js CHANGED
@@ -61,7 +61,7 @@ export async function getTranslatorStatus(settingsCtx) {
61
61
  try {
62
62
  const res = await fetch(`${localUrl}/languages`, { signal: AbortSignal.timeout(1500) })
63
63
  if (res.ok) responsive = true
64
- } catch (_) {}
64
+ } catch (_) { /* bestEffort */ void _; }
65
65
 
66
66
  return {
67
67
  engine,
@@ -138,7 +138,7 @@ async function translateGoogle(text, targetLang = 'ru') {
138
138
  continue
139
139
  }
140
140
  }
141
- } catch (_) {}
141
+ } catch (_) { /* bestEffort */ void _; }
142
142
  transSents.push(s)
143
143
  }
144
144
  transParas.push(transSents.join(''))
@@ -297,7 +297,7 @@ export function registerTranslator(wctx, settingsCtx) {
297
297
 
298
298
  return () => {
299
299
  for (const unreg of unregs) {
300
- try { unreg() } catch (_) {}
300
+ try { unreg() } catch (_) { /* bestEffort */ void _; }
301
301
  }
302
302
  }
303
303
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goodandready/dsh-russian-lang",
3
- "version": "0.2.23",
3
+ "version": "0.2.25",
4
4
  "description": "Russian localization for DeepSeek Harness (DSH v0.1.6-alpha.1+) web UI: adds Русский as native language option. 100.0% coverage across 11,295 keys (127 namespaces). Features full DSH v0.1.6-alpha.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",
@@ -66,4 +66,4 @@
66
66
  "bugs": {
67
67
  "url": "https://github.com/GooDAnDReaDY/dsh-russian-lang/issues"
68
68
  }
69
- }
69
+ }