@goodandready/dsh-russian-lang 0.3.0 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +20 -5
  2. package/README.ru.md +20 -5
  3. package/bin/dsh-i18n.mjs +247 -0
  4. package/lib/client.js +2932 -2360
  5. package/lib/index.js +89 -15
  6. package/lib/locales/core.json +1 -1
  7. package/lib/locales/plugins/03-dshmarket.json +1 -1
  8. package/lib/locales/plugins/17-dsh-context.json +1 -1
  9. package/lib/locales/plugins/26-config-manager.json +1 -1
  10. package/lib/locales/plugins/29-config-manager-recovery.json +1 -1
  11. package/lib/locales/plugins/32-vision-bridge.json +1 -1
  12. package/lib/locales/plugins/33-messenger-gateway.json +1 -1
  13. package/lib/locales/plugins/34-key-rotation.json +1 -1
  14. package/lib/locales/plugins/35-gitea.json +1 -1
  15. package/lib/locales/plugins/36-cost-meter.json +1 -1
  16. package/lib/locales/plugins/37-time-machine.json +1 -1
  17. package/lib/locales/plugins/40-clinebot.json +1 -1
  18. package/lib/locales/plugins/41-lanmode.json +1 -1
  19. package/lib/locales/plugins/42-plugin-console.json +1 -1
  20. package/lib/locales/plugins/48-task-tracker.json +1 -1
  21. package/lib/locales/plugins/49-dsml-guard.json +1 -1
  22. package/lib/locales/plugins/54-workshop-market.json +1 -1
  23. package/lib/locales/plugins/56-cron.json +1 -1
  24. package/lib/locales/plugins/58-grok-xsearch.json +1 -1
  25. package/lib/locales/plugins/59-goal.json +1 -1
  26. package/lib/locales/plugins/60-model-sync.json +1 -1
  27. package/lib/locales/plugins/61-issue-reporter.json +1 -1
  28. package/lib/locales/plugins/62-model-search.json +1 -1
  29. package/lib/locales/plugins/63-agent-orchestrator.json +1 -1
  30. package/lib/locales/plugins/65-subscriptions.json +1 -1
  31. package/lib/locales/plugins/67-voice.json +1 -1
  32. package/lib/locales/plugins/68-image-gen.json +1 -1
  33. package/lib/locales/plugins/70-hypotheses.json +1 -1
  34. package/lib/locales/plugins/72-server-monitor.json +1 -1
  35. package/lib/locales/plugins/73-agentrouter.json +1 -1
  36. package/lib/locales/plugins/77-github-ops.json +1 -0
  37. package/lib/locales/plugins/78-web-gateway.json +1 -0
  38. package/lib/locales/plugins/79-approval-gate.json +1 -0
  39. package/lib/locales/plugins/80-ip-pool.json +1 -0
  40. package/lib/locales/plugins/81-ego-browser.json +1 -0
  41. package/lib/locales/plugins/82-effort-slider.json +1 -0
  42. package/lib/locales/zh-ru.json +1 -1
  43. package/lib/locales.js +50 -12
  44. package/lib/pure.js +306 -14
  45. package/lib/translator.js +55 -0
  46. package/package.json +7 -2
@@ -1 +1 @@
1
- {"dsh-task-tracker":{"field.base":"URL сервера Task Tracker","field.pass":"Пароль / Токен","field.passFile":"Путь к файлу пароля","field.user":"Пользователь","loading":"Загрузка настроек трекера…","passHint":"Токен доступа к API Task Tracker","passPlaceholder":"Секретный токен","save":"Сохранить","saved":"Настройки сохранены","saving":"Сохранение…","sub":"Интеграция с внутренним трекером задач и тикетов","subtitle":"API входящих задач (базовый URL и Basic-аутентификация)","title":"Трекер задач (Task Tracker)","unavailable":"Область настроек недоступна","userHint":"Логин сервисного аккаунта"}}
1
+ {"dsh-task-tracker":{"board.back":"В чат","board.backHint":"Закрыть трекер задач и вернуться в чат","field.base":"URL сервера Task Tracker","field.filePath":"Пользовательский путь к файлу tasks.json (необязательно)","field.filePathPlaceholder":"~/.dsh/task-tracker/tasks.json","field.pass":"Пароль / Токен","field.passFile":"Путь к файлу пароля","field.user":"Пользователь","filePath":"Путь к файлу","loading":"Загрузка настроек трекера…","passHint":"Токен доступа к API Task Tracker","passPlaceholder":"Секретный токен","save":"Сохранить","saved":"Настройки сохранены","saving":"Сохранение…","sessions":"Сессии","sub":"Интеграция с внутренним трекером задач и тикетов","subtitle":"API входящих задач (базовый URL и Basic-аутентификация)","tasks.active":"Активные","tasks.add":"+ Добавить","tasks.addTask":"+ Добавить задачу","tasks.all":"Все","tasks.backToChat":"К чату","tasks.cancel":"Отмена","tasks.changeIcon":"Сменить иконку","tasks.chatWithAgent":"Чат с агентом","tasks.close":"Закрыть","tasks.completed":"Выполнено","tasks.confirmDelete":"Удалить эту задачу?","tasks.create":"+ Создать","tasks.createFolder":"Создать папку","tasks.delete":"Удалить","tasks.descPlaceholder":"Подробное описание задачи…","tasks.description":"Описание","tasks.empty":"Задачи не найдены","tasks.emptyInFolder":"В папке нет задач ","tasks.folder":"Папка","tasks.folderBtn":"Папка","tasks.folders":"Папки","tasks.form.desc":"Описание","tasks.form.descPlaceholder":"Подробное описание задачи…","tasks.form.folder":"Папка","tasks.form.priority":"Приоритет","tasks.form.title":"Название","tasks.form.titlePlaceholder":"Название задачи","tasks.loadingTasks":"Загрузка задач…","tasks.markComplete":"Отметить как выполненную","tasks.markIncomplete":"Вернуть в работу","tasks.meta.author":"Автор:","tasks.meta.created":"Создано:","tasks.modal.title":"Задача","tasks.newFolderPrompt":"Название новой папки:","tasks.newPlaceholder":"Что нужно сделать?","tasks.newTask":"Новая задача","tasks.openAgentChat":"💬 Обсудить задачу с агентом","tasks.priority":"Приоритет","tasks.priority.high":"Высокий","tasks.priority.low":"Низкий","tasks.priority.medium":"Средний","tasks.priority.normal":"Обычный","tasks.priorityHigh":"Высокий","tasks.priorityLow":"Низкий","tasks.priorityMedium":"Средний","tasks.priorityNone":"Обычный","tasks.promptTemplate":"Шаблон промпта","tasks.quickAddPlaceholder":"Что нужно сделать? Нажмите Enter для добавления","tasks.search":"Поиск задач…","tasks.showAllFolders":"Показать все папки","tasks.startChatWithAgent":"💬 Начать чат с агентом","tasks.status":"Статус","tasks.status.completed":"Завершено","tasks.statusActive":"Активно","tasks.statusCompleted":"Выполнено","tasks.taskDetails":"Детали задачи","tasks.tasksCountSuffix":"задач","tasks.title":"Задачи","tasks.titleLabel":"Название *","title":"Трекер задач (Task Tracker)","unavailable":"Область настроек недоступна","updater.available":"Доступно обновление: v{v}","updater.checkFailed":"Не удалось проверить обновления","updater.checking":"Проверка обновлений…","updater.upToDate":"Актуальная версия","updater.updateFailed":"Ошибка при обновлении","updater.updateNow":"Обновить сейчас","updater.updated":"Успешно обновлено до v{v}. Перезапустите DSH для применения.","updater.updating":"Обновление…","updater.version":"Версия","userHint":"Логин сервисного аккаунта"}}
@@ -1 +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":"Версия"},"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":"Версия"}}
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":"Доступно обновление: v{v}","updateChecking":"Проверка обновлений…","updateFailed":"Ошибка обновления: {msg}","updateNow":"Обновить сейчас","updateSuccess":"Обновлено до v{v}. Перезапустите службу DSH для применения.","updating":"Обновление...","version":"Версия"},"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":"Доступно обновление: v{v}","updateChecking":"Проверка обновлений…","updateFailed":"Ошибка обновления: {msg}","updateNow":"Обновить сейчас","updateSuccess":"Обновлено до v{v}. Перезапустите службу DSH для применения.","updating":"Обновление...","version":"Версия"}}
@@ -1 +1 @@
1
- {"@dsh-external/dsh-plugin-workshop":{"install":"Установить","installed":"Установлено","loading":"Загрузка…","search":"Поиск плагинов…","settings.description":"Просматривайте плагины и устанавливайте их в один клик.","settings.enable":"Включить мастерскую плагинов","settings.enableHint":"Отображать раздел мастерской плагинов в интерфейсе.","settings.title":"Мастерская плагинов (Workshop)","subtitle":"Каталог и поиск сторонних плагинов DSH","title":"Мастерская плагинов (Workshop)","uninstall":"Удалить"},"dsh-plugin-workshop":{"install":"Установить","installed":"Установлено","loading":"Загрузка…","search":"Поиск плагинов…","settings.description":"Просматривайте плагины и устанавливайте их в один клик.","settings.enable":"Включить мастерскую плагинов","settings.enableHint":"Отображать раздел мастерской плагинов в интерфейсе.","settings.title":"Мастерская плагинов (Workshop)","subtitle":"Каталог и поиск сторонних плагинов DSH","title":"Мастерская плагинов (Workshop)","uninstall":"Удалить"},"dsh-web-ui-market":{"badge.market":"dsh-market.com","cancel":"Отмена","command.title":"Скопируйте эту команду в терминал хоста DSH","conflict.text":"Каталог {dest} уже существует. Продолжение перезапишет файлы старой версией (действие необратимо).","conflict.title":"Каталог с таким именем уже существует","copied":"Скопировано","copyCommand":"Скопировать команду установки","empty":"Список витрины пуст (нет подключения к сети? нажмите «Повторить»)","install":"Установить","install.path":"Каталог установки: {path}","installFailed":"Ошибка установки: {reason}","installNow":"Установить сейчас","installSpecInvalid":"Неверный источник установки; поддерживаются только имена npm-пакетов и git-ссылки https://","installed":"Установлено","installedAt":"Установлено в {path}","installing":"Установка…","like":"Нравится","likeFailed":"Не удалось поставить лайк","liked":"Понравилось","loading":"Загрузка…","noMatch":"Ничего не найдено","offline":"Данные витрины недоступны","online":null,"openSite":"Открыть сайт витрины","preview":"Предпросмотр","remote.note":"В удалённых браузерах доступен только просмотр и копирование команд; установка в один клик требует локального браузера (loopback).","replace":"Заменить и установить","repository":"Исходный репозиторий","result.count":"Показано {shown} из {total}","retry":"Повторить","search.label":"Поиск по названию, автору или описанию…","settings.collapse":"Свернуть","settings.description":"Просматривайте скины, питомцев и плагины сообщества с dsh-market.com и устанавливайте их локально в один клик.","settings.discard":"Отменить изменения","settings.enable":"Включить карточку витрины","settings.enableHint":"Скрывает содержимое витрины, оставляя только переключатель.","settings.expand":"Развернуть","settings.inherit":"Наследовать","settings.invalidNumber":"Недопустимое значение","settings.notExposed":"Раздел недоступен (отсутствует пространство имён хоста)","settings.off":"Выкл","settings.on":"Вкл","settings.overridden":"Переопределяет умолчание","settings.readOnly":"Только чтение","settings.reset":"Сбросить","settings.save":"Сохранить","settings.saveFailed":"Не удалось сохранить","settings.saving":"Сохранение…","settings.title":"Витрина (Workshop)","settings.unsaved":"Несохранённые изменения","tab.pet":"Питомцы","tab.plugin":"Плагины","tab.skin":"Скины","votes":"{count} голосов"}}
1
+ {"@dsh-external/dsh-plugin-workshop":{"install":"Установить","installed":"Установлено","loading":"Загрузка…","search":"Поиск плагинов…","settings.description":"Просматривайте плагины и устанавливайте их в один клик.","settings.enable":"Включить мастерскую плагинов","settings.enableHint":"Отображать раздел мастерской плагинов в интерфейсе.","settings.title":"Мастерская плагинов (Workshop)","subtitle":"Каталог и поиск сторонних плагинов DSH","title":"Мастерская плагинов (Workshop)","uninstall":"Удалить"},"dsh-plugin-workshop":{"install":"Установить","installed":"Установлено","loading":"Загрузка…","search":"Поиск плагинов…","settings.description":"Просматривайте плагины и устанавливайте их в один клик.","settings.enable":"Включить мастерскую плагинов","settings.enableHint":"Отображать раздел мастерской плагинов в интерфейсе.","settings.title":"Мастерская плагинов (Workshop)","subtitle":"Каталог и поиск сторонних плагинов DSH","title":"Мастерская плагинов (Workshop)","uninstall":"Удалить"},"dsh-web-ui-market":{"badge.market":"dsh-market.com","cancel":"Отмена","command.title":"Скопируйте эту команду в терминал хоста DSH","conflict.text":"Каталог {dest} уже существует. Продолжение перезапишет файлы старой версией (действие необратимо).","conflict.title":"Каталог с таким именем уже существует","copied":"Скопировано","copyCommand":"Скопировать команду установки","empty":"Список витрины пуст (нет подключения к сети? нажмите «Повторить»)","install":"Установить","install.path":"Каталог установки: {path}","installFailed":"Ошибка установки: {reason}","installNow":"Установить сейчас","installSpecInvalid":"Неверный источник установки; поддерживаются только имена npm-пакетов и git-ссылки https://","installed":"Установлено","installedAt":"Установлено в {path}","installing":"Установка…","like":"Нравится","likeFailed":"Не удалось поставить лайк","liked":"Понравилось","loading":"Загрузка…","noMatch":"Ничего не найдено","offline":"Данные витрины недоступны","online":"В сети","openSite":"Открыть сайт витрины","preview":"Предпросмотр","remote.note":"В удалённых браузерах доступен только просмотр и копирование команд; установка в один клик требует локального браузера (loopback).","replace":"Заменить и установить","repository":"Исходный репозиторий","result.count":"Показано {shown} из {total}","retry":"Повторить","search.label":"Поиск по названию, автору или описанию…","settings.collapse":"Свернуть","settings.description":"Просматривайте скины, питомцев и плагины сообщества с dsh-market.com и устанавливайте их локально в один клик.","settings.discard":"Отменить изменения","settings.enable":"Включить карточку витрины","settings.enableHint":"Скрывает содержимое витрины, оставляя только переключатель.","settings.expand":"Развернуть","settings.inherit":"Наследовать","settings.invalidNumber":"Недопустимое значение","settings.notExposed":"Раздел недоступен (отсутствует пространство имён хоста)","settings.off":"Выкл","settings.on":"Вкл","settings.overridden":"Переопределяет умолчание","settings.readOnly":"Только чтение","settings.reset":"Сбросить","settings.save":"Сохранить","settings.saveFailed":"Не удалось сохранить","settings.saving":"Сохранение…","settings.title":"Витрина (Workshop)","settings.unsaved":"Несохранённые изменения","tab.pet":"Питомцы","tab.plugin":"Плагины","tab.skin":"Скины","votes":"{count} голосов"}}
@@ -1 +1 @@
1
- {"dsh-cron":{"actions.archive":"Архив","actions.archiveTitle":"Архив выполнений и журнал","actions.create":"Создать","actions.createWithDsh":"💬 Создать через DSH","actions.delete":"Удалить задачу","actions.dryRun":"Имитация","actions.dryRunTitle":"Имитация запуска (проверка выполнения без побочных эффектов и уведомлений)","actions.duplicate":"Дублировать задачу","actions.edit":"Изменить / Детали","actions.pause":"Пауза","actions.resume":"Возобновить","actions.runNow":"Запустить сейчас","actions.runNowShort":"Запуск","actions.settings":"Уведомления и каналы","actions.setupManually":"✏️ Настроить вручную","actions.tuneWithDsh":"Настроить через DSH","archive.close":"Закрыть","archive.empty":"Для этой задачи пока нет архивных записей.","archive.loadMore":"Загрузить ещё ({shown} из {total})","archive.title":"📜 Архив выполнения","archive.totalRuns":"Всего записей: {total}","banner.loadError":"Не удалось загрузить задачи: {error}","banner.retry":"Повторить","chip.title":"Задачи по расписанию (Cron)","confirm.delete":"Удалить эту задачу?","details.channel":"Канал доставки","details.created":"Создана","details.duration":"Длительность","details.error":"Ошибка","details.historyTitle":"История недавних запусков","details.model":"Модель","details.noHistory":"Запусков пока не было.","details.output":"Вывод","details.prompt":"Промпт / Команда","details.schedule":"Расписание","details.statusFailed":"Сбой","details.statusSuccess":"Успешно","details.title":"Детали задачи","details.updated":"Обновлена","dryRun.close":"Закрыть","dryRun.duration":"Длительность","dryRun.output":"Результат вывода","dryRun.preflight":"Предварительная проверка","dryRun.status":"Статус имитации","dryRun.task":"Задача","dryRun.title":"🧪 Результат имитации запуска","dsh.descLabel":"Опишите задачу и желаемую периодичность:","dsh.launchError":"Сбой запуска: {error}","dsh.modalTitle":"Планирование задачи с агентом DSH","dsh.placeholder":"Например: проверяй свободное место на диске и упавшие службы systemd каждые 2 часа и присылай алерт, только если что-то сломалось…","dsh.sendHint":"Ctrl+Enter для отправки","dsh.sendTitle":"Отправить агенту","dsh.startFailed":"Не удалось начать диалог с агентом: {error}","duplicate.done":"Копия создана и поставлена на паузу: проверьте расписание перед запуском.","duplicate.failed":"Не удалось дублировать задачу: {error}","duplicate.oneShotHint":"Копия является разовой и на паузе — исходное время уже могло пройти, задайте новое время перед возобновлением.","filters.any":"Любой","filters.channel":"Канал","filters.empty":"Нет задач, соответствующих выбранным фильтрам.","filters.model":"Модель","filters.reset":"Сбросить фильтры","filters.showing":"Показано {shown} из {total}","filters.title":"Фильтры","filters.type":"Тип","form.agentPresetHint":"Пресет агента из dsh-agent-presets (например: standard, minimal, cordis, ptc). Монтирует рабочее пространство и инструменты написания кода.","form.agentPresetLabel":"Пресет агента","form.agentPresetPlaceholder":"standard (оставьте пустым для значения по умолчанию)","form.autoDiagnoseLabel":"Автоматическая AI-диагностика сбоев","form.channelBark":"Bark","form.channelDiscord":"Discord","form.channelGitea":"Задача в Gitea","form.channelKanban":"Карточка dsh-kanban","form.channelNtfy":"ntfy","form.channelPushplus":"PushPlus","form.channelSlack":"Slack","form.channelTelegram":"Telegram","form.channelTts":"Голос (dsh-tts)","form.channelsHint":"Выберите каналы для этой задачи. Явный выбор переопределяет переключатель Telegram выше; оставьте всё неотмеченным для отката к нему.","form.channelsTitle":"Каналы доставки","form.concurrencyGroupLabel":"Группа параллелизма (Concurrency Group)","form.cronExprHint":"Синтаксис: минута (0-59) час (0-23) день месяца (1-31) месяц (1-12) день недели (0-6)","form.cronExprLabel":"Cron-выражение","form.cronExprPlaceholder":"0 9 * * 1-5 (по будням в 09:00)","form.cwdLabel":"Рабочий каталог (необязательно)","form.dockerImageLabel":"Образ контейнера","form.envHint":"Применяется только для сред без LLM. Не храните здесь секреты.","form.envLabel":"Переменные окружения (КЛЮЧ=ЗНАЧЕНИЕ в строке)","form.envPlaceholder":"NODE_ENV=production\nTZ=Europe/Moscow","form.fallbackModelHint":"Если запуск на основной модели выше завершится ошибкой, задача будет повторена один раз на резервной модели. Обе попытки учитываются в стоимости.","form.fallbackModelLabel":"Резервная модель (Fallback)","form.fallbackModelPlaceholder":"например deepseek-reasoner","form.gracePeriodLabel":"Льготный период heartbeat (секунды)","form.heartbeatIntervalLabel":"Интервал heartbeat (секунды, 0 = выкл)","form.httpBodyLabel":"Тело запроса (необязательно)","form.httpHeadersLabel":"Заголовки (JSON, необязательно)","form.httpMethodLabel":"HTTP-метод","form.httpUrlLabel":"URL","form.inspectOnFailureHint":"После сбоя модель анализирует промпт, ошибку и вывод, сохраняя диагноз и предлагаемые правки промпта вместе с запуском. Изменения не применяются автоматически.","form.inspectOnFailureLabel":"Диагностировать сбои с помощью модели","form.intervalUnitDays":"дней","form.intervalUnitHours":"часов","form.intervalUnitMinutes":"минут","form.intervalValueLabel":"Интервал выполнения","form.kanbanAlways":"Создавать карточку при каждом завершении (Done / Backlog)","form.kanbanLabel":"Создание карточек в Kanban (dsh-kanban)","form.kanbanNone":"Не создавать карточки (отключено)","form.kanbanOnFailure":"Создавать карточку при сбое (в Backlog)","form.keepWorktreeLabel":"Сохранять worktree после завершения запуска","form.misfireCatchUp":"Выполнить разово и зафиксировать пропуск (catchUpAll)","form.misfireLabel":"При пропущенном запуске (после простоя)","form.misfireRunOnce":"Выполнить один раз с опозданием (runOnce)","form.misfireSkip":"Пропустить невыполненный запуск (skip)","form.modelDefault":"Модель по умолчанию из профиля DSH","form.modelLabel":"Модель агента (для типа LLM)","form.nameLabel":"Название задачи","form.namePlaceholder":"Например: Ежедневный отчёт по коммитам","form.nextRunLabel":"Следующий запуск: ","form.notScheduled":"не запланировано","form.notifyOnlyFailure":"Только при сбоях (onlyOnFailure / молчать при успехе)","form.notifyTelegram":"Отправлять отчёт о выполнении в Telegram","form.notifyTitle":"Уведомления в Telegram","form.oneShotDateLabel":"Дата и время разового запуска","form.overlapLabel":"Политика наложения запусков","form.overlapQueue":"Поставить следующий запуск в очередь (queue)","form.overlapReplace":"Отменить текущий запуск и перезапустить (replace)","form.overlapSkip":"Пропустить новый запуск (skip)","form.permissionDefault":"По умолчанию (как настроено в DSH)","form.permissionFull":"Полный доступ","form.permissionLabel":"Разрешения сессии","form.permissionReadonly":"Только чтение","form.permissionWrite":"Запись в рабочее пространство","form.preflightDisk":"Свободное место на диске (путь:мин%)","form.preflightHttp":"HTTP (проверка кода 2xx)","form.preflightLabel":"Предварительная проверка (Pre-flight)","form.preflightNone":"Отключена","form.preflightShell":"Shell-команда (код возврата 0)","form.preflightTargetLabel":"Цель предварительной проверки","form.preflightTargetPlaceholder":"https://example.com/healthz или ls /data или /:10%","form.previewSchedule":"Рассчитать следующие запуски","form.previewScheduleTitle":"Следующие 5 запусков по расписанию:","form.priorityLabel":"Приоритет в очереди (1-10, выше = раньше)","form.promptLabelLlm":"Инструкция / Промпт для агента","form.promptLabelScript":"Shell-команда или скрипт","form.promptPlaceholderLlm":"Опишите подробно, что именно должен сделать агент…","form.promptPlaceholderScript":"curl -fsSL https://... || exit 1","form.providerDefault":"По умолчанию (DSH)","form.providerLabel":"Провайдер LLM","form.reliabilityTitle":"🛡️ Надёжность, Heartbeat и самоисцеление","form.retriesLabel":"Автоматических повторов при сбое (0 = выкл)","form.scheduleLabel":"Расписание (cron или интервал)","form.schedulePlaceholder":"0 */6 * * * или every 2h или in 30m или at: 2026-09-05T15:00:00Z","form.scheduleTypeCron":"Стандартный Cron (выражение из 5 полей)","form.scheduleTypeInterval":"Повторяющийся интервал (каждые N минут/часов)","form.scheduleTypeLabel":"Режим расписания","form.scheduleTypeOneShot":"Разовый отложенный запуск (в заданное время)","form.selfHealingLabel":"Команда самоисцеления (Shell)","form.selfHealingPlaceholder":"systemctl restart app || true","form.silentRuleHint":"Для задач с выводом: легковесная модель оценивает результат по этому правилу и пропускает отчёт, если предписано молчать. При сбое модели отчёт доставляется.","form.silentRuleLabel":"Правило подавления уведомлений (Silent rule, необязательно)","form.silentRulePlaceholder":"Молчать, если ни одна файловая система не заполнена более чем на 80%","form.skillNameLabel":"Имя навыка","form.sshKeyLabel":"Путь к закрытому ключу (резервный, необязательно)","form.sshProfileHint":"Рекомендуется: хост и реквизиты доступа берутся из плагина remote-workspace.","form.sshProfileLabel":"Профиль dsh-remote-workspace","form.sshTargetLabel":"Резервный адрес хоста (user@host, необязательно)","form.targetSessionIdHint":"Если указан, запланированные запуски возобновляют эту сессию для непрерывности контекста диалога вместо создания новой изолированной сессии.","form.targetSessionIdLabel":"ID постоянной сессии (Target Session ID)","form.targetSessionIdPlaceholder":"например: audit-chat или dev-summary (пусто = изолированный запуск)","form.targetSessionResetDaily":"Ежедневная ротация (новая сессия каждый день)","form.targetSessionResetHint":"Автоматически меняет идентификатор сессии, предотвращая разрастание контекстного окна при долгосрочной работе.","form.targetSessionResetLabel":"Ротация контекста сессии","form.targetSessionResetNever":"Непрерывно (без ротации)","form.targetSessionResetWeekly":"Еженедельная ротация (новая сессия каждую неделю)","form.templateHint":"Переменные: {title} {id} {status} {output} {error} {duration} {schedule} {time} {tokens} {cost} {model}. Пусто = встроенный текст.","form.templateLabel":"Шаблон сообщения (необязательно)","form.templatePlaceholder":"⏰ {title} — {status} за {duration}","form.timeoutLabel":"Таймаут выполнения (секунды)","form.timezoneLabel":"Часовой пояс (IANA, необязательно)","form.timezonePlaceholder":"например Europe/Moscow (пусто = локальное время сервера)","form.titleCreate":"Создание задачи по расписанию","form.titleEdit":"Редактирование задачи по расписанию","form.typeDocker":"Контейнер Docker","form.typeHttp":"HTTP-запрос (Webhook)","form.typeLabel":"Тип исполнителя","form.typeLlm":"Инструкция для AI-агента (LLM)","form.typeNode":"Node.js","form.typePython":"Python","form.typeScript":"Shell-команда / скрипт","form.typeShell":"Shell-скрипт / Команда ОС","form.typeSkill":"Навык DSH (Skill)","form.typeSsh":"Удалённый SSH","form.typeWorkflow":"Рабочий процесс (Workflow)","form.workflowNameLabel":"Имя рабочего процесса","form.workspaceLabel":"ID или путь рабочего пространства (необязательно)","form.worktreeLabel":"Запускать в изолированном git worktree","history.applySuggestion":"Открыть форму редактирования с этой рекомендацией","history.diagnosis":"Диагностика","history.empty":"Запусков пока не зафиксировано","history.loading":"Загрузка истории…","history.openSession":"Открыть сессию","history.refresh":"Обновить историю","history.silentSkip":"подавлено по правилу:","history.statusFailed":"Ошибка","history.statusMissed":"Пропущено (простой)","history.statusSkipped":"Пропущено","history.statusSuccess":"Успешно","history.statusTimeout":"Таймаут","list.cancelBtn":"Отмена","list.configManaged":"Конфиг","list.configManagedHint":"Задача создана автоматически из файла конфигурации DSH","list.cost":"Стоимость: {cost}","list.deleteBtn":"Удалить","list.deleteConfirm":"Удалить задачу «{name}»? Это действие нельзя отменить.","list.empty":"Задач по расписанию пока нет","list.failed":"Сбой","list.lastRun":"Последний запуск: {time}","list.loadErrorPrefix":"Не удалось загрузить задачи","list.loading":"Загрузка задач по расписанию…","list.next":" · след: {time}","list.nextRun":"Следующий запуск: {time}","list.oneShot":"Разовая","list.paused":"Пауза","list.running":"Выполняется","list.runningNow":"Выполняется прямо сейчас","list.runsCount":"Запусков: {count}","list.tokens":"Токены: {tokens}","list.typeLlm":"LLM","list.typeShell":"Shell","modal.cancel":"Отмена","modal.close":"Закрыть","modal.create":"Создать задачу","modal.editTitle":"Редактирование задачи","modal.history":"История запусков ({count})","modal.newTitle":"Новая задача по расписанию","modal.params":"Параметры","modal.save":"Сохранить изменения","modal.statusActive":"● Активна","modal.statusPaused":"○ На паузе","panel.back":"Назад к чату","panel.subtitle":"Попросите DSH спланировать задачи, установить напоминания или отслеживать обновления","panel.title":"Задачи по расписанию","recs.hint":"Готовые шаблоны задач. Нажатие открывает форму с заполненными полями — ничего не создаётся до сохранения.","recs.title":"Рекомендуемые задачи","search.placeholder":"Поиск задач по расписанию","settings.apiTokenLabel":"Внешний API-токен","settings.apiTokenPlaceholder":"Bearer-токен для /dsh-cron/api/* (пусто = отключено)","settings.automationHint":"Модели для вспомогательных вызовов (оценка правил, экспресс-анализ сбоев). Оставьте пустым для использования модели задачи.","settings.automationSection":"Модели автоматизации","settings.barkKeyLabel":"Ключ устройства Bark","settings.barkServerLabel":"URL сервера Bark","settings.botTokenRefLabel":"Имя секрета для Telegram Bot Token","settings.botTokenRefPlaceholder":"например TELEGRAM_BOT_TOKEN","settings.cardDesc":"Запуск задач по расписанию (cron/интервалы), фоновые сценарии агента и доставка отчётов в Telegram, Discord, Slack, ntfy, Bark, PushPlus, голос и Gitea.","settings.cardTitle":"⏰ Планировщик задач (Cron)","settings.channelTemplateLabel":"Шаблон для канала {channel}","settings.chatIdLabel":"ID чата в Telegram","settings.chatIdPlaceholder":"Например: 345678901","settings.checkingKanban":"Проверка Kanban…","settings.defaultHint":"✓ Настроенный бот обнаружен в профиле DSH","settings.deliverySection":"Каналы доставки","settings.deliveryTimeoutMsLabel":"Таймаут доставки по каналу (мс)","settings.discordLabel":"URL вебхука Discord","settings.giteaBaseUrlLabel":"Базовый URL Gitea","settings.giteaRepoLabel":"Репозиторий Gitea (владелец/репозиторий)","settings.giteaTokenRefLabel":"Имя секрета для токена Gitea","settings.globalNotify":"Глобально доставлять отчёты обо всех задачах в Telegram","settings.globalOnlyFailure":"Глобальный режим: только при ошибках (молчать при успехе)","settings.inspectorModelLabel":"Модель для диагностики сбоев","settings.kanbanFail":"❌ {error}","settings.kanbanOk":"✅ Карточка Kanban создана","settings.kanbanUrlLabel":"Базовый URL Kanban","settings.loading":"Загрузка настроек…","settings.modalTitle":"Уведомления и каналы доставки","settings.ntfyTokenRefLabel":"Имя секрета для токена ntfy","settings.ntfyTopicLabel":"Тема (topic) в ntfy","settings.ntfyUrlLabel":"URL сервера ntfy","settings.openPanel":"Открыть панель задач","settings.pushplusTokenRefLabel":"Имя секрета для токена PushPlus","settings.pushplusUrlLabel":"Конечная точка PushPlus","settings.retry":"Повторить","settings.save":"Сохранить настройки","settings.saveError":"Ошибка сохранения: {error}","settings.saveErrorUnknown":"неизвестная ошибка","settings.saved":"✓ Сохранено","settings.secretsHint":"Введите ИМЯ учётных данных DSH, а не сам секрет. Секреты остаются в защищённом хранилище credentials.","settings.secretsOnCard":"Учётные данные, на которые ссылается панель настроек, отображаются скрытыми и сохраняются по имени ссылки.","settings.secretsSection":"Учётные данные (ссылки по имени)","settings.sending":"Отправка…","settings.silentRuleModelLabel":"Модель для фоновых правил","settings.slackLabel":"URL вебхука Slack","settings.telegramSection":"Telegram","settings.templateHint":"Применяется ко всем каналам без индивидуального шаблона. Пусто = стандартный встроенный текст.","settings.templateLabel":"Шаблон сообщения по умолчанию","settings.templatesSection":"Шаблоны сообщений","settings.testFail":"❌ {error}","settings.testKanban":"📋 Проверить Kanban","settings.testOk":"✅ Тестовое сообщение доставлено в Telegram!","settings.testTelegram":"🔔 Проверить доставку в Telegram","settings.tokenLabel":"Токен бота Telegram","settings.tokenPlaceholder":"123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ","settings.tokenPlaceholderDefault":"Используется бот, настроенный в профиле DSH (или введите свой)","settings.ttsBaseUrlLabel":"Базовый URL службы dsh-tts","settings.unavailable":"Настройки сейчас недоступны.","sidebar.jobsTitle":"Активные задачи","sidebar.label":"Задачи по расписанию","sidebar.moreJobs":"и ещё {count}","sidebar.noActiveJobs":"Нет активных задач","stats.activeTasks":"Активных задач","stats.totalCost":"Расчётная стоимость","stats.totalRuns":"Всего запусков","stats.totalTokens":"Потрачено токенов","tabs.active":"Активные","tabs.all":"Все","tabs.completed":"Завершённые","tabs.paused":"На паузе","transfer.badFile":"Выбранный файл не является корректным JSON-экспортом: {error}","transfer.confirm":"Импортировать","transfer.exportFailed":"Сбой экспорта: {error}","transfer.exportTitle":"Экспорт задач","transfer.exported":"Экспортировано задач: {count}.","transfer.importFailed":"Сбой импорта: {error}","transfer.importHint":"Экспортируются только настройки задач: без истории запусков и счетчиков. Секреты не включаются — каналы ссылаются на учетные данные по имени, поэтому убедитесь, что эти имена существуют на целевом сервере.","transfer.importTitle":"Импорт задач","transfer.importTitleModal":"Импорт задач","transfer.imported":"Импортировано задач: {count}.","transfer.strategyAdd":"Добавить как новые задачи (новые ID, существующие не изменятся)","transfer.strategyReplace":"Заменить задачи с совпадающим ID","transfer.strategySkip":"Пропустить задачи, чей ID уже существует","transfer.summary":"В файле содержится задач: {total} (новых: {add}, совпадает по ID: {replace}, пропущено: {skip}).","tune.startFailed":"Не удалось начать диалог настройки: {error}"}}
1
+ {"dsh-cron":{"actions.archive":"Архив","actions.archiveTitle":"Архив выполнений и журнал","actions.create":"Создать","actions.createWithDsh":"💬 Создать через DSH","actions.delete":"Удалить задачу","actions.dryRun":"Имитация","actions.dryRunTitle":"Имитация запуска (проверка выполнения без побочных эффектов и уведомлений)","actions.duplicate":"Дублировать задачу","actions.edit":"Изменить / Детали","actions.pause":"Пауза","actions.resume":"Возобновить","actions.runNow":"Запустить сейчас","actions.runNowShort":"Запуск","actions.settings":"Уведомления и каналы","actions.setupManually":"✏️ Настроить вручную","actions.tuneWithDsh":"Настроить через DSH","archive.close":"Закрыть","archive.empty":"Для этой задачи пока нет архивных записей.","archive.loadMore":"Загрузить ещё ({shown} из {total})","archive.title":"📜 Архив выполнения","archive.totalRuns":"Всего записей: {total}","banner.loadError":"Не удалось загрузить задачи: {error}","banner.retry":"Повторить","chip.title":"Задачи по расписанию (Cron)","confirm.delete":"Удалить эту задачу?","details.channel":"Канал доставки","details.created":"Создана","details.duration":"Длительность","details.error":"Ошибка","details.historyTitle":"История недавних запусков","details.model":"Модель","details.noHistory":"Запусков пока не было.","details.output":"Вывод","details.prompt":"Промпт / Команда","details.schedule":"Расписание","details.statusFailed":"Сбой","details.statusSuccess":"Успешно","details.title":"Детали задачи","details.updated":"Обновлена","dryRun.close":"Закрыть","dryRun.duration":"Длительность","dryRun.output":"Результат вывода","dryRun.preflight":"Предварительная проверка","dryRun.status":"Статус имитации","dryRun.task":"Задача","dryRun.title":"🧪 Результат имитации запуска","dsh.descLabel":"Опишите задачу и желаемую периодичность:","dsh.launchError":"Сбой запуска: {error}","dsh.modalTitle":"Планирование задачи с агентом DSH","dsh.placeholder":"Например: проверяй свободное место на диске и упавшие службы systemd каждые 2 часа и присылай алерт, только если что-то сломалось…","dsh.sendHint":"Ctrl+Enter для отправки","dsh.sendTitle":"Отправить агенту","dsh.startFailed":"Не удалось начать диалог с агентом: {error}","duplicate.done":"Копия создана и поставлена на паузу: проверьте расписание перед запуском.","duplicate.failed":"Не удалось дублировать задачу: {error}","duplicate.oneShotHint":"Копия является разовой и на паузе — исходное время уже могло пройти, задайте новое время перед возобновлением.","filters.any":"Любой","filters.channel":"Канал","filters.empty":"Нет задач, соответствующих выбранным фильтрам.","filters.model":"Модель","filters.reset":"Сбросить фильтры","filters.showing":"Показано {shown} из {total}","filters.title":"Фильтры","filters.type":"Тип","form.agentPresetHint":"Пресет агента из dsh-agent-presets (например: standard, minimal, cordis, ptc). Монтирует рабочее пространство и инструменты написания кода.","form.agentPresetLabel":"Пресет агента","form.agentPresetPlaceholder":"standard (оставьте пустым для значения по умолчанию)","form.autoDiagnoseLabel":"Автоматическая AI-диагностика сбоев","form.channelBark":"Bark","form.channelDiscord":"Discord","form.channelGitea":"Задача в Gitea","form.channelKanban":"Карточка dsh-kanban","form.channelNtfy":"ntfy","form.channelPushplus":"PushPlus","form.channelSlack":"Slack","form.channelTelegram":"Telegram","form.channelTts":"Голос (dsh-tts)","form.channelsHint":"Выберите каналы для этой задачи. Явный выбор переопределяет переключатель Telegram выше; оставьте всё неотмеченным для отката к нему.","form.channelsTitle":"Каналы доставки","form.concurrencyGroupLabel":"Группа параллелизма (Concurrency Group)","form.cronExprHint":"Синтаксис: минута (0-59) час (0-23) день месяца (1-31) месяц (1-12) день недели (0-6)","form.cronExprLabel":"Cron-выражение","form.cronExprPlaceholder":"0 9 * * 1-5 (по будням в 09:00)","form.cwdLabel":"Рабочий каталог (необязательно)","form.dockerImageLabel":"Образ контейнера","form.envHint":"Применяется только для сред без LLM. Не храните здесь секреты.","form.envLabel":"Переменные окружения (КЛЮЧ=ЗНАЧЕНИЕ в строке)","form.envPlaceholder":"NODE_ENV=production\nTZ=Europe/Moscow","form.fallbackModelHint":"Если запуск на основной модели выше завершится ошибкой, задача будет повторена один раз на резервной модели. Обе попытки учитываются в стоимости.","form.fallbackModelLabel":"Резервная модель (Fallback)","form.fallbackModelPlaceholder":"например deepseek-reasoner","form.gracePeriodLabel":"Льготный период heartbeat (секунды)","form.heartbeatIntervalLabel":"Интервал heartbeat (секунды, 0 = выкл)","form.httpBodyLabel":"Тело запроса (необязательно)","form.httpHeadersLabel":"Заголовки (JSON, необязательно)","form.httpMethodLabel":"HTTP-метод","form.httpUrlLabel":"URL","form.inspectOnFailureHint":"После сбоя модель анализирует промпт, ошибку и вывод, сохраняя диагноз и предлагаемые правки промпта вместе с запуском. Изменения не применяются автоматически.","form.inspectOnFailureLabel":"Диагностировать сбои с помощью модели","form.intervalUnitDays":"дней","form.intervalUnitHours":"часов","form.intervalUnitMinutes":"минут","form.intervalValueLabel":"Интервал выполнения","form.kanbanAlways":"Создавать карточку при каждом завершении (Done / Backlog)","form.kanbanLabel":"Создание карточек в Kanban (dsh-kanban)","form.kanbanNone":"Не создавать карточки (отключено)","form.kanbanOnFailure":"Создавать карточку при сбое (в Backlog)","form.keepWorktreeLabel":"Сохранять worktree после завершения запуска","form.misfireCatchUp":"Выполнить разово и зафиксировать пропуск (catchUpAll)","form.misfireLabel":"При пропущенном запуске (после простоя)","form.misfireRunOnce":"Выполнить один раз с опозданием (runOnce)","form.misfireSkip":"Пропустить невыполненный запуск (skip)","form.modelDefault":"Модель по умолчанию из профиля DSH","form.modelLabel":"Модель агента (для типа LLM)","form.nameLabel":"Название задачи","form.namePlaceholder":"Например: Ежедневный отчёт по коммитам","form.nextRunLabel":"Следующий запуск: ","form.notScheduled":"не запланировано","form.notifyOnlyFailure":"Только при сбоях (onlyOnFailure / молчать при успехе)","form.notifyTelegram":"Отправлять отчёт о выполнении в Telegram","form.notifyTitle":"Уведомления в Telegram","form.oneShotDateLabel":"Дата и время разового запуска","form.overlapLabel":"Политика наложения запусков","form.overlapQueue":"Поставить следующий запуск в очередь (queue)","form.overlapReplace":"Отменить текущий запуск и перезапустить (replace)","form.overlapSkip":"Пропустить новый запуск (skip)","form.permissionDefault":"По умолчанию (как настроено в DSH)","form.permissionFull":"Полный доступ","form.permissionLabel":"Разрешения сессии","form.permissionReadonly":"Только чтение","form.permissionWrite":"Запись в рабочее пространство","form.preflightDisk":"Свободное место на диске (путь:мин%)","form.preflightHttp":"HTTP (проверка кода 2xx)","form.preflightLabel":"Предварительная проверка (Pre-flight)","form.preflightNone":"Отключена","form.preflightShell":"Shell-команда (код возврата 0)","form.preflightTargetLabel":"Цель предварительной проверки","form.preflightTargetPlaceholder":"https://example.com/healthz или ls /data или /:10%","form.previewSchedule":"Рассчитать следующие запуски","form.previewScheduleTitle":"Следующие 5 запусков по расписанию:","form.priorityLabel":"Приоритет в очереди (1-10, выше = раньше)","form.promptLabelLlm":"Инструкция / Промпт для агента","form.promptLabelScript":"Shell-команда или скрипт","form.promptPlaceholderLlm":"Опишите подробно, что именно должен сделать агент…","form.promptPlaceholderScript":"curl -fsSL https://... || exit 1","form.providerDefault":"По умолчанию (DSH)","form.providerLabel":"Провайдер LLM","form.reliabilityTitle":"🛡️ Надёжность, Heartbeat и самоисцеление","form.retriesLabel":"Автоматических повторов при сбое (0 = выкл)","form.scheduleLabel":"Расписание (cron или интервал)","form.schedulePlaceholder":"0 */6 * * * или every 2h или in 30m или at: 2026-09-05T15:00:00Z","form.scheduleTypeCron":"Стандартный Cron (выражение из 5 полей)","form.scheduleTypeInterval":"Повторяющийся интервал (каждые N минут/часов)","form.scheduleTypeLabel":"Режим расписания","form.scheduleTypeOneShot":"Разовый отложенный запуск (в заданное время)","form.selfHealingLabel":"Команда самоисцеления (Shell)","form.selfHealingPlaceholder":"systemctl restart app || true","form.silentRuleHint":"Для задач с выводом: легковесная модель оценивает результат по этому правилу и пропускает отчёт, если предписано молчать. При сбое модели отчёт доставляется.","form.silentRuleLabel":"Правило подавления уведомлений (Silent rule, необязательно)","form.silentRulePlaceholder":"Молчать, если ни одна файловая система не заполнена более чем на 80%","form.skillNameLabel":"Имя навыка","form.sshKeyLabel":"Путь к закрытому ключу (резервный, необязательно)","form.sshProfileHint":"Рекомендуется: хост и реквизиты доступа берутся из плагина remote-workspace.","form.sshProfileLabel":"Профиль dsh-remote-workspace","form.sshTargetLabel":"Резервный адрес хоста (user@host, необязательно)","form.targetSessionIdHint":"Если указан, запланированные запуски возобновляют эту сессию для непрерывности контекста диалога вместо создания новой изолированной сессии.","form.targetSessionIdLabel":"ID постоянной сессии (Target Session ID)","form.targetSessionIdPlaceholder":"например: audit-chat или dev-summary (пусто = изолированный запуск)","form.targetSessionResetDaily":"Ежедневная ротация (новая сессия каждый день)","form.targetSessionResetHint":"Автоматически меняет идентификатор сессии, предотвращая разрастание контекстного окна при долгосрочной работе.","form.targetSessionResetLabel":"Ротация контекста сессии","form.targetSessionResetNever":"Непрерывно (без ротации)","form.targetSessionResetWeekly":"Еженедельная ротация (новая сессия каждую неделю)","form.templateHint":"Переменные: {title} {id} {status} {output} {error} {duration} {schedule} {time} {tokens} {cost} {model}. Пусто = встроенный текст.","form.templateLabel":"Шаблон сообщения (необязательно)","form.templatePlaceholder":"⏰ {title} — {status} за {duration}","form.timeoutLabel":"Таймаут выполнения (секунды)","form.timezoneLabel":"Часовой пояс (IANA, необязательно)","form.timezonePlaceholder":"например Europe/Moscow (пусто = локальное время сервера)","form.titleCreate":"Создание задачи по расписанию","form.titleEdit":"Редактирование задачи по расписанию","form.typeDocker":"Контейнер Docker","form.typeHttp":"HTTP-запрос (Webhook)","form.typeLabel":"Тип исполнителя","form.typeLlm":"Инструкция для AI-агента (LLM)","form.typeNode":"Node.js","form.typePython":"Python","form.typeScript":"Shell-команда / скрипт","form.typeShell":"Shell-скрипт / Команда ОС","form.typeSkill":"Навык DSH (Skill)","form.typeSsh":"Удалённый SSH","form.typeWorkflow":"Рабочий процесс (Workflow)","form.workflowNameLabel":"Имя рабочего процесса","form.workspaceLabel":"ID или путь рабочего пространства (необязательно)","form.worktreeLabel":"Запускать в изолированном git worktree","history.applySuggestion":"Открыть форму редактирования с этой рекомендацией","history.diagnosis":"Диагностика","history.empty":"Запусков пока не зафиксировано","history.loading":"Загрузка истории…","history.openSession":"Открыть сессию","history.refresh":"Обновить историю","history.silentSkip":"подавлено по правилу:","history.statusFailed":"Ошибка","history.statusMissed":"Пропущено (простой)","history.statusSkipped":"Пропущено","history.statusSuccess":"Успешно","history.statusTimeout":"Таймаут","list.cancelBtn":"Отмена","list.configManaged":"Конфиг","list.configManagedHint":"Задача создана автоматически из файла конфигурации DSH","list.cost":"Стоимость: {cost}","list.deleteBtn":"Удалить","list.deleteConfirm":"Удалить задачу «{name}»? Это действие нельзя отменить.","list.empty":"Задач по расписанию пока нет","list.failed":"Сбой","list.lastRun":"Последний запуск: {time}","list.loadErrorPrefix":"Не удалось загрузить задачи","list.loading":"Загрузка задач по расписанию…","list.next":" · след: {time}","list.nextRun":"Следующий запуск: {time}","list.oneShot":"Разовая","list.paused":"Пауза","list.running":"Выполняется","list.runningNow":"Выполняется прямо сейчас","list.runsCount":"Запусков: {count}","list.tokens":"Токены: {tokens}","list.typeLlm":"LLM","list.typeShell":"Shell","modal.cancel":"Отмена","modal.close":"Закрыть","modal.create":"Создать задачу","modal.editTitle":"Редактирование задачи","modal.history":"История запусков ({count})","modal.newTitle":"Новая задача по расписанию","modal.params":"Параметры","modal.save":"Сохранить изменения","modal.statusActive":"● Активна","modal.statusPaused":"○ На паузе","panel.back":"Назад к чату","panel.subtitle":"Попросите DSH спланировать задачи, установить напоминания или отслеживать обновления","panel.title":"Задачи по расписанию","recs.hint":"Готовые шаблоны задач. Нажатие открывает форму с заполненными полями — ничего не создаётся до сохранения.","recs.title":"Рекомендуемые задачи","search.placeholder":"Поиск задач по расписанию","settings.apiTokenLabel":"Внешний API-токен","settings.apiTokenPlaceholder":"Bearer-токен для /dsh-cron/api/* (пусто = отключено)","settings.automationHint":"Модели для вспомогательных вызовов (оценка правил, экспресс-анализ сбоев). Оставьте пустым для использования модели задачи.","settings.automationSection":"Модели автоматизации","settings.barkKeyLabel":"Ключ устройства Bark","settings.barkServerLabel":"URL сервера Bark","settings.botTokenRefLabel":"Имя секрета для Telegram Bot Token","settings.botTokenRefPlaceholder":"например TELEGRAM_BOT_TOKEN","settings.cardDesc":"Запуск задач по расписанию (cron/интервалы), фоновые сценарии агента и доставка отчётов в Telegram, Discord, Slack, ntfy, Bark, PushPlus, голос и Gitea.","settings.cardTitle":"⏰ Планировщик задач (Cron)","settings.channelTemplateLabel":"Шаблон для канала {channel}","settings.chatIdLabel":"ID чата в Telegram","settings.chatIdPlaceholder":"Например: 345678901","settings.checkingKanban":"Проверка Kanban…","settings.defaultHint":"✓ Настроенный бот обнаружен в профиле DSH","settings.deliverySection":"Каналы доставки","settings.deliveryTimeoutMsLabel":"Таймаут доставки по каналу (мс)","settings.discordLabel":"URL вебхука Discord","settings.giteaBaseUrlLabel":"Базовый URL Gitea","settings.giteaRepoLabel":"Репозиторий Gitea (владелец/репозиторий)","settings.giteaTokenRefLabel":"Имя секрета для токена Gitea","settings.globalNotify":"Глобально доставлять отчёты обо всех задачах в Telegram","settings.globalOnlyFailure":"Глобальный режим: только при ошибках (молчать при успехе)","settings.inspectorModelLabel":"Модель для диагностики сбоев","settings.kanbanFail":"❌ {error}","settings.kanbanOk":"✅ Карточка Kanban создана","settings.kanbanUrlLabel":"Базовый URL Kanban","settings.loading":"Загрузка настроек…","settings.modalTitle":"Уведомления и каналы доставки","settings.ntfyTokenRefLabel":"Имя секрета для токена ntfy","settings.ntfyTopicLabel":"Тема (topic) в ntfy","settings.ntfyUrlLabel":"URL сервера ntfy","settings.openPanel":"Открыть панель задач","settings.pushplusTokenRefLabel":"Имя секрета для токена PushPlus","settings.pushplusUrlLabel":"Конечная точка PushPlus","settings.retry":"Повторить","settings.save":"Сохранить настройки","settings.saveError":"Ошибка сохранения: {error}","settings.saveErrorUnknown":"неизвестная ошибка","settings.saved":"✓ Сохранено","settings.secretsHint":"Введите ИМЯ учётных данных DSH, а не сам секрет. Секреты остаются в защищённом хранилище credentials.","settings.secretsOnCard":"Учётные данные, на которые ссылается панель настроек, отображаются скрытыми и сохраняются по имени ссылки.","settings.secretsSection":"Учётные данные (ссылки по имени)","settings.sending":"Отправка…","settings.silentRuleModelLabel":"Модель для фоновых правил","settings.slackLabel":"URL вебхука Slack","settings.telegramSection":"Telegram","settings.templateHint":"Применяется ко всем каналам без индивидуального шаблона. Пусто = стандартный встроенный текст.","settings.templateLabel":"Шаблон сообщения по умолчанию","settings.templatesSection":"Шаблоны сообщений","settings.testFail":"❌ {error}","settings.testKanban":"📋 Проверить Kanban","settings.testOk":"✅ Тестовое сообщение доставлено в Telegram!","settings.testTelegram":"🔔 Проверить доставку в Telegram","settings.tokenLabel":"Токен бота Telegram","settings.tokenPlaceholder":"123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ","settings.tokenPlaceholderDefault":"Используется бот, настроенный в профиле DSH (или введите свой)","settings.ttsBaseUrlLabel":"Базовый URL службы dsh-tts","settings.unavailable":"Настройки сейчас недоступны.","sidebar.jobsTitle":"Активные задачи","sidebar.label":"Задачи по расписанию","sidebar.moreJobs":"и ещё {count}","sidebar.noActiveJobs":"Нет активных задач","stats.activeTasks":"Активных задач","stats.totalCost":"Расчётная стоимость","stats.totalRuns":"Всего запусков","stats.totalTokens":"Потрачено токенов","tabs.active":"Активные","tabs.all":"Все","tabs.completed":"Завершённые","tabs.paused":"На паузе","transfer.badFile":"Выбранный файл не является корректным JSON-экспортом: {error}","transfer.confirm":"Импортировать","transfer.exportFailed":"Сбой экспорта: {error}","transfer.exportTitle":"Экспорт задач","transfer.exported":"Экспортировано задач: {count}.","transfer.importFailed":"Сбой импорта: {error}","transfer.importHint":"Экспортируются только настройки задач: без истории запусков и счетчиков. Секреты не включаются — каналы ссылаются на учетные данные по имени, поэтому убедитесь, что эти имена существуют на целевом сервере.","transfer.importTitle":"Импорт задач","transfer.importTitleModal":"Импорт задач","transfer.imported":"Импортировано задач: {count}.","transfer.strategyAdd":"Добавить как новые задачи (новые ID, существующие не изменятся)","transfer.strategyReplace":"Заменить задачи с совпадающим ID","transfer.strategySkip":"Пропустить задачи, чей ID уже существует","transfer.summary":"В файле содержится задач: {total} (новых: {add}, совпадает по ID: {replace}, пропущено: {skip}).","tune.startFailed":"Не удалось начать диалог настройки: {error}","updater.available":"Доступно обновление: v{version}","updater.btnCheck":"Проверить обновления","updater.btnUpdate":"Обновить до v{version}","updater.checking":"Проверка…","updater.current":"Текущая версия: v{version}","updater.desc":"Проверка реестра npm и установка обновлений плагина на месте без SSH-доступа.","updater.success":"Успешно обновлено до v{version}. Перезапустите DSH или перезагрузите профиль для применения изменений.","updater.title":"Автообновление плагина","updater.upToDate":"Актуальная версия","updater.updating":"Обновление…"}}
@@ -1 +1 @@
1
- {"dsh-grok-xsearch":{"advanced_settings":"Расширенные настройки","api_key":"Ключ API xAI","api_key_hint":"Ключ API xAI. Если поле пустое, используется переменная окружения XAI_API_KEY.","api_key_placeholder":"xai-...","author":"Автор","auto_fallback":"Автопереключение на Grok 4.5 при лимитах (429)","base_url":"Базовый URL API","base_url_hint":"Конечная точка xAI API (по умолчанию: https://api.x.ai/v1).","browser_no_return":"Браузер не вернулся автоматически? Вставьте URL перенаправления","cache_cleared":"Кэш очищен","cache_hit_rate":"Эффективность кэша","cache_hits":"Попаданий","cache_misses":"Промахов","cache_stats":"Запросов в кэше","cache_ttl_hint":"Длительность хранения результатов в кэше запросов (по умолчанию: 300 с).","cache_ttl_seconds":"Время жизни кэша (сек)","cancel":"Отмена","clear_cache":"Очистить кэш","client_id_hint":"OAuth Client ID из портала разработчиков SuperGrok / xAI.","connect":"Подключить","connected":"Подключено","disconnect":"Отключить","enable_cache":"Кэширование повторных запросов в памяти (5 мин)","enable_deep_search":"Режим углублённого поиска (Deep Search)","enable_deep_search_hint":"Выполняет многошаговые поисковые проходы для всестороннего анализа темы.","enable_news":"Включить агрегацию новостей X","enable_news_hint":"Позволяет модели обобщать актуальные тренды новостей и медиа-повестки.","enabled_plugin":"Включить плагин Grok X Search","grok_client_id":"ID клиента Grok (OAuth Client ID)","likes":"Лайков","loading":"Загрузка…","max_results":"Макс. результатов поиска","max_results_hint":"Максимальное количество твитов или постов, возвращаемых за один поисковый запрос (1–50).","model":"Модель","model_hint":"Модель xAI для обобщения и синтеза поисковой выдачи.","no_results":"По вашему запросу ничего не найдено в X.","not_connected":"Не подключено","not_connected_msg":"Подключите учётную запись SuperGrok для активации инструментов аналитики X.","paste_hint":"Вставьте полный URL из адресной строки браузера после авторизации.","plugin_subtitle":"Поиск в реальном времени и аналитика X (Twitter) на базе xAI Grok","plugin_title":"Grok X Search","posted_at":"Опубликовано {time}","ready_msg":"Инструменты x_search, x_author_profile, x_trending_topics, x_fact_check_notes, x_thread_reader и x_find_experts готовы к работе в чате.","reconnect":"Переподключить","redirect_uri":"URL перенаправления OAuth","redirect_uri_hint":"Локальный URL обратного вызова OAuth (по умолчанию: http://127.0.0.1:56121/callback).","reposts":"Репостов","results_count":"Найдено результатов: {count}","retries":"Макс. попыток","retries_hint":"Количество повторных попыток при сетевых сбоях (по умолчанию: 2).","save_error":"Ошибка при сохранении настроек","save_settings":"Сохранить настройки","saving":"Сохранение…","search_btn":"Найти","search_placeholder":"Поиск трендов, аккаунтов или тем в X...","search_tab":"Поиск в X","searching":"Поиск в X…","sec_auth_desc":"Токен подключения OAuth безопасно хранится в службе Credentials DSH и обновляется автоматически.","sec_auth_title":"🔑 Авторизация и доступ к SuperGrok","sec_cache_desc":"Кэш запросов LRU в оперативной памяти исключает дублирующие вызовы API и ускоряет повторные поиски.","sec_cache_title":"⚡ Производительность и кэш запросов","sec_model_desc":"Выбор модели xAI для синтеза поисковой выдачи и автоматический переход на резервную при лимитах.","sec_model_title":"🧠 Настройка модели и отказоустойчивости","sentiment_negative":"Негативная тональность","sentiment_neutral":"Нейтральная тональность","sentiment_positive":"Позитивная тональность","settings_saved":"Настройки успешно сохранены","status_active":"Активен","status_error":"Ошибка подключения","status_no_key":"API-ключ не задан","submit":"Отправить","subtitle":"Поиск в реальном времени, профили авторов, тренды и фактчекинг в X (Twitter) через SuperGrok OAuth.","supergrok_account":"Учётная запись SuperGrok","timeout_hint":"Максимальное время ожидания ответа перед отменой (по умолчанию: 180 с).","timeout_seconds":"Таймаут поиска (сек)","title":"Grok X Search & Intelligence Suite","updater_check":"Проверить обновления","updater_checking":"Проверка…","updater_failed":"Ошибка проверки обновлений: ","updater_success":"Плагин успешно обновлен! Пожалуйста, перезапустите сервис DSH.","updater_title":"Обновление плагина","updater_up_to_date":"Актуальная версия","updater_update_now":"Обновить сейчас","updater_updating":"Обновление…"}}
1
+ {"dsh-grok-xsearch":{"advanced_settings":"Расширенные настройки","api_key":"Ключ API xAI","api_key_hint":"Ключ API xAI. Если поле пустое, используется переменная окружения XAI_API_KEY.","api_key_placeholder":"xai-...","author":"Автор","auto_fallback":"Автопереключение на Grok 4.5 при лимитах (429)","base_url":"Базовый URL API","base_url_hint":"Конечная точка xAI API (по умолчанию: https://api.x.ai/v1).","browser_no_return":"Браузер не вернулся автоматически? Вставьте URL перенаправления","cache_cleared":"Кэш очищен","cache_hit_rate":"Эффективность кэша","cache_hits":"Попаданий","cache_misses":"Промахов","cache_stats":"Запросов в кэше","cache_ttl_hint":"Длительность хранения результатов в кэше запросов (по умолчанию: 300 с).","cache_ttl_seconds":"Время жизни кэша (сек)","cancel":"Отмена","clear_cache":"Очистить кэш","client_id_hint":"OAuth Client ID из портала разработчиков SuperGrok / xAI.","connect":"Подключить","connected":"Подключено","disconnect":"Отключить","enable_cache":"Кэширование повторных запросов в памяти (5 мин)","enable_deep_search":"Режим углублённого поиска (Deep Search)","enable_deep_search_hint":"Выполняет многошаговые поисковые проходы для всестороннего анализа темы.","enable_news":"Включить агрегацию новостей X","enable_news_hint":"Позволяет модели обобщать актуальные тренды новостей и медиа-повестки.","enabled_plugin":"Включить плагин Grok X Search","grok_client_id":"ID клиента Grok (OAuth Client ID)","likes":"Лайков","loading":"Загрузка…","max_results":"Макс. результатов поиска","max_results_hint":"Максимальное количество твитов или постов, возвращаемых за один поисковый запрос (1–50).","model":"Модель","model_hint":"Модель xAI для обобщения и синтеза поисковой выдачи.","no_results":"По вашему запросу ничего не найдено в X.","not_connected":"Не подключено","not_connected_msg":"Подключите учётную запись SuperGrok для активации инструментов аналитики X.","paste_hint":"Вставьте полный URL из адресной строки браузера после авторизации.","plugin_subtitle":"Поиск в реальном времени и аналитика X (Twitter) на базе xAI Grok","plugin_title":"Grok X Search","posted_at":"Опубликовано {time}","ready_msg":"Инструменты x_search, x_author_profile, x_trending_topics, x_fact_check_notes, x_thread_reader и x_find_experts готовы к работе в чате.","reconnect":"Переподключить","redirect_uri":"URL перенаправления OAuth","redirect_uri_hint":"Локальный URL обратного вызова OAuth (по умолчанию: http://127.0.0.1:56121/callback).","reposts":"Репостов","results_count":"Найдено результатов: {count}","retries":"Макс. попыток","retries_hint":"Количество повторных попыток при сетевых сбоях (по умолчанию: 2).","save_error":"Ошибка при сохранении настроек","save_settings":"Сохранить настройки","saving":"Сохранение…","search_btn":"Найти","search_placeholder":"Поиск трендов, аккаунтов или тем в X...","search_tab":"Поиск в X","searching":"Поиск в X…","sec_auth_desc":"Токен подключения OAuth безопасно хранится в службе Credentials DSH и обновляется автоматически.","sec_auth_title":"🔑 Авторизация и доступ к SuperGrok","sec_cache_desc":"Кэш запросов LRU в оперативной памяти исключает дублирующие вызовы API и ускоряет повторные поиски.","sec_cache_title":"⚡ Производительность и кэш запросов","sec_model_desc":"Выбор модели xAI для синтеза поисковой выдачи и автоматический переход на резервную при лимитах.","sec_model_title":"🧠 Настройка модели и отказоустойчивости","sentiment_negative":"Негативная тональность","sentiment_neutral":"Нейтральная тональность","sentiment_positive":"Позитивная тональность","settings_saved":"Настройки успешно сохранены","status_active":"Активен","status_error":"Ошибка подключения","status_no_key":"API-ключ не задан","submit":"Отправить","subtitle":"Поиск в реальном времени, профили авторов, тренды и фактчекинг в X (Twitter) через SuperGrok OAuth.","supergrok_account":"Учётная запись SuperGrok","timeout_hint":"Максимальное время ожидания ответа перед отменой (по умолчанию: 180 с).","timeout_seconds":"Таймаут поиска (сек)","title":"Grok X Search & Intelligence Suite","updater_check":"Проверить обновления","updater_checking":"Проверка…","updater_current":"Текущая версия","updater_failed":"Ошибка проверки обновлений: ","updater_latest":"Последняя версия","updater_success":"Плагин успешно обновлен! Пожалуйста, перезапустите сервис DSH.","updater_title":"Обновление плагина","updater_up_to_date":"Актуальная версия","updater_update_now":"Обновить сейчас","updater_updating":"Обновление…"}}
@@ -1 +1 @@
1
- {"dsh-goal":{"autoDriveLabel":"Автопилот: непрерывное автономное выполнение цикла","cardSubtitle":"Отслеживание целей с контрольными точками и подцелями","checkUpdate":"Проверить обновление","checking":"Проверка…","clearGoal":"Очистить цель","close":"Закрыть","closeBanner":"Закрыть баннер цели","copyGitDiff":"Нажмите, чтобы скопировать команду git diff","copyPRComment":"🐙 Скопировать для GitHub PR","copyReport":"📋 Скопировать отчёт в Markdown","details":"Развернуть детали цели","discard":"Сбросить изменения","done":"Выполнено","eta":"Оценка времени (ETA)","goalCompleted":"Цель достигнута","goalLabel":"Текущая цель","iterations":"Итерации","loading":"Загрузка настроек…","localeCode":"ru","maxIterLabel":"Макс. итераций (лимит безопасности):","milestones":"План работы:","modalTitle":"План и статус цели","modalTitleCompleted":"Цель выполнена: план и результаты","noMilestones":"Агент формирует план работы…","notifLabel":"Нативные уведомления на рабочем столе браузера при завершении","nudgePlaceholder":"💡 Уточнить задачу или скорректировать агента…","nudgeSent":"✅ Уточнение отправлено!","overridden":"переопределено","pause":"Пауза","paused":"Приостановлено","pluginDesc":"Баннер цели над полем ввода, декомпозиция задач и автопилот","pluginTitle":"Автономный режим целей (Goal Mode)","prCommentCopied":"✅ Отчёт для PR скопирован!","progress":"Прогресс","quickLaunch":"Начать цель","quickLaunchDesc":"Сформулируйте задачу для автономной работы агента:","quickLaunchLabel":"Кнопка быстрого запуска цели над полем ввода","quickLaunchPlaceholder":"Например: Реализовать экспорт отчёта и покрыть юнит-тестами…","quickLaunchTitle":"Быстрый запуск цели","reportCopied":"✅ Скопировано!","resetField":"По умолчанию","resume":"Возобновить","save":"Сохранить","saveFailed":"Не удалось сохранить — исправьте значения и повторите","saving":"Сохранение…","sendNudge":"Подрулить","soundLabel":"Звуковой сигнал при завершении цели","startGoal":"Запустить цель","templateCleanup":"🧹 Мёртвый код","templateDocs":"📚 Документация и контракт","templateFeature":"🚀 Новая функция","templateFix":"🐛 Исправление бага","templatePerf":"⚙️ Производительность","templateRefactor":"⚡ Рефакторинг (YAGNI)","templateReview":"🔍 Ревью кода","templateSecurity":"🛡️ Аудит безопасности","templateTests":"📝 Тесты и покрытие","templateUpgrade":"📦 Обновление зависимостей","time":"Время выполнения","tokens":"Токены","toolFailHint":"Приостанавливать цель, если N ходов подряд завершаются ошибками инструментов (0 — выкл)","toolFailLabel":"Лимит автопаузы при сбоях инструментов:","unavailable":"Настройки недоступны","upToDate":"Актуальная версия","updateAvailable":"доступно","updateBtn":"Обновить","updateDone":"Обновлено! Перезапустите DSH.","updateFailed":"Ошибка обновления","updating":"Обновление…","version":"Версия"}}
1
+ {"dsh-goal":{"artifactSaved":"✅ Артефакт сохранён (.dsh/goals/)","autoCheckpointLabel":"Создавать Git-чекпоинт при завершении этапа","autoDriveLabel":"Автопилот: непрерывное автономное выполнение цикла","budgetExceededBadge":"Лимит токенов исчерпан","budgetLabel":"Лимит токенов (0 — без ограничений):","budgetWarnLabel":"Порог предупреждения (%):","cardSubtitle":"Отслеживание целей с контрольными точками и подцелями","checkUpdate":"Проверить обновление","checking":"Проверка…","clearGoal":"Очистить цель","close":"Закрыть","closeBanner":"Закрыть баннер цели","compactDock":"Свернуть в компактную капсулу","copyGitDiff":"Нажмите, чтобы скопировать команду git diff","copyPRComment":"🐙 Скопировать для GitHub PR","copyReport":"📋 Скопировать отчёт в Markdown","details":"Развернуть детали цели","discard":"Сбросить изменения","done":"Выполнено","eta":"Оценка времени (ETA)","expandDock":"Развернуть панель цели","extendBudgetBtn":"+50k токенов и продолжить","goalCompleted":"Цель достигнута","goalLabel":"Текущая цель","iterations":"Итерации","loading":"Загрузка настроек…","localeCode":"ru","maxIterLabel":"Макс. итераций (лимит безопасности):","milestones":"План работы:","modalTitle":"План и статус цели","modalTitleCompleted":"Цель выполнена: план и результаты","noMilestones":"Агент формирует план работы…","notifLabel":"Нативные уведомления на рабочем столе браузера при завершении","nudgePlaceholder":"💡 Уточнить задачу или скорректировать агента…","nudgeSent":"✅ Уточнение отправлено!","overridden":"переопределено","pause":"Пауза","paused":"Приостановлено","pluginDesc":"Баннер цели над полем ввода, декомпозиция задач и автопилот","pluginTitle":"Автономный режим целей (Goal Mode)","prCommentCopied":"✅ Отчёт для PR скопирован!","progress":"Прогресс","quickLaunch":"Начать цель","quickLaunchDesc":"Сформулируйте задачу для автономной работы агента:","quickLaunchLabel":"Кнопка быстрого запуска цели над полем ввода","quickLaunchPlaceholder":"Например: Реализовать экспорт отчёта и покрыть юнит-тестами…","quickLaunchTitle":"Быстрый запуск цели","reportCopied":"✅ Скопировано!","resetField":"По умолчанию","resume":"Возобновить","rollbackBtn":"Откатить к чекпоинту","rollbackConfirm":"Откатить рабочую копию к этому чекпоинту?","rollbackSuccess":"Успешный откат к чекпоинту","save":"Сохранить","saveArtifact":"Сохранить артефакт выполнения","saveArtifactFailed":"Не удалось сохранить артефакт","saveFailed":"Не удалось сохранить — исправьте значения и повторите","saving":"Сохранение…","sendNudge":"Подрулить","soundLabel":"Звуковой сигнал при завершении цели","startGoal":"Запустить цель","templateCleanup":"🧹 Мёртвый код","templateDocs":"📚 Документация и контракт","templateFeature":"🚀 Новая функция","templateFix":"🐛 Исправление бага","templatePerf":"⚙️ Производительность","templateRefactor":"⚡ Рефакторинг (YAGNI)","templateReview":"🔍 Ревью кода","templateSecurity":"🛡️ Аудит безопасности","templateTests":"📝 Тесты и покрытие","templateUpgrade":"📦 Обновление зависимостей","time":"Время выполнения","tokens":"Токены","toolFailHint":"Приостанавливать цель, если N ходов подряд завершаются ошибками инструментов (0 — выкл)","toolFailLabel":"Лимит автопаузы при сбоях инструментов:","unavailable":"Настройки недоступны","upToDate":"Актуальная версия","updateAvailable":"доступно","updateBtn":"Обновить","updateDone":"Обновлено! Перезапустите DSH.","updateFailed":"Ошибка обновления","updating":"Обновление…","version":"Версия"}}
@@ -1 +1 @@
1
- {"dsh-model-sync":{"acknowledge":"Подтвердить","addAlias":"Сохранить алиас","aliasPlaceholder":"Алиас (например, gpt-4o-latest)","all":"Все провайдеры с API-ключами","allModels":"Все модели","apply":"Применить изменения","autoApplySchedule":"Автоматически применять изменения","batchTry":"Проверить выбранные модели","batchTryDeselectUnreachable":"Снять выбор с недоступных","batchTryResults":"Пакетная проверка: доступно %d из %d","batchTryRunning":"Проверка…","cacheHoursAgo":"кэш %d ч назад","cancel":"Отмена","capabilityCount":"показано","capabilityFilter":"Фильтр по возможностям","checkCredentials":"Проверить ключи","credentialReady":"настроен","credentials":"Диагностика ключей","deprecated":"deprecated","deprecatesIn":"Устареет через %d дн.","desc":"Обновление каталогов моделей провайдеров по API-ключам. По умолчанию включён безопасный предпросмотр (dry-run); применение изменений выполняется явно.","deselectAllFiltered":"Снять выбор с показанных","diffAdded":"добавлено","diffChanged":"изменена метаинформация","diffRemoved":"удалено","diffRenamed":"переименовано","dormant":"не настроен","dryRun":"Только предпросмотр (dry-run)","empty":"нет настроенных провайдеров","enableContextFilter":"Фильтровать по минимальному контексту","enableCostFilter":"Фильтровать по максимальной цене","exportConfig":"Экспорт настроек","exportImportTitle":"Резервное копирование и восстановление настроек","failure":"ошибка","filterCheap":"Экономные ≤ $1/1M","filterContext100k":"Контекст ≥ 100k","filterCostContext":"Ограничения по цене и контексту","health":"Проверить доступность","healthDormant":"не настроен","healthError":"недоступна","healthOk":"доступна","history":"История синхронизаций","historyRun":"Запуск","importConfig":"Импорт настроек","importError":"Ошибка импорта: %s","importPlaceholder":"Вставьте JSON-конфигурацию сюда…","importSuccess":"Конфигурация успешно импортирована","intervalMinutes":"Интервал (в минутах)","invalidPattern":"Некорректный regex-шаблон: %s","invertFiltered":"Инвертировать выбор","lastRun":"Последний запуск","loading":"Загрузка…","markRead":"Прочитано","maxPricePerMillion":"Макс. цена ($ / 1 млн токенов)","minContextTokens":"Мин. размер контекста (токенов)","missingCredential":"не настроен","modelAliases":"Алиасы моделей","nextRun":"следующий запуск","noAliases":"Алиасы моделей не заданы.","noCapabilities":"В этом каталоге нет метаданных о возможностях.","noHistory":"Истории синхронизаций нет.","noModels":"В текущем каталоге нет моделей.","noNotifications":"Новых уведомлений нет.","noProviders":"Провайдеры с API-ключами не найдены.","notifications":"Уведомления","ok":"готов","partial":"частичный успех","pickerNote":"Выбранные модели сразу станут доступны в переключателе моделей DSH.","policy":"Ручной отбор моделей","policyDeny":"Запрещённые возможности (через запятую)","policyExclude":"Правила исключения (по одному regex в строке)","policyInclude":"Правила включения (по одному regex в строке)","policyNote":"Шаблоны сопоставляются с ID, именем и тегами моделей. Нажмите «Применить изменения», чтобы обновить список в DSH.","policyRequire":"Обязательные возможности (через запятую)","previewAdded":"Добавлено","previewApply":"Применить изменения","previewChanged":"Изменено","previewDismiss":"Закрыть предпросмотр","previewNone":"Изменений не обнаружено.","previewRemoved":"Удалено","previewTitle":"Предпросмотр изменений","refresh":"Обновить статус","refreshAll":"Обновить всё","removeAlias":"Удалить алиас","removeMissing":"Подтвердить удаление устаревших","report":"Итог запуска","rollback":"Откатить каталог","rollbackConfirm":"Откатить каталог этого провайдера к выбранному снимку?","run":"Найти модели","running":"синхронизация…","savePolicy":"Сохранить политику","saveScheduler":"Сохранить расписание","saveSelection":"Сохранить и применить выбор","scheduleEnabled":"Включить фоновое расписание","scheduler":"Планировщик","schedulerOff":"выключен","schedulerOn":"включён","schedulerSaved":"Сохранено","schedulerSettings":"Настройка планировщика","scopeUnavailable":"Служба настроек недоступна.","searchPlaceholder":"Поиск по ID / имени / тегу","selectAllFiltered":"Выбрать все показанные","selectAtLeastOne":"Выберите хотя бы одну модель или используйте вариант «Все модели».","selectModels":"Выбор моделей","selected":"выбрано","showMore":"Показать ещё (%d)","showSettings":"Показать настройки","showingCount":"Показано %d из %d моделей","sortContext":"Контекст ↓","sortDate":"Новые ↓","sortName":"Имя А→Я","sortPrice":"Цена ↑","stale":"устарела","success":"успех","targetModel":"Целевая модель","targetProvider":"Провайдер","title":"Синхронизация моделей"}}
1
+ {"dsh-model-sync":{"acknowledge":"Подтвердить","addAlias":"Сохранить алиас","aliasPlaceholder":"Алиас (например, gpt-4o-latest)","all":"Все провайдеры с API-ключами","allModels":"Все модели","apply":"Применить изменения","autoApplySchedule":"Автоматически применять изменения","batchTry":"Проверить выбранные модели","batchTryDeselectUnreachable":"Снять выбор с недоступных","batchTryResults":"Пакетная проверка: доступно %d из %d","batchTryRunning":"Проверка…","cacheHoursAgo":"кэш %d ч назад","cancel":"Отмена","capabilityCount":"показано","capabilityFilter":"Фильтр по возможностям","checkCredentials":"Проверить ключи","checkForUpdates":"Проверить обновления","checkUpdateFailed":"Не удалось проверить обновления","checkingUpdates":"Проверка…","credentialReady":"настроен","credentials":"Диагностика ключей","deprecated":"deprecated","deprecatesIn":"Устареет через %d дн.","desc":"Обновление каталогов моделей провайдеров по API-ключам. По умолчанию включён безопасный предпросмотр (dry-run); применение изменений выполняется явно.","deselectAllFiltered":"Снять выбор с показанных","diffAdded":"добавлено","diffChanged":"изменена метаинформация","diffRemoved":"удалено","diffRenamed":"переименовано","dormant":"не настроен","dryRun":"Только предпросмотр (dry-run)","empty":"нет настроенных провайдеров","enableContextFilter":"Фильтровать по минимальному контексту","enableCostFilter":"Фильтровать по максимальной цене","exportConfig":"Экспорт настроек","exportImportTitle":"Резервное копирование и восстановление настроек","failure":"ошибка","filterCheap":"Экономные ≤ $1/1M","filterContext100k":"Контекст ≥ 100k","filterCostContext":"Ограничения по цене и контексту","health":"Проверить доступность","healthDormant":"не настроен","healthError":"недоступна","healthOk":"доступна","hideSettings":"Скрыть настройки","history":"История синхронизаций","historyRun":"Запуск","importConfig":"Импорт настроек","importError":"Ошибка импорта: %s","importPlaceholder":"Вставьте JSON-конфигурацию сюда…","importSuccess":"Конфигурация успешно импортирована","intervalMinutes":"Интервал (в минутах)","invalidPattern":"Некорректный regex-шаблон: %s","invertFiltered":"Инвертировать выбор","lastRun":"Последний запуск","loading":"Загрузка…","markRead":"Прочитано","maxPricePerMillion":"Макс. цена ($ / 1 млн токенов)","minContextTokens":"Мин. размер контекста (токенов)","missingCredential":"не настроен","modelAliases":"Алиасы моделей","nextRun":"следующий запуск","noAliases":"Алиасы моделей не заданы.","noCapabilities":"В этом каталоге нет метаданных о возможностях.","noHistory":"Истории синхронизаций нет.","noModels":"В текущем каталоге нет моделей.","noNotifications":"Новых уведомлений нет.","noProviders":"Провайдеры с API-ключами не найдены.","notifications":"Уведомления","ok":"готов","partial":"частичный успех","pickerNote":"Выбранные модели сразу станут доступны в переключателе моделей DSH.","policy":"Ручной отбор моделей","policyDeny":"Запрещённые возможности (через запятую)","policyExclude":"Правила исключения (по одному regex в строке)","policyInclude":"Правила включения (по одному regex в строке)","policyNote":"Шаблоны сопоставляются с ID, именем и тегами моделей. Нажмите «Применить изменения», чтобы обновить список в DSH.","policyRequire":"Обязательные возможности (через запятую)","previewAdded":"Добавлено","previewApply":"Применить изменения","previewChanged":"Изменено","previewDismiss":"Закрыть предпросмотр","previewNone":"Изменений не обнаружено.","previewRemoved":"Удалено","previewTitle":"Предпросмотр изменений","refresh":"Обновить статус","refreshAll":"Обновить всё","removeAlias":"Удалить алиас","removeMissing":"Подтвердить удаление устаревших","report":"Итог запуска","restartRequired":" (требуется перезапуск)","rollback":"Откатить каталог","rollbackConfirm":"Откатить каталог этого провайдера к выбранному снимку?","run":"Найти модели","running":"синхронизация…","savePolicy":"Сохранить политику","saveScheduler":"Сохранить расписание","saveSelection":"Сохранить и применить выбор","scheduleEnabled":"Включить фоновое расписание","scheduler":"Планировщик","schedulerOff":"выключен","schedulerOn":"включён","schedulerSaved":"Сохранено","schedulerSettings":"Настройка планировщика","scopeUnavailable":"Служба настроек недоступна.","searchPlaceholder":"Поиск по ID / имени / тегу","selectAllFiltered":"Выбрать все показанные","selectAtLeastOne":"Выберите хотя бы одну модель или используйте вариант «Все модели».","selectModels":"Выбор моделей","selected":"выбрано","showMore":"Показать ещё (%d)","showSettings":"Показать настройки","showingCount":"Показано %d из %d моделей","sortContext":"Контекст ↓","sortDate":"Новые ↓","sortName":"Имя А→Я","sortPrice":"Цена ↑","stale":"устарела","success":"успех","targetModel":"Целевая модель","targetProvider":"Провайдер","title":"Синхронизация моделей","updateSuccess":"Обновлено до "}}
@@ -1 +1 @@
1
- {"@goodandready/dsh-issue-reporter":{"aiOptimize":"Оптимизировать с AI","aiOptimizeError":"Не удалось выполнить AI-оптимизацию","aiOptimized":"Черновик дополнен рекомендациями AI.","aiOptimizing":"Оптимизация описания…","apiBaseUrl":"Базовый адрес GitHub API","appClientId":"ID клиента GitHub App","attachmentReadError":"Не удалось прочитать файл изображения.","attachmentTooLarge":"Файл превышает 8 МБ (общий лимит: 20 МБ).","attachmentTooMany":"Разрешено не более 5 скриншотов.","attachments":"Скриншоты и изображения","attachmentsHelp":"Прикрепите до 5 скриншотов PNG, JPG, GIF или WebP (макс. 8 МБ каждый, суммарно до 20 МБ). Загрузка происходит только после окончательного подтверждения.","auth":"Авторизация в GitHub","authFailed":"Сбой авторизации в GitHub","authHelp":"Войдите для поиска дубликатов и создания задач. Токен безопасно остаётся в хранилище DSH Credentials.","authRequired":"Подключите GitHub для поиска дубликатов и создания отчёта.","authUnavailable":"Вход через GitHub не настроен для данной установки DSH.","authorize":"Авторизовать GitHub","cancel":"Отмена","checkingUpdate":"Проверка обновлений…","close":"Закрыть","code":"Введите этот код на странице GitHub","connected":"GitHub подключён","copied":"Скопировано!","copyCode":"Скопировать код","create":"Создать задачу на GitHub","created":"Задача создана","description":"Преобразование проблемы плагина DSH в структурированный баг-репорт GitHub Issue.","disabled":"отключено","dropzonePrompt":"Перетащите скриншоты сюда, нажмите для выбора или вставьте из буфера через Ctrl+V","duplicates":"Возможные дубликаты","empty":"Установленные плагины не найдены.","enabled":"включено","environment":"Сведения об окружении (необязательно)","error":"Произошла ошибка","expected":"Ожидаемое поведение","failedBanner":"Плагин завершил работу с runtime-ошибкой.","fallback":"Открыть предзаполненную форму отчёта","fetchLogs":"Загрузить логи","includeClosed":"Искать дубликаты среди закрытых задач","insertLogs":"Вставить выбранные логи","labels":"Метки (Labels)","loading":"Загрузка…","loadingLogs":"Загрузка журнала сессии…","myReportsEmpty":"В этой сессии ещё не было отправлено ни одного репорта.","myReportsRefresh":"Обновить статус","nativePlugins":"Нативные плагины DSH","noDuplicates":"Похожих открытых проблем не найдено.","noLogsFound":"Недавних записей в журнале не обнаружено.","noNativePlugins":"Нативные плагины DSH не установлены.","noSearchResults":"Плагины по вашему запросу не найдены.","noThirdPartyPlugins":"Сторонние плагины DSH не установлены.","observed":"Что произошло?","openVerification":"Открыть страницу подтверждения GitHub","preview":"Сформировать безопасный предпросмотр","previewTab":"Предпросмотр","previewTitle":"Предпросмотр","quickReport":"Сообщить о сбое","recentLogs":"Журнал сессии","redactions":"Скрытые конфиденциальные данные","refresh":"Обновить список плагинов","refreshAllStatus":"Обновить всё","removeAttachment":"Удалить","report":"Сообщить об ошибке","reproduction":"Шаги для воспроизведения","review":"Я проверил безопасный предпросмотр отчёта.","save":"Сохранить настройки","saved":"Настройки сохранены","search":"Поиск по установленным плагинам…","signIn":"Войти через GitHub","signInAgain":"Сменить аккаунт","signOut":"Выйти из GitHub","signedOut":"Выход выполнен","statusClosed":"Закрыт (Closed)","statusOpen":"Открыт (Open)","suggestedLabels":"Рекомендуемые метки","sysInfo":"Диагностика системы","tabAuth":"Авторизация","tabCatalog":"Каталог плагинов","tabEditor":"Редактор отчёта","tabReports":"Мои репорты","thirdPartyPlugins":"Сторонние плагины DSH","title":"Отправка баг-репорта на GitHub","titleField":"Заголовок проблемы","tokenEnv":"Ссылка на учётные данные","unsupported":"Нет данных о публичном репозитории GitHub","upToDate":"Установлена актуальная версия","updateAvailable":"Доступно обновление","updateFailed":"Сбой обновления. См. логи сервера.","updatePlugin":"Обновить до","updateSuccess":"Плагин успешно обновлён! Перезапустите DSH для применения.","updating":"Обновление плагина…","waiting":"Ожидание авторизации…","writeTab":"Правка (Markdown)"},"dsh-issue-reporter":{"aiOptimize":"Оптимизировать с AI","aiOptimizeError":"Не удалось выполнить AI-оптимизацию","aiOptimized":"Черновик дополнен рекомендациями AI.","aiOptimizing":"Оптимизация описания…","apiBaseUrl":"Базовый адрес GitHub API","appClientId":"ID клиента GitHub App","attachmentReadError":"Не удалось прочитать файл изображения.","attachmentTooLarge":"Файл превышает 8 МБ (общий лимит: 20 МБ).","attachmentTooMany":"Разрешено не более 5 скриншотов.","attachments":"Скриншоты и изображения","attachmentsHelp":"Прикрепите до 5 скриншотов PNG, JPG, GIF или WebP (макс. 8 МБ каждый, суммарно до 20 МБ). Загрузка происходит только после окончательного подтверждения.","auth":"Авторизация в GitHub","authFailed":"Сбой авторизации в GitHub","authHelp":"Войдите для поиска дубликатов и создания задач. Токен безопасно остаётся в хранилище DSH Credentials.","authRequired":"Подключите GitHub для поиска дубликатов и создания отчёта.","authUnavailable":"Вход через GitHub не настроен для данной установки DSH.","authorize":"Авторизовать GitHub","cancel":"Отмена","checkingUpdate":"Проверка обновлений…","close":"Закрыть","code":"Введите этот код на странице GitHub","connected":"GitHub подключён","copied":"Скопировано!","copyCode":"Скопировать код","create":"Создать задачу на GitHub","created":"Задача создана","description":"Преобразование проблемы плагина DSH в структурированный баг-репорт GitHub Issue.","disabled":"отключено","dropzonePrompt":"Перетащите скриншоты сюда, нажмите для выбора или вставьте из буфера через Ctrl+V","duplicates":"Возможные дубликаты","empty":"Установленные плагины не найдены.","enabled":"включено","environment":"Сведения об окружении (необязательно)","error":"Произошла ошибка","expected":"Ожидаемое поведение","failedBanner":"Плагин завершил работу с runtime-ошибкой.","fallback":"Открыть предзаполненную форму отчёта","fetchLogs":"Загрузить логи","includeClosed":"Искать дубликаты среди закрытых задач","insertLogs":"Вставить выбранные логи","labels":"Метки (Labels)","loading":"Загрузка…","loadingLogs":"Загрузка журнала сессии…","myReportsEmpty":"В этой сессии ещё не было отправлено ни одного репорта.","myReportsRefresh":"Обновить статус","nativePlugins":"Нативные плагины DSH","noDuplicates":"Похожих открытых проблем не найдено.","noLogsFound":"Недавних записей в журнале не обнаружено.","noNativePlugins":"Нативные плагины DSH не установлены.","noSearchResults":"Плагины по вашему запросу не найдены.","noThirdPartyPlugins":"Сторонние плагины DSH не установлены.","observed":"Что произошло?","openVerification":"Открыть страницу подтверждения GitHub","preview":"Сформировать безопасный предпросмотр","previewTab":"Предпросмотр","previewTitle":"Предпросмотр","quickReport":"Сообщить о сбое","recentLogs":"Журнал сессии","redactions":"Скрытые конфиденциальные данные","refresh":"Обновить список плагинов","refreshAllStatus":"Обновить всё","removeAttachment":"Удалить","report":"Сообщить об ошибке","reproduction":"Шаги для воспроизведения","review":"Я проверил безопасный предпросмотр отчёта.","save":"Сохранить настройки","saved":"Настройки сохранены","search":"Поиск по установленным плагинам…","signIn":"Войти через GitHub","signInAgain":"Сменить аккаунт","signOut":"Выйти из GitHub","signedOut":"Выход выполнен","statusClosed":"Закрыт (Closed)","statusOpen":"Открыт (Open)","suggestedLabels":"Рекомендуемые метки","sysInfo":"Диагностика системы","tabAuth":"Авторизация","tabCatalog":"Каталог плагинов","tabEditor":"Редактор отчёта","tabReports":"Мои репорты","thirdPartyPlugins":"Сторонние плагины DSH","title":"Отправка баг-репорта на GitHub","titleField":"Заголовок проблемы","tokenEnv":"Ссылка на учётные данные","unsupported":"Нет данных о публичном репозитории GitHub","upToDate":"Установлена актуальная версия","updateAvailable":"Доступно обновление","updateFailed":"Сбой обновления. См. логи сервера.","updatePlugin":"Обновить до","updateSuccess":"Плагин успешно обновлён! Перезапустите DSH для применения.","updating":"Обновление плагина…","waiting":"Ожидание авторизации…","writeTab":"Правка (Markdown)"}}
1
+ {"@goodandready/dsh-issue-reporter":{"aiOptimize":"Оптимизировать с AI","aiOptimizeError":"Не удалось выполнить AI-оптимизацию","aiOptimized":"Черновик дополнен рекомендациями AI.","aiOptimizing":"Оптимизация описания…","apiBaseUrl":"Базовый адрес GitHub API","appClientId":"ID клиента GitHub App","attachmentReadError":"Не удалось прочитать файл изображения.","attachmentTooLarge":"Файл превышает 8 МБ (общий лимит: 20 МБ).","attachmentTooMany":"Разрешено не более 5 скриншотов.","attachments":"Скриншоты и изображения","attachmentsHelp":"Прикрепите до 5 скриншотов PNG, JPG, GIF или WebP (макс. 8 МБ каждый, суммарно до 20 МБ). Загрузка происходит только после окончательного подтверждения.","auth":"Авторизация в GitHub","authFailed":"Сбой авторизации в GitHub","authHelp":"Войдите для поиска дубликатов и создания задач. Токен безопасно остаётся в хранилище DSH Credentials.","authRequired":"Подключите GitHub для поиска дубликатов и создания отчёта.","authUnavailable":"Вход через GitHub не настроен для данной установки DSH.","authorize":"Авторизовать GitHub","cancel":"Отмена","checkingUpdate":"Проверка обновлений…","close":"Закрыть","code":"Введите этот код на странице GitHub","connected":"GitHub подключён","copied":"Скопировано!","copyCode":"Скопировать код","create":"Создать задачу на GitHub","created":"Задача создана","description":"Преобразование проблемы плагина DSH в структурированный баг-репорт GitHub Issue.","disabled":"отключено","dropzonePrompt":"Перетащите скриншоты сюда, нажмите для выбора или вставьте из буфера через Ctrl+V","duplicates":"Возможные дубликаты","empty":"Установленные плагины не найдены.","enabled":"включено","environment":"Сведения об окружении (необязательно)","error":"Произошла ошибка","expected":"Ожидаемое поведение","failedBanner":"Плагин завершил работу с runtime-ошибкой.","fallback":"Открыть предзаполненную форму отчёта","fetchLogs":"Загрузить логи","includeClosed":"Искать дубликаты среди закрытых задач","insertLogs":"Вставить выбранные логи","labels":"Метки (Labels)","loading":"Загрузка…","loadingLogs":"Загрузка журнала сессии…","myReportsEmpty":"В этой сессии ещё не было отправлено ни одного репорта.","myReportsRefresh":"Обновить статус","nativePlugins":"Нативные плагины DSH","noDuplicates":"Похожих открытых проблем не найдено.","noLogsFound":"Недавних записей в журнале не обнаружено.","noNativePlugins":"Нативные плагины DSH не установлены.","noSearchResults":"Плагины по вашему запросу не найдены.","noThirdPartyPlugins":"Сторонние плагины DSH не установлены.","observed":"Что произошло?","openVerification":"Открыть страницу подтверждения GitHub","preview":"Сформировать безопасный предпросмотр","previewTab":"Предпросмотр","previewTitle":"Предпросмотр","quickReport":"Сообщить о сбое","recentLogs":"Журнал сессии","redactions":"Скрытые конфиденциальные данные","refresh":"Обновить список плагинов","refreshAllStatus":"Обновить всё","removeAttachment":"Удалить","report":"Сообщить об ошибке","reproduction":"Шаги для воспроизведения","review":"Я проверил безопасный предпросмотр отчёта.","save":"Сохранить настройки","saved":"Настройки сохранены","search":"Поиск по установленным плагинам…","signIn":"Войти через GitHub","signInAgain":"Сменить аккаунт","signOut":"Выйти из GitHub","signedOut":"Выход выполнен","statusClosed":"Закрыт (Closed)","statusOpen":"Открыт (Open)","suggestedLabels":"Рекомендуемые метки","sysInfo":"Диагностика системы","tabAuth":"Авторизация","tabCatalog":"Каталог плагинов","tabEditor":"Редактор отчёта","tabReports":"Мои репорты","thirdPartyPlugins":"Сторонние плагины DSH","title":"Отправка баг-репорта на GitHub","titleField":"Заголовок проблемы","tokenEnv":"Ссылка на учётные данные","unsupported":"Нет данных о публичном репозитории GitHub","upToDate":"Установлена актуальная версия","updateAvailable":"Доступно обновление","updateFailed":"Сбой обновления. См. логи сервера.","updatePlugin":"Обновить до","updateSuccess":"Плагин успешно обновлён! Перезапустите DSH для применения.","updating":"Обновление плагина…","waiting":"Ожидание авторизации…","writeTab":"Правка (Markdown)"},"dsh-issue-reporter":{"aiOptimize":"Оптимизировать с AI","aiOptimizeError":"Не удалось выполнить AI-оптимизацию","aiOptimized":"Черновик дополнен рекомендациями AI.","aiOptimizing":"Оптимизация описания…","apiBaseUrl":"Базовый адрес GitHub API","appClientId":"ID клиента GitHub App","attachmentReadError":"Не удалось прочитать файл изображения.","attachmentTooLarge":"Файл превышает 8 МБ (общий лимит: 20 МБ).","attachmentTooMany":"Разрешено не более 5 скриншотов.","attachments":"Скриншоты и изображения","attachmentsHelp":"Прикрепите до 5 скриншотов PNG, JPG, GIF или WebP (макс. 8 МБ каждый, суммарно до 20 МБ). Загрузка происходит только после окончательного подтверждения.","auth":"Авторизация в GitHub","authFailed":"Сбой авторизации в GitHub","authHelp":"Войдите для поиска дубликатов и создания задач. Токен безопасно остаётся в хранилище DSH Credentials.","authRequired":"Подключите GitHub для поиска дубликатов и создания отчёта.","authUnavailable":"Вход через GitHub не настроен для данной установки DSH.","authorize":"Авторизовать GitHub","cancel":"Отмена","checkingUpdate":"Проверка обновлений…","close":"Закрыть","code":"Введите этот код на странице GitHub","connected":"GitHub подключён","copied":"Скопировано!","copyCode":"Скопировать код","copyCodeFailed":"Не удалось скопировать код верификации.","create":"Создать задачу на GitHub","created":"Задача создана","description":"Преобразование проблемы плагина DSH в структурированный баг-репорт GitHub Issue.","disabled":"отключено","dropzonePrompt":"Перетащите скриншоты сюда, нажмите для выбора или вставьте из буфера через Ctrl+V","duplicateLookupFailed":"Предпросмотр отчёта готов, но поиск дубликатов завершился сбоем.","duplicates":"Возможные дубликаты","empty":"Установленные плагины не найдены.","enabled":"включено","environment":"Сведения об окружении (необязательно)","error":"Произошла ошибка","expected":"Ожидаемое поведение","failedBanner":"Плагин завершил работу с runtime-ошибкой.","fallback":"Открыть предзаполненную форму отчёта","fetchLogs":"Загрузить логи","includeClosed":"Искать дубликаты среди закрытых задач","insertLogs":"Вставить выбранные логи","issueStatusFailed":"Не удалось обновить статус этой задачи.","labels":"Метки (Labels)","labelsUnavailable":"Рекомендуемые метки недоступны; вы всё равно можете составить отчёт.","loading":"Загрузка…","loadingLogs":"Загрузка журнала сессии…","logsUnavailable":"Логи сессии сейчас недоступны.","myReportsEmpty":"В этой сессии ещё не было отправлено ни одного репорта.","myReportsRefresh":"Обновить статус","nativePlugins":"Нативные плагины DSH","noDuplicates":"Похожих открытых проблем не найдено.","noLogsFound":"Недавних записей в журнале не обнаружено.","noNativePlugins":"Нативные плагины DSH не установлены.","noSearchResults":"Плагины по вашему запросу не найдены.","noThirdPartyPlugins":"Сторонние плагины DSH не установлены.","observed":"Что произошло?","openVerification":"Открыть страницу подтверждения GitHub","preview":"Сформировать безопасный предпросмотр","previewTab":"Предпросмотр","previewTitle":"Предпросмотр","quickReport":"Сообщить о сбое","recentLogs":"Журнал сессии","redactions":"Скрытые конфиденциальные данные","refresh":"Обновить список плагинов","refreshAllStatus":"Обновить всё","removeAttachment":"Удалить","report":"Сообщить об ошибке","reproduction":"Шаги для воспроизведения","review":"Я проверил безопасный предпросмотр отчёта.","save":"Сохранить настройки","saved":"Настройки сохранены","search":"Поиск по установленным плагинам…","signIn":"Войти через GitHub","signInAgain":"Сменить аккаунт","signOut":"Выйти из GitHub","signedOut":"Выход выполнен","statusClosed":"Закрыт (Closed)","statusOpen":"Открыт (Open)","statusesRefreshFailed":"Не удалось обновить статусы отчётов.","suggestedLabels":"Рекомендуемые метки","sysInfo":"Диагностика системы","tabAuth":"Авторизация","tabCatalog":"Каталог плагинов","tabEditor":"Редактор отчёта","tabReports":"Мои репорты","thirdPartyPlugins":"Сторонние плагины DSH","title":"Отправка баг-репорта на GitHub","titleField":"Заголовок проблемы","tokenEnv":"Ссылка на учётные данные","unsupported":"Нет данных о публичном репозитории GitHub","upToDate":"Установлена актуальная версия","updateAvailable":"Доступно обновление","updateCheckFailed":"Не удалось проверить обновления плагина.","updateFailed":"Сбой обновления. См. логи сервера.","updatePlugin":"Обновить до","updateSuccess":"Плагин успешно обновлён! Перезапустите DSH для применения.","updating":"Обновление плагина…","waiting":"Ожидание авторизации…","writeTab":"Правка (Markdown)"}}
@@ -1 +1 @@
1
- {"@goodandready/dsh-model-search":{"clear":"Очистить поиск","dms.clear":"Очистить поиск","dms.desc":"Поиск и быстрый выбор моделей для WebUI DeepSeek Harness","dms.empty":"Нет подходящих моделей","dms.placeholder":"Поиск модели или провайдера…","dms.recent":"Недавние","dms.title":"Поиск моделей","dms.updater.check":"Проверить обновления","dms.updater.checking":"Проверка…","dms.updater.current":"Текущая версия","dms.updater.failed":"Ошибка","dms.updater.restart_notice":"Обновление установлено. Перезапустите DSH для применения.","dms.updater.up_to_date":"Актуальная версия","dms.updater.update_available":"Доступна новая версия: v{version}","dms.updater.update_now":"Обновить сейчас","dms.updater.updating":"Обновление…","empty":"Модели не найдены","placeholder":"Поиск модели или провайдера…","recent":"Недавние"},"dsh-model-search":{"clear":"Очистить поиск","dms.clear":"Очистить поиск","dms.desc":"Поиск и быстрый выбор моделей для WebUI DeepSeek Harness","dms.empty":"Нет подходящих моделей","dms.placeholder":"Поиск модели или провайдера…","dms.recent":"Недавние","dms.title":"Поиск моделей","dms.updater.check":"Проверить обновления","dms.updater.checking":"Проверка…","dms.updater.current":"Текущая версия","dms.updater.failed":"Ошибка","dms.updater.restart_notice":"Обновление установлено. Перезапустите DSH для применения.","dms.updater.up_to_date":"Актуальная версия","dms.updater.update_available":"Доступна новая версия: v{version}","dms.updater.update_now":"Обновить сейчас","dms.updater.updating":"Обновление…","empty":"Модели не найдены","placeholder":"Поиск модели или провайдера…","recent":"Недавние"}}
1
+ {"@goodandready/dsh-model-search":{"clear":"Очистить поиск","dms.clear":"Очистить поиск","dms.desc":"Поиск и быстрый выбор моделей для WebUI DeepSeek Harness","dms.empty":"Нет подходящих моделей","dms.placeholder":"Поиск модели или провайдера…","dms.recent":"Недавние","dms.title":"Поиск моделей","dms.updater.check":"Проверить обновления","dms.updater.checking":"Проверка…","dms.updater.current":"Текущая версия","dms.updater.failed":"Ошибка","dms.updater.restart_notice":"Обновление установлено. Перезапустите DSH для применения.","dms.updater.up_to_date":"Актуальная версия","dms.updater.update_available":"Доступна новая версия: v{version}","dms.updater.update_now":"Обновить сейчас","dms.updater.updating":"Обновление…","empty":"Модели не найдены","placeholder":"Поиск модели или провайдера…","recent":"Недавние"},"dsh-model-search":{"clear":"Очистить поиск","desc":"Селектор моделей с поиском для WebUI DeepSeek Harness","dms.clear":"Очистить поиск","dms.desc":"Поиск и быстрый выбор моделей для WebUI DeepSeek Harness","dms.empty":"Нет подходящих моделей","dms.placeholder":"Поиск модели или провайдера…","dms.recent":"Недавние","dms.title":"Поиск моделей","dms.updater.check":"Проверить обновления","dms.updater.checking":"Проверка…","dms.updater.current":"Текущая версия","dms.updater.failed":"Ошибка","dms.updater.restart_notice":"Обновление установлено. Перезапустите DSH для применения.","dms.updater.up_to_date":"Актуальная версия","dms.updater.update_available":"Доступна новая версия: v{version}","dms.updater.update_now":"Обновить сейчас","dms.updater.updating":"Обновление…","empty":"Модели не найдены","placeholder":"Поиск модели или провайдера…","recent":"Недавние","title":"Поиск моделей","updater_check":"Проверить обновления","updater_checking":"Проверка…","updater_current":"Текущая версия","updater_failed":"Не удалось проверить или установить обновление","updater_restart_notice":"Обновление установлено. Перезапустите DSH для применения.","updater_up_to_date":"Актуальная версия","updater_update_available":"Доступен новый релиз: v{version}","updater_update_now":"Обновить сейчас","updater_updating":"Обновление…"}}
@@ -1 +1 @@
1
- {"@goodandready/dsh-agent-orchestrator":{"btnCancel":"Отмена","btnDelegate":"Делегировать субагенту","btnDispatching":"Отправка…","btnStartPipeline":"Запустить пайплайн","description":"Декомпозиция и выполнение задач специализированными автономными агентами с оптимизацией кэширования промптов.","launchTitle":"🚀 Запуск мультиагентного оркестратора","roleInstructionsLabel":"Инструкции для субагента","roleInstructionsPlaceholder":"Конкретные инструкции, вопросы или требования для данного специалиста…","roleLabel":"Роль целевого специалиста","role_architecture":"Системный архитектор (DESIGN.md / ADR)","role_backend":"Ведущий backend-разработчик","role_bugfix":"Инженер хотфиксов и диагностики","role_devops":"DevOps и инфраструктурный специалист","role_docs":"Технический писатель / Документация","role_frontend":"Ведущий frontend-разработчик","role_qa_tests":"Инженер автоматизации тестирования","role_refactoring":"Специалист по рефакторингу и сложности","role_research":"Исследователь R&D и прототипирования","role_spec":"Аналитик технических спецификаций","role_ui_design":"UI/UX дизайнер интерфейсов","scenarioAuto":"Авто (определить по сложности задачи)","scenarioComplex":"Сложный (6 этапов: полный инженерный цикл)","scenarioEnterprise":"Enterprise (7 этапов: R&D исследование -> Фулстек -> Гейт приёмки)","scenarioHotfix":"Хотфикс (1 этап: анализ и точечный фикс)","scenarioLabel":"Топологический сценарий","scenarioMedium":"Средний (4 этапа: ТЗ -> Дизайн -> Код -> Тестирование)","scenarioSimple":"Простой (2 этапа: ТЗ + реализация)","scopeLabel":"Объём и требования","scopePlaceholder":"Детальная функциональная спецификация, критерии приёмки, ограничения…","subtitle":"Автономный рабочий процесс на базе DAG с оптимизацией кэширования промптов","tabPipeline":"Полный DAG-пайплайн","tabSpecialist":"Прямой субагент-специалист","title":"Мульти-агентный оркестратор","titleLabel":"Название задачи","titlePlaceholder":"Например: Реализовать карточку настроек профиля с токенами темы"},"dsh-agent-orchestrator":{"btnCancel":"Отмена","btnDelegate":"Делегировать субагенту","btnDispatching":"Отправка…","btnStartPipeline":"Запустить пайплайн","description":"Декомпозиция и выполнение задач специализированными автономными агентами с оптимизацией кэширования промптов.","launchTitle":"🚀 Запуск мультиагентного оркестратора","roleInstructionsLabel":"Инструкции для субагента","roleInstructionsPlaceholder":"Конкретные инструкции, вопросы или требования для данного специалиста…","roleLabel":"Роль целевого специалиста","role_architecture":"Системный архитектор (DESIGN.md / ADR)","role_backend":"Ведущий backend-разработчик","role_bugfix":"Инженер хотфиксов и диагностики","role_devops":"DevOps и инфраструктурный специалист","role_docs":"Технический писатель / Документация","role_frontend":"Ведущий frontend-разработчик","role_qa_tests":"Инженер автоматизации тестирования","role_refactoring":"Специалист по рефакторингу и сложности","role_research":"Исследователь R&D и прототипирования","role_spec":"Аналитик технических спецификаций","role_ui_design":"UI/UX дизайнер интерфейсов","scenarioAuto":"Авто (определить по сложности задачи)","scenarioComplex":"Сложный (6 этапов: полный инженерный цикл)","scenarioEnterprise":"Enterprise (7 этапов: R&D исследование -> Фулстек -> Гейт приёмки)","scenarioHotfix":"Хотфикс (1 этап: анализ и точечный фикс)","scenarioLabel":"Топологический сценарий","scenarioMedium":"Средний (4 этапа: ТЗ -> Дизайн -> Код -> Тестирование)","scenarioSimple":"Простой (2 этапа: ТЗ + реализация)","scopeLabel":"Объём и требования","scopePlaceholder":"Детальная функциональная спецификация, критерии приёмки, ограничения…","subtitle":"Автономный рабочий процесс на базе DAG с оптимизацией кэширования промптов","tabPipeline":"Полный DAG-пайплайн","tabSpecialist":"Прямой субагент-специалист","title":"Мульти-агентный оркестратор","titleLabel":"Название задачи","titlePlaceholder":"Например: Реализовать карточку настроек профиля с токенами темы"}}
1
+ {"@goodandready/dsh-agent-orchestrator":{"btnCancel":"Отмена","btnDelegate":"Делегировать субагенту","btnDispatching":"Отправка…","btnStartPipeline":"Запустить пайплайн","description":"Декомпозиция и выполнение задач специализированными автономными агентами с оптимизацией кэширования промптов.","launchTitle":"🚀 Запуск мультиагентного оркестратора","roleInstructionsLabel":"Инструкции для субагента","roleInstructionsPlaceholder":"Конкретные инструкции, вопросы или требования для данного специалиста…","roleLabel":"Роль целевого специалиста","role_architecture":"Системный архитектор (DESIGN.md / ADR)","role_backend":"Ведущий backend-разработчик","role_bugfix":"Инженер хотфиксов и диагностики","role_devops":"DevOps и инфраструктурный специалист","role_docs":"Технический писатель / Документация","role_frontend":"Ведущий frontend-разработчик","role_qa_tests":"Инженер автоматизации тестирования","role_refactoring":"Специалист по рефакторингу и сложности","role_research":"Исследователь R&D и прототипирования","role_spec":"Аналитик технических спецификаций","role_ui_design":"UI/UX дизайнер интерфейсов","scenarioAuto":"Авто (определить по сложности задачи)","scenarioComplex":"Сложный (6 этапов: полный инженерный цикл)","scenarioEnterprise":"Enterprise (7 этапов: R&D исследование -> Фулстек -> Гейт приёмки)","scenarioHotfix":"Хотфикс (1 этап: анализ и точечный фикс)","scenarioLabel":"Топологический сценарий","scenarioMedium":"Средний (4 этапа: ТЗ -> Дизайн -> Код -> Тестирование)","scenarioSimple":"Простой (2 этапа: ТЗ + реализация)","scopeLabel":"Объём и требования","scopePlaceholder":"Детальная функциональная спецификация, критерии приёмки, ограничения…","subtitle":"Автономный рабочий процесс на базе DAG с оптимизацией кэширования промптов","tabPipeline":"Полный DAG-пайплайн","tabSpecialist":"Прямой субагент-специалист","title":"Мульти-агентный оркестратор","titleLabel":"Название задачи","titlePlaceholder":"Например: Реализовать карточку настроек профиля с токенами темы"},"dsh-agent-orchestrator":{"badge.accepted":"🟢 Результат субагента принят оркестратором","btnCancel":"Отмена","btnDelegate":"Делегировать субагенту","btnDispatching":"Отправка…","btnStartPipeline":"Запустить пайплайн","description":"Декомпозиция и выполнение задач специализированными автономными агентами с оптимизацией кэширования промптов.","launchTitle":"🚀 Запуск мультиагентного оркестратора","roleInstructionsLabel":"Инструкции для субагента","roleInstructionsPlaceholder":"Конкретные инструкции, вопросы или требования для данного специалиста…","roleLabel":"Роль целевого специалиста","role_architecture":"Системный архитектор (DESIGN.md / ADR)","role_backend":"Ведущий backend-разработчик","role_bugfix":"Инженер хотфиксов и диагностики","role_devops":"DevOps и инфраструктурный специалист","role_docs":"Технический писатель / Документация","role_frontend":"Ведущий frontend-разработчик","role_qa_tests":"Инженер автоматизации тестирования","role_refactoring":"Специалист по рефакторингу и сложности","role_research":"Исследователь R&D и прототипирования","role_spec":"Аналитик технических спецификаций","role_ui_design":"UI/UX дизайнер интерфейсов","scenarioAuto":"Авто (определить по сложности задачи)","scenarioComplex":"Сложный (6 этапов: полный инженерный цикл)","scenarioEnterprise":"Enterprise (7 этапов: R&D исследование -> Фулстек -> Гейт приёмки)","scenarioHotfix":"Хотфикс (1 этап: анализ и точечный фикс)","scenarioLabel":"Топологический сценарий","scenarioMedium":"Средний (4 этапа: ТЗ -> Дизайн -> Код -> Тестирование)","scenarioSimple":"Простой (2 этапа: ТЗ + реализация)","scopeLabel":"Объём и требования","scopePlaceholder":"Детальная функциональная спецификация, критерии приёмки, ограничения…","subtitle":"Автономный рабочий процесс на базе DAG с оптимизацией кэширования промптов","tabPipeline":"Полный DAG-пайплайн","tabSpecialist":"Прямой субагент-специалист","title":"Мульти-агентный оркестратор","titleLabel":"Название задачи","titlePlaceholder":"Например: Реализовать карточку настроек профиля с токенами темы"}}
@@ -1 +1 @@
1
- {"dsh-subscriptions":{"accountLabel":"Аккаунт","accountStatusActive":"Активен","accountStatusExpired":"Истёк срок действия","accountStatusQuarantined":"На карантине (ошибки авторизации)","accountStatusRateLimited":"Лимит запросов исчерпан","activeSubscriptions":"Активные подписки","addAccount":"Добавить аккаунт","advancedSettings":"Расширенные настройки и мониторинг","autoLoopback":"Автоматический перехват токена (Loopback)","autoLoopbackHint":"Слушать локальный порт обратного вызова для автоматического получения токенов OAuth без ручного копирования.","callbackPort":"Порт обратного вызова OAuth","cardIntro":"Подписки, ротация и ограничения аккаунтов.","check":"Проверить","checking":"Проверка…","chipActive":"Подписки","close":"Закрыть","closeModal":"Закрыть","codexFastMode":"Быстрый режим Codex (1.5x)","codexFastModeHint":"Включить режим повышенной пропускной способности для моделей OpenAI Codex, если поддерживается подпиской.","codexVerbosity":"Codex streaming verbosity","codexVerbosityDefault":"Default","codexVerbosityHigh":"High","codexVerbosityHint":"Control streaming chunking detail level from the Codex provider.","codexVerbosityLow":"Low","codexVerbosityMedium":"Medium","composerQuota":"Composer quota indicator","composerQuotaBar":"Progress Bar","composerQuotaForecast":"Remaining Forecast","composerQuotaHint":"Display subscription usage indicator directly in the composer toolbar.","composerQuotaOff":"Disabled","composerQuotaPercent":"Percentage","connect":"Подключить","connected":"Подключено","cooldownMin":"Время паузы при ошибках (мин)","cooldownMs":"Failure cooldown (minutes)","cooldownMsHint":"How long to pause a failing or rate-limited account before retrying.","coolingDown":"Охлаждение","deleteAccount":"Удалить аккаунт","deleteConfirm":"Вы уверены, что хотите удалить подписку «{name}»?","deviceAuthorized":"Signed in","deviceCopy":"Copy code","deviceExpired":"Expired - start again","deviceHint":"Headless: open the link, enter the code, keep this tab open.","deviceLogin":"Device login","devicePending":"Waiting for confirmation","diagCopy":"Copy report","diagGenerate":"Generate diagnostics report","diagHint":"The report has no tokens, emails, proxy addresses or personal data.","diagIssues":"Open issue tracker","disableAccount":"Отключить","disconnect":"Отключить","enableAccount":"Включить","expiryLabel":"expires","expiryNotifyDays":"Expiry warning threshold (days)","expiryNotifyDaysHint":"Notify when subscription renewal or token expiration is within this many days (0 to disable).","fcCalibrating":"calibrating…","fcHours":"h","fcIdle":"no usage","fcMinutes":"m","forecast":"≈","groupAuth":"Авторизация и перенаправление","groupFallback":"Локальный фолбэк","groupPrivacy":"Приватность и список моделей","groupProvider":"Поведение провайдеров","groupRotation":"Ротация и лимиты","headerDesc":"Использование подписок ChatGPT, Claude, Grok, Kimi, Cursor и др. в качестве LLM-провайдеров через OAuth.","headerTitle":"Управление подписками","hide":"Скрыть","hideDeprecated":"Hide deprecated models","hideDeprecatedHint":"Hide older or superseded model variants from model dropdowns.","hostOffline":"Host unreachable","hostOnline":"Host online","howToGetToken":"❓ Instructions","howToGetTokenTitle":"How to get token / API key for this provider","hudHint":"drag · edge docks · click refresh","hudTitle":"Subscription balance","importLocalCli":"📥 From CLI","importLocalCliTitle":"Auto-import token from locally installed CLI on server","importLocalSuccess":"Successfully imported token from local CLI!","importToken":"Save token","importTokenPlace":"Paste token or API key","importTokens":"Импортировать токены","importTokensHint":"Вставьте JSON с сохранёнными токенами для быстрого восстановления доступа.","instructionsTitle":"How to obtain token","intro":"Войдите с помощью потребительской подписки. Токены остаются в хранилище учетных данных хоста. Браузер никогда не читает их обратно. После подключения, если провайдер перенаправляет на localhost или страницу провайдера, вставьте перенаправленный URL или код сюда.","loading":"Загрузка…","localFallbackEnabled":"Переключаться на локальные модели при отказе","localFallbackHint":"Автоматически направлять запросы на локальный Ollama или vLLM при недоступности всех подписок.","localFallbackProvider":"Локальный провайдер","login":"Войти через браузер","loginFailed":"Не удалось авторизоваться: {error}","loginSuccess":"Авторизация прошла успешно!","manualTitle":"If the browser did not come back","maskEmails":"Маскировать email в интерфейсе","modelsCatalogDesc":"Available model catalog across active subscriptions in DeepSeek Harness.","modelsCatalogTitle":"Curated Subscription Models","noAccounts":"Нет подключённых аккаунтов подписок.","none":"none","notConnected":"Не подключено","notifyLimits":"Notify on rate limits","notifyLimitsHint":"Show notification alerts when account usage reaches quota ceiling.","oauthRedirectUrl":"URL перенаправления OAuth","ollamaBaseUrl":"Ollama Base URL","ollamaFallback":"Ollama local fallback","ollamaFallbackHint":"Automatically route queries to a local Ollama instance when cloud quota is exhausted.","ollamaFallbackModel":"Ollama Fallback Model","pastePlaceholder":"Вставьте перенаправленный URL или код","plan":"План","privacyMask":"Маскировать email и идентификаторы аккаунтов","privacyMaskHint":"Для демонстраций и демонстрации экрана: скрывает адреса вида j***n@example.com.","probeIntervalMin":"Health probe interval (minutes)","probeIntervalMinHint":"Interval for background checks to refresh account status and quota balance.","providerClaude":"Claude Pro / Team","providerCodex":"ChatGPT Plus / Team (Codex)","providerCursor":"Cursor Pro","providerGrok":"xAI Grok Premium","providerKimi":"Kimi Moonshot","proxyCheck":"Check proxy","proxyFail":"proxy fail","proxyOk":"proxy ok","proxyPlaceholder":"Per-account proxy (http://, https://, socks5://) - optional","quarantineHours":"Период карантина (часов)","quarantineHoursHint":"Время ожидания перед повторной попыткой использовать аккаунт после критической ошибки 401/403.","reconnect":"Переподключиться","reconnectRequired":"Reconnect required","refreshQuota":"Обновить квоту","refreshing":"Обновление квоты…","remainingQuota":"Остаток квоты: {percent}%","removeSlot":"Удалить слот","resetAck":"I understand one attempt will be consumed","resetAvailable":"Reset attempts available","resetBusy":"resetting…","resetCooldowns":"Сбросить паузы ожидания","resetCredits":"Reset credits","resetCreditsAction":"Reset ChatGPT Limit","resetCreditsHint":"ChatGPT reset cards: emergency reset for the 5-hour window. Requires a 5s confirmation.","resetDone":"quota reset","resetExpires":"earliest expires","resetGo":"Reset now","resetLabel":"reset","resetNoCredit":"no usable credit (not consumed)","resetNothing":"server says nothing needs a reset (no attempt consumed)","resetReady":"ready","resetRedeemed":"already redeemed earlier","resetWait":"confirm enabled in","rotationStrategy":"Стратегия ротации аккаунтов","rotationStrategyHint":"Round-robin (по очереди), Least-used (наименее используемый) или Priority (по приоритету).","runSmoke":"⚡ Run Smoke Test (Ping)","save":"Сохранить","saved":"Настройки сохранены","saving":"Сохранение…","settingsLoading":"Loading settings…","settingsRetry":"Retry","settingsUnavailable":"Settings are unavailable","show":"Показать","slashLogin":"Login to a subscription provider","slashLogout":"Log out a subscription provider","slashStatus":"Subscription status","slotDetailsTitle":"Slot Details","smokeDesc":"Test live upstream connectivity and measure round-trip latency to the subscription provider.","smokeFail":"Smoke test failed","smokeOk":"Smoke test passed","smokeTesting":"Pinging…","smokeTitle":"Connection Smoke Test (Ping)","statsLastActivity":"Last Activity","statsLatency":"Avg Response Latency","statsRequests":"Successful / Total Requests","statsSuccessRate":"Session Success Rate","statsTitle":"Session Telemetry","storedAs":"Хранится как","submitCode":"Отправить код","subsActiveHero":"Active Subscription","subsCooldown":"cooldown","subsFastMode":"Fast Mode 1.5x","subsFree":"free","subsHealthy":"Healthy","subsLogged":"connected","subsModalClose":"Close","subsModalTitle":"Subscription Hub","subsNotLogged":"not connected","subsOpenSettings":"All Settings →","subsPill":"SUBS","subsPoolTitle":"Provider Accounts","subsRefresh":"Refresh","subsUsed":"used","switchAccount":"Сменить аккаунт","switchLabel":"Provider","title":"Подписки","tokenExpired":"Токен истёк. Требуется повторная авторизация.","updateAvailable":"Доступно обновление","updateChecking":"Проверка обновлений…","updateFailed":"Ошибка обновления","updateNow":"Обновить","updateSuccessRestart":"Обновление завершено. Перезапуск службы…","updateUpToDate":"Актуальная версия","updating":"Обновление…","usageFull":"Использование 100%","usageLimitsTitle":"Usage Limits","useOrigin":"Используйте этот источник Web UI как redirect_uri для OAuth","useOriginHint":"Не включайте, если вы не зарегистрировали собственный OAuth-клиент для этого источника. CLI-клиенты провайдеров обычно требуют опубликованный URI перенаправления и шаг вставки.","verifyAccount":"Подтвердить аккаунт","verifyLink":"Откройте ссылку для подтверждения","verifyPrefix":"Google требует одноразовой проверки аккаунта.","verifySuffix":"затем переподключитесь.","viewQuotaDetails":"Подробности квоты","windowPrimary":"Primary window","windowSecondary":"Secondary window"}}
1
+ {"dsh-subscriptions":{"accountLabel":"Аккаунт","accountStatusActive":"Активен","accountStatusExpired":"Истёк срок действия","accountStatusQuarantined":"На карантине (ошибки авторизации)","accountStatusRateLimited":"Лимит запросов исчерпан","activeSubscriptions":"Активные подписки","addAccount":"Добавить аккаунт","advancedSettings":"Расширенные настройки и мониторинг","autoLoopback":"Автоматический перехват токена (Loopback)","autoLoopbackHint":"Слушать локальный порт обратного вызова для автоматического получения токенов OAuth без ручного копирования.","callbackPort":"Порт обратного вызова OAuth","cardIntro":"Аккаунты подписок, ротация и лимиты.","check":"Проверить","checking":"Проверка…","chipActive":"Подписки","close":"Закрыть","closeModal":"Закрыть","codexFastMode":"Быстрый режим Codex (1.5x)","codexFastModeHint":"Включить режим повышенной пропускной способности для моделей OpenAI Codex, если поддерживается подпиской.","codexVerbosity":"Codex streaming verbosity","codexVerbosityDefault":"Default","codexVerbosityHigh":"High","codexVerbosityHint":"Control streaming chunking detail level from the Codex provider.","codexVerbosityLow":"Low","codexVerbosityMedium":"Medium","composerQuota":"Composer quota indicator","composerQuotaBar":"Progress Bar","composerQuotaForecast":"Remaining Forecast","composerQuotaHint":"Display subscription usage indicator directly in the composer toolbar.","composerQuotaOff":"Disabled","composerQuotaPercent":"Percentage","connect":"Подключить","connected":"Подключено","cooldownMin":"Время паузы при ошибках (мин)","cooldownMs":"Failure cooldown (minutes)","cooldownMsHint":"How long to pause a failing or rate-limited account before retrying.","coolingDown":"Остывание (cooldown)","deleteAccount":"Удалить аккаунт","deleteConfirm":"Вы уверены, что хотите удалить подписку «{name}»?","deviceAuthorized":"Signed in","deviceCopy":"Copy code","deviceExpired":"Expired - start again","deviceHint":"Headless: open the link, enter the code, keep this tab open.","deviceLogin":"Device login","devicePending":"Waiting for confirmation","diagCopy":"Copy report","diagGenerate":"Generate diagnostics report","diagHint":"The report has no tokens, emails, proxy addresses or personal data.","diagIssues":"Open issue tracker","disableAccount":"Отключить","disconnect":"Отключить","enableAccount":"Включить","expiryLabel":"expires","expiryNotifyDays":"Expiry warning threshold (days)","expiryNotifyDaysHint":"Notify when subscription renewal or token expiration is within this many days (0 to disable).","fcCalibrating":"calibrating…","fcHours":"h","fcIdle":"no usage","fcMinutes":"m","forecast":"≈","groupAuth":"Авторизация и перенаправление","groupFallback":"Локальный фолбэк","groupPrivacy":"Приватность и список моделей","groupProvider":"Поведение провайдеров","groupRotation":"Ротация и лимиты","headerDesc":"Использование подписок ChatGPT, Claude, Grok, Kimi, Cursor и др. в качестве LLM-провайдеров через OAuth.","headerTitle":"Управление подписками","hide":"Скрыть","hideDeprecated":"Hide deprecated models","hideDeprecatedHint":"Hide older or superseded model variants from model dropdowns.","hostOffline":"Host unreachable","hostOnline":"Host online","howToGetToken":"❓ Instructions","howToGetTokenTitle":"How to get token / API key for this provider","hudHint":"drag · edge docks · click refresh","hudTitle":"Subscription balance","importLocalCli":"📥 From CLI","importLocalCliTitle":"Auto-import token from locally installed CLI on server","importLocalSuccess":"Successfully imported token from local CLI!","importToken":"Save token","importTokenPlace":"Paste token or API key","importTokens":"Импортировать токены","importTokensHint":"Вставьте JSON с сохранёнными токенами для быстрого восстановления доступа.","instructionsTitle":"How to obtain token","intro":"Войдите через пользовательскую подписку. Токены хранятся в защищённом хранилище хоста и не передаются в браузер. После нажатия «Подключить», если провайдер перенаправляет на localhost или страницу сервиса, вставьте перенаправленный URL или полученный код сюда.","loading":"Загрузка…","localFallbackEnabled":"Переключаться на локальные модели при отказе","localFallbackHint":"Автоматически направлять запросы на локальный Ollama или vLLM при недоступности всех подписок.","localFallbackProvider":"Локальный провайдер","login":"Войти через браузер","loginFailed":"Не удалось авторизоваться: {error}","loginSuccess":"Авторизация прошла успешно!","manualTitle":"If the browser did not come back","maskEmails":"Маскировать email в интерфейсе","missingClientIdAntigravity":"Для Google OAuth требуется собственный Client ID. Укажите antigravityClientId в настройках плагина ниже или нажмите «📥 Из CLI» для импорта активных учётных данных.","modelsCatalogDesc":"Available model catalog across active subscriptions in DeepSeek Harness.","modelsCatalogTitle":"Curated Subscription Models","noAccounts":"Нет подключённых аккаунтов подписок.","none":"none","notConnected":"Не подключено","notifyLimits":"Notify on rate limits","notifyLimitsHint":"Show notification alerts when account usage reaches quota ceiling.","oauthRedirectUrl":"URL перенаправления OAuth","ollamaBaseUrl":"Ollama Base URL","ollamaFallback":"Ollama local fallback","ollamaFallbackHint":"Automatically route queries to a local Ollama instance when cloud quota is exhausted.","ollamaFallbackModel":"Ollama Fallback Model","pastePlaceholder":"Вставьте URL перенаправления или код авторизации","plan":"Тариф / План","privacyMask":"Маскировать email и идентификаторы аккаунтов","privacyMaskHint":"Для демонстраций и демонстрации экрана: скрывает адреса вида j***n@example.com.","probeIntervalMin":"Health probe interval (minutes)","probeIntervalMinHint":"Interval for background checks to refresh account status and quota balance.","providerClaude":"Claude Pro / Team","providerCodex":"ChatGPT Plus / Team (Codex)","providerCursor":"Cursor Pro","providerGrok":"xAI Grok Premium","providerKimi":"Kimi Moonshot","proxyCheck":"Check proxy","proxyFail":"proxy fail","proxyOk":"proxy ok","proxyPlaceholder":"Per-account proxy (http://, https://, socks5://) - optional","quarantineHours":"Период карантина (часов)","quarantineHoursHint":"Время ожидания перед повторной попыткой использовать аккаунт после критической ошибки 401/403.","reconnect":"Переподключить","reconnectRequired":"Reconnect required","refreshQuota":"Обновить квоту","refreshing":"Обновление квоты…","remainingQuota":"Остаток квоты: {percent}%","removeSlot":"Удалить слот","resetAck":"I understand one attempt will be consumed","resetAvailable":"Reset attempts available","resetBusy":"resetting…","resetCooldowns":"Сбросить паузы ожидания","resetCredits":"Reset credits","resetCreditsAction":"Reset ChatGPT Limit","resetCreditsHint":"ChatGPT reset cards: emergency reset for the 5-hour window. Requires a 5s confirmation.","resetDone":"quota reset","resetExpires":"earliest expires","resetGo":"Reset now","resetLabel":"reset","resetNoCredit":"no usable credit (not consumed)","resetNothing":"server says nothing needs a reset (no attempt consumed)","resetReady":"ready","resetRedeemed":"already redeemed earlier","resetWait":"confirm enabled in","rotationStrategy":"Стратегия ротации аккаунтов","rotationStrategyHint":"Round-robin (по очереди), Least-used (наименее используемый) или Priority (по приоритету).","runSmoke":"⚡ Run Smoke Test (Ping)","save":"Сохранить","saved":"Настройки сохранены","saving":"Сохранение…","settingsLoading":"Loading settings…","settingsRetry":"Retry","settingsUnavailable":"Settings are unavailable","show":"Показать","slashLogin":"Login to a subscription provider","slashLogout":"Log out a subscription provider","slashStatus":"Subscription status","slotDetailsTitle":"Slot Details","smokeDesc":"Test live upstream connectivity and measure round-trip latency to the subscription provider.","smokeFail":"Smoke test failed","smokeOk":"Smoke test passed","smokeTesting":"Pinging…","smokeTitle":"Connection Smoke Test (Ping)","statsLastActivity":"Last Activity","statsLatency":"Avg Response Latency","statsRequests":"Successful / Total Requests","statsSuccessRate":"Session Success Rate","statsTitle":"Session Telemetry","storedAs":"Сохранено как","submitCode":"Отправить код","subsActiveHero":"Active Subscription","subsCooldown":"cooldown","subsFastMode":"Fast Mode 1.5x","subsFree":"free","subsHealthy":"Healthy","subsLogged":"connected","subsModalClose":"Close","subsModalTitle":"Subscription Hub","subsNotLogged":"not connected","subsOpenSettings":"All Settings →","subsPill":"SUBS","subsPoolTitle":"Provider Accounts","subsRefresh":"Refresh","subsUsed":"used","switchAccount":"Сменить аккаунт","switchLabel":"Provider","title":"Подписки","tokenExpired":"Токен истёк. Требуется повторная авторизация.","updateAvailable":"Доступно обновление","updateChecking":"Проверка обновлений…","updateFailed":"Ошибка обновления","updateNow":"Обновить","updateSuccessRestart":"Обновление завершено. Перезапуск службы…","updateUpToDate":"Актуальная версия","updating":"Обновление…","usageFull":"Лимит исчерпан (100%)","usageLimitsTitle":"Usage Limits","useOrigin":"Использовать адрес этого Web UI как OAuth redirect_uri","useOriginHint":"Оставьте выключенным, если вы не регистрировали отдельный OAuth-клиент для этого адреса. Официальным CLI-клиентам обычно требуется стандартный redirect URI с последующей вставкой кода.","verifyAccount":"Подтвердить аккаунт","verifyLink":"Открыть ссылку для подтверждения","verifyPrefix":"Google требует однократного подтверждения аккаунта. ","verifySuffix":" затем выполните повторное подключение.","viewQuotaDetails":"Подробности квоты","windowPrimary":"Primary window","windowSecondary":"Secondary window"}}