mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-18 12:52:25 +03:00
sync-ui-keys --catalog=cli + blocking i18n:check-keys:cli gate; 65 CLI catalogs synced (52,000 strings, 0 __MISSING__, all 830 keys, placeholders verified). ⚠️ base-red inherited: #12732
1341 lines
80 KiB
JSON
1341 lines
80 KiB
JSON
{
|
||
"common": {
|
||
"error": "Ошибка: {message}",
|
||
"serverOffline": "Сервер OmniRoute отключён. Запустите: omniroute serve",
|
||
"authRequired": "Требуется аутентификация. Установите OMNIROUTE_API_KEY или выполните: omniroute setup",
|
||
"rateLimited": "Превышен лимит запросов. Повторите через {seconds}с.",
|
||
"timeout": "Запрос истёк через {ms}мс.",
|
||
"success": "Готово.",
|
||
"yes": "да",
|
||
"no": "нет",
|
||
"confirm": "Вы уверены? (да/нет)",
|
||
"dryRun": "[симуляция] выполнит: {action}",
|
||
"cancelled": "Отменено.",
|
||
"jsonOpt": "Вывод в формате JSON",
|
||
"yesOpt": "Пропустить подтверждение"
|
||
},
|
||
"setup": {
|
||
"title": "Настройка OmniRoute",
|
||
"passwordPrompt": "Пароль администратора",
|
||
"providerPrompt": "Провайдер по умолчанию (оставьте пустым, чтобы пропустить)",
|
||
"done": "Настройка завершена",
|
||
"passwordSet": "Пароль администратора настроен",
|
||
"providerSet": "Провайдер настроен: {name}",
|
||
"testingProvider": "Проверка подключения к провайдеру: {name}",
|
||
"testPassed": "Проверка провайдера пройдена",
|
||
"testFailed": "Проверка провайдера не пройдена: {error}",
|
||
"loginEnabled": "Вход: включён (пароль обновлён)",
|
||
"loginDisabled": "Вход: отключён",
|
||
"providerInfo": "Провайдер: {info}",
|
||
"opencode": "Установить и настроить встроенный плагин @omniroute/opencode-plugin для OpenCode"
|
||
},
|
||
"doctor": {
|
||
"title": "Диагностика OmniRoute",
|
||
"dbOk": "База данных: ОК ({path})",
|
||
"dbMissing": "База данных: не инициализирована — выполните `omniroute setup`",
|
||
"portOk": "Порт {port}: доступен",
|
||
"portConflict": "Порт {port}: используется другим процессом",
|
||
"encryptionOk": "Ключ шифрования: настроен",
|
||
"encryptionMissing": "Ключ шифрования отсутствует — выполните `omniroute setup`",
|
||
"allGood": "Все проверки пройдены.",
|
||
"warnings": "Предупреждений: {count} — см. выше."
|
||
},
|
||
"providers": {
|
||
"title": "Провайдеры",
|
||
"noProviders": "Провайдеры не настроены. Выполните: omniroute setup",
|
||
"testing": "Проверка {name}...",
|
||
"available": "Доступно провайдеров: {count}",
|
||
"connected": "Подключено",
|
||
"disconnected": "Отключено",
|
||
"validationFailed": "Ошибка проверки: {error}",
|
||
"metrics": {
|
||
"description": "Показать показатели производительности провайдеров (задержка, доля успешных запросов, стоимость)",
|
||
"provider": "Фильтровать по ID провайдера",
|
||
"connection_id": "Фильтровать по ID подключения",
|
||
"period": "Период времени: 1h|6h|24h|7d|30d (по умолчанию: 24h)",
|
||
"metric": "Выбрать конкретный показатель",
|
||
"sort": "Сортировать по полю (по убыванию)",
|
||
"limit": "Максимальное количество строк (по умолчанию: 50)",
|
||
"watch": "Обновлять каждые 5 с (режим реального времени)",
|
||
"compare": "ID провайдеров через запятую для параллельного сравнения"
|
||
},
|
||
"metric_single": {
|
||
"description": "Получить одно значение показателя для конкретного подключения"
|
||
},
|
||
"rotate": {
|
||
"description": "Обновить вышестоящий API-ключ для подключения к провайдеру",
|
||
"newKeyOpt": "Новое значение API-ключа (не рекомендуется: используйте --from-env)",
|
||
"fromEnvOpt": "Прочитать новый ключ из переменной окружения VAR",
|
||
"oauthOpt": "Вместо этого запустить повторную OAuth-аутентификацию",
|
||
"skipTestOpt": "Пропустить проверку подключения после ротации",
|
||
"dryRunOpt": "Показать изменения без их применения",
|
||
"confirmPrompt": "Заменить API-ключ для подключения «{name}» ({id})? [y/N]",
|
||
"dryRunResult": "[dry-run] Будет выполнена ротация ключа для «{name}» ({id}). Изменения не внесены.",
|
||
"oauthHint": "OAuth-подключение — выполните: omniroute oauth {provider}",
|
||
"envVarEmpty": "Переменная окружения {var} не задана или пуста.",
|
||
"success": "Ключ для «{name}» ротирован. Выполните `providers test {id}` для проверки.",
|
||
"testPassed": "Проверка после ротации успешно пройдена.",
|
||
"testFailed": "Проверка после ротации завершилась ошибкой: {error}"
|
||
},
|
||
"status": {
|
||
"description": "Показать состояние ключей для всех подключений к провайдерам (возраст, срок действия, период ожидания)",
|
||
"providerOpt": "Фильтровать по имени провайдера",
|
||
"header": "ID Провайдер Имя Срок действия Статус Статус проверки Ожидание до",
|
||
"noData": "Данные о подключениях к провайдерам отсутствуют.",
|
||
"requiresServer": "Для выполнения providers status сервер OmniRoute должен быть запущен."
|
||
}
|
||
},
|
||
"keys": {
|
||
"title": "API-ключи",
|
||
"addDescription": "Добавить или обновить API-ключ провайдера",
|
||
"listDescription": "Показать все настроенные API-ключи",
|
||
"removeDescription": "Удалить API-ключ провайдера",
|
||
"regenerateDescription": "Создать новый API-ключ OmniRoute",
|
||
"revokeDescription": "Отозвать API-ключ OmniRoute",
|
||
"revealDescription": "Показать незамаскированное значение API-ключа",
|
||
"usageDescription": "Показать недавнее использование API-ключа",
|
||
"usageLimitOpt": "Количество недавних запросов",
|
||
"rotateDescription": "Создать новый ключ и сделать старый недействительным",
|
||
"graceOpt": "Льготный период (мс) до аннулирования старого ключа",
|
||
"stdinOpt": "Прочитать API-ключ из stdin вместо аргумента",
|
||
"added": "Ключ для {provider} добавлен.",
|
||
"removed": "Ключ удалён.",
|
||
"listed": "Ключей: {count}.",
|
||
"noKeys": "Нет настроенных ключей.",
|
||
"noUsage": "Данные об использовании не найдены.",
|
||
"confirmRemove": "Удалить ключ {id}?",
|
||
"confirmRegenerate": "Создать заново ключ {id}?",
|
||
"confirmRevoke": "Отозвать ключ {id}?",
|
||
"confirmRotate": "Ротировать ключ {id}? (старый ключ будет аннулирован после льготного периода)",
|
||
"regenerated": "Ключ создан заново. Новый ключ: {key}",
|
||
"revoked": "Ключ {id} отозван.",
|
||
"rotated": "Ключ {id} ротирован. Новый ID ключа: {newId}",
|
||
"revealWarning": "⚠ Будет показан полный ключ без маскировки. Убедитесь, что посторонние не видят ваш экран.",
|
||
"providerRequired": "Необходимо указать провайдера.",
|
||
"keyRequired": "Необходимо указать API-ключ.",
|
||
"stdinEmpty": "API-ключ не передан через stdin.",
|
||
"unknownProvider": "Неизвестный провайдер: {provider}",
|
||
"policy": {
|
||
"title": "Политика ключа",
|
||
"showDescription": "Показать ограничения по частоте запросов и стоимости для ключа",
|
||
"setDescription": "Установить ограничения по частоте запросов и стоимости для ключа",
|
||
"rateLimitOpt": "Максимум запросов в минуту",
|
||
"maxCostOpt": "Максимальная стоимость в день (USD)",
|
||
"allowedModelsOpt": "Список разрешённых моделей через запятую",
|
||
"nothingToSet": "Поля политики не указаны. Используйте --rate-limit, --max-cost или --allowed-models.",
|
||
"updated": "Политика обновлена."
|
||
},
|
||
"expiration": {
|
||
"title": "Срок действия ключа",
|
||
"listDescription": "Показать ключи, срок действия которых скоро истекает",
|
||
"daysOpt": "Показать ключи, срок действия которых истекает в течение N дней",
|
||
"none": "Нет ключей, срок действия которых истекает в течение {days} дней.",
|
||
"listTitle": "Ключи, срок действия которых истекает в течение {days} дней:"
|
||
}
|
||
},
|
||
"authExport": {
|
||
"description": "Экспортировать РАСШИФРОВАННЫЕ учётные данные провайдера (только локально, вывод открытым текстом)",
|
||
"idOpt": "Экспортировать только подключение, соответствующее этому ID, имени или провайдеру",
|
||
"formatOpt": "Формат вывода: json или env",
|
||
"outOpt": "Записать вывод в файл вместо stdout (с правами доступа 0600)",
|
||
"forceOpt": "Подтвердить, что вы понимаете: секретные данные будут выведены или записаны открытым текстом",
|
||
"warning": "⚠ Команда выводит или записывает РАСШИФРОВАННЫЕ API-ключи и OAuth-токены открытым текстом. Убедитесь, что ваш экран, история команд оболочки и любой выходной файл недоступны посторонним.",
|
||
"confirmHeading": "⚠ ПРЕДУПРЕЖДЕНИЕ: эта команда экспортирует РАСШИФРОВАННЫЕ учётные данные провайдера открытым текстом",
|
||
"confirmBody": "Эта команда расшифровывает и выводит или записывает apiKey, accessToken, refreshToken и\nidToken для выбранных подключений. Обращайтесь с выводом как с секретными данными.",
|
||
"confirmFooter": "Для подтверждения выполните:\n omniroute auth export --force",
|
||
"missingKey": "Для экспорта учётных данных требуется STORAGE_ENCRYPTION_KEY.",
|
||
"notFound": "Подключение не найдено: {id}",
|
||
"invalidFormat": "Недопустимый формат: {format}. Используйте json или env."
|
||
},
|
||
"stream": {
|
||
"description": "Потоковый вывод ответа чата с режимами проверки SSE",
|
||
"file": "Прочитать запрос из файла",
|
||
"stdin": "Прочитать запрос из stdin",
|
||
"model": "ID модели (по умолчанию: auto)",
|
||
"system": "Системный запрос",
|
||
"combo": "Принудительно использовать конкретную комбинацию по имени",
|
||
"max_tokens": "Максимальное количество токенов в ответе",
|
||
"responses_api": "Использовать /v1/responses вместо /v1/chat/completions",
|
||
"raw": "Выводить необработанные строки SSE по мере получения",
|
||
"debug": "Выводить сведения о времени обработки каждого фрагмента в stderr",
|
||
"save": "Сохранять все события SSE в файл .jsonl",
|
||
"error": {
|
||
"empty_prompt": "Ошибка: требуется промпт (позиционный аргумент, --file или --stdin)"
|
||
}
|
||
},
|
||
"usage": {
|
||
"description": "Аналитика использования, бюджеты, квоты и журналы",
|
||
"analytics": {
|
||
"description": "Показать агрегированную аналитику использования",
|
||
"period": "Период: 1d|7d|30d|90d|ytd|all (по умолчанию: 30d)",
|
||
"provider": "Фильтровать по ID провайдера"
|
||
},
|
||
"budget": {
|
||
"description": "Управлять бюджетами расходов",
|
||
"set": {
|
||
"scope": "Область действия бюджета (по умолчанию: global)",
|
||
"period": "Период бюджета: daily|weekly|monthly (по умолчанию: monthly)"
|
||
}
|
||
},
|
||
"quota": {
|
||
"description": "Показать использование квоты провайдера",
|
||
"provider": "Фильтровать по ID провайдера",
|
||
"check": "Показать, доступна ли квота для нового запроса"
|
||
},
|
||
"logs": {
|
||
"description": "Показать журналы вызовов запросов",
|
||
"limit": "Количество возвращаемых записей журнала (по умолчанию: 100)",
|
||
"search": "Поисковый запрос для фильтрации журналов",
|
||
"since": "Вернуть записи журнала начиная с этой временной метки",
|
||
"follow": "Непрерывно отслеживать новые записи журнала",
|
||
"api_key": "Фильтровать журналы по ключу API"
|
||
},
|
||
"utilization": {
|
||
"description": "Показать метрики использования ключей API",
|
||
"api_key": "Фильтровать по ключу API"
|
||
},
|
||
"history": {
|
||
"description": "Показать историю запросов",
|
||
"limit": "Количество записей истории (по умолчанию: 100)"
|
||
},
|
||
"proxy_logs": {
|
||
"description": "Показать журналы запросов на уровне прокси",
|
||
"limit": "Количество записей журнала прокси (по умолчанию: 100)"
|
||
}
|
||
},
|
||
"cost": {
|
||
"description": "Показать отчёт о расходах с разбивкой по провайдеру, модели, комбинации или ключу API",
|
||
"period": "Период: 1d|7d|30d|90d|ytd|all (по умолчанию: 30d)",
|
||
"since": "Дата начала (формат ISO, например 2026-01-01) — переопределяет --period",
|
||
"until": "Дата окончания (формат ISO)",
|
||
"group_by": "Группировать результаты по: provider|model|api-key|combo|day (по умолчанию: provider)",
|
||
"api_key_filter": "Фильтровать по определённому ключу API",
|
||
"limit": "Максимальное количество отображаемых строк (по умолчанию: 100)"
|
||
},
|
||
"simulate": {
|
||
"description": "Пробная симуляция маршрутизации — показать, какие провайдеры были бы выбраны, без обращения к вышестоящему сервису",
|
||
"file": "Загрузить полное тело запроса из файла JSON",
|
||
"model": "ID модели (по умолчанию: auto)",
|
||
"combo": "Принудительно использовать определённую комбинацию по имени",
|
||
"reasoning": "Уровень глубины рассуждений (low|medium|high)",
|
||
"thinking": "Бюджет токенов для расширенного мышления",
|
||
"explain": "Вывести дерево резервных вариантов и диапазон стоимости в stderr",
|
||
"noCombo": "Подходящая комбинация не найдена. Настройте её с помощью команды: omniroute combo create"
|
||
},
|
||
"chat": {
|
||
"description": "Отправить одноразовый запрос чата в OmniRoute",
|
||
"file": "Прочитать запрос из файла",
|
||
"stdin": "Прочитать запрос из stdin",
|
||
"system": "Системный промпт",
|
||
"model": "ID модели (по умолчанию: auto)",
|
||
"max_tokens": "Максимальное количество токенов в ответе",
|
||
"temperature": "Температура сэмплирования (0–2)",
|
||
"top_p": "Ядерное сэмплирование Top-p",
|
||
"reasoning_effort": "Уровень глубины рассуждений (low|medium|high)",
|
||
"thinking_budget": "Бюджет токенов для расширенного рассуждения",
|
||
"combo": "Принудительно использовать определённую комбинацию по имени",
|
||
"responses_api": "Использовать /v1/responses вместо /v1/chat/completions",
|
||
"stream": "Передавать ответ по частям",
|
||
"no_history": "Не сохранять в ~/.omniroute/cli-history.jsonl",
|
||
"error": {
|
||
"empty_prompt": "Ошибка: требуется запрос (позиционный аргумент, --file или --stdin)"
|
||
}
|
||
},
|
||
"serve": {
|
||
"description": "Запустить сервер OmniRoute (действие по умолчанию)",
|
||
"starting": "Запуск сервера OmniRoute на порту {port}...",
|
||
"ready": "Доступен по адресу http://localhost:{port}",
|
||
"stopping": "Остановка сервера (PID {pid})...",
|
||
"stopped": "Сервер остановлен.",
|
||
"notRunning": "Сервер не запущен.",
|
||
"port": "Порт для прослушивания (по умолчанию: 20128)",
|
||
"no_open": "Не открывать браузер автоматически",
|
||
"daemon": "Запустить сервер как фоновый демон",
|
||
"log": "Показывать журналы сервера непосредственно в консоли",
|
||
"no_recovery": "Отключить автоматический перезапуск при сбое (режим отладки)",
|
||
"max_restarts": "Максимальное количество перезапусков после сбоев в течение 30 с (по умолчанию: 2)",
|
||
"tray": "Запустить в системном трее (только для настольных систем, по явному согласию)",
|
||
"no_tray": "Отключить значок в системном трее",
|
||
"ready_timeout": "Тайм-аут проверки готовности в мс (также OMNIROUTE_READY_TIMEOUT_MS, по умолчанию: 60000)",
|
||
"tls_cert": "Путь к TLS-сертификату (PEM) для обслуживания HTTPS (также OMNIROUTE_TLS_CERT)",
|
||
"tls_key": "Путь к закрытому ключу TLS (PEM) для обслуживания HTTPS (также OMNIROUTE_TLS_KEY)"
|
||
},
|
||
"backup": {
|
||
"title": "Резервная копия",
|
||
"description": "Создать резервную копию данных OmniRoute",
|
||
"creating": "Создание резервной копии...",
|
||
"done": "Резервная копия сохранена в {path}",
|
||
"noFiles": "Нет файлов для резервного копирования (база данных не инициализирована)",
|
||
"failed": "Не удалось создать резервную копию: {error}",
|
||
"restoring": "Восстановление из {path}...",
|
||
"restored": "Восстановление завершено.",
|
||
"restoreDescription": "Восстановить из резервной копии",
|
||
"listTitle": "Доступные резервные копии",
|
||
"noBackups": "Резервные копии не найдены.",
|
||
"notFound": "Резервная копия не найдена: {name}",
|
||
"confirmRestore": "Перезаписать текущие данные резервной копией от {ts}?",
|
||
"createDescription": "Создать резервную копию данных OmniRoute",
|
||
"nameOpt": "Пользовательское имя резервной копии",
|
||
"cloudOpt": "Загрузить резервную копию в облачное хранилище",
|
||
"encryptOpt": "Зашифровать резервную копию с помощью AES-256-GCM",
|
||
"keyFileOpt": "Путь к файлу, содержащему парольную фразу для шифрования",
|
||
"excludeOpt": "Исключить файлы, соответствующие шаблону (можно указать несколько раз)",
|
||
"retentionOpt": "Сохранять только последние N резервных копий",
|
||
"passphrasePrompt": "Парольная фраза для шифрования:",
|
||
"noPassphrase": "Для зашифрованной резервной копии требуется парольная фраза.",
|
||
"cloudFailed": "Предупреждение: не удалось загрузить резервную копию в облако. Локальная резервная копия сохранена.",
|
||
"cloudUploaded": "Резервная копия загружена в облако: {url}",
|
||
"auto": {
|
||
"title": "Расписание резервного копирования",
|
||
"enableDescription": "Включить автоматическое резервное копирование по расписанию",
|
||
"disableDescription": "Отключить автоматическое резервное копирование по расписанию",
|
||
"statusDescription": "Показать текущее состояние расписания резервного копирования",
|
||
"cronOpt": "Cron-выражение для расписания (по умолчанию: ежедневно в 3:00)",
|
||
"enabled": "Автоматическое резервное копирование включено (cron: {cron}).",
|
||
"hint": "Расписание считывается командой omniroute serve при запуске.",
|
||
"disabled": "Автоматическое резервное копирование отключено.",
|
||
"notConfigured": "Расписание резервного копирования не настроено."
|
||
}
|
||
},
|
||
"health": {
|
||
"description": "Проверить работоспособность сервера и состояние компонентов",
|
||
"noServer": "Сервер не запущен. Запустите его командой: omniroute serve",
|
||
"title": "Работоспособность",
|
||
"status": "Состояние: {status}",
|
||
"uptime": "Время работы: {uptime}",
|
||
"requests": "Запросы (24 ч): {count}",
|
||
"cost": "Стоимость (24 ч): ${cost}"
|
||
},
|
||
"quota": {
|
||
"description": "Показать использование квоты провайдера",
|
||
"noServer": "Сервер не запущен. Запустите его командой: omniroute serve",
|
||
"noData": "Информация о квоте недоступна."
|
||
},
|
||
"cache": {
|
||
"description": "Управление кешем ответов",
|
||
"noServer": "Сервер не запущен. Запустите его командой: omniroute serve",
|
||
"cleared": "Кеш очищен.",
|
||
"clearFailed": "Не удалось очистить кеш."
|
||
},
|
||
"redis": {
|
||
"description": "Запустить локальный контейнер Redis одним нажатием (Podman или Docker) для кэширования и отслеживания квот OmniRoute"
|
||
},
|
||
"test": {
|
||
"description": "Проверить подключение к провайдеру",
|
||
"noServer": "Сервер не запущен. Запустите его командой: omniroute serve",
|
||
"testing": "Тестирование {provider} / {model}...",
|
||
"passed": "Подключение успешно!",
|
||
"failed": "Не удалось подключиться: {error}",
|
||
"allProvidersOpt": "Протестировать всех настроенных провайдеров",
|
||
"latencyOpt": "Показывать измерения задержки (среднее/минимум/максимум, мс)",
|
||
"repeatOpt": "Повторить тест N раз и агрегировать результаты",
|
||
"compareOpt": "Модели для сравнения через запятую (например, gpt-4o,claude-3-5-sonnet)",
|
||
"saveOpt": "Сохранить результаты в JSON-файл",
|
||
"saved": "Результаты сохранены в {path}",
|
||
"compareTitle": "Сравнение моделей",
|
||
"compareMinTwo": "Для --compare требуется не менее двух моделей (через запятую)",
|
||
"noProviders": "Нет настроенных провайдеров. Добавьте провайдера командой: omniroute keys add"
|
||
},
|
||
"update": {
|
||
"checking": "Проверка обновлений...",
|
||
"upToDate": "Уже установлена актуальная версия ({version}).",
|
||
"available": "Доступно обновление: {current} → {latest}",
|
||
"installing": "Установка {latest}...",
|
||
"done": "Обновлено до версии {latest}. Перезапустите сервер, чтобы применить изменения."
|
||
},
|
||
"mcp": {
|
||
"title": "Сервер MCP",
|
||
"running": "Сервер MCP запущен ({transport})",
|
||
"stopped": "Сервер MCP остановлен.",
|
||
"restarted": "Сервер MCP перезапущен.",
|
||
"stoppedHint": "Выполните `omniroute mcp enable`, чтобы включить его.",
|
||
"enabled": "Сервер MCP включён.",
|
||
"disabled": "Сервер MCP отключён.",
|
||
"enable": {
|
||
"description": "Включить сервер MCP",
|
||
"transport": "Используемый транспорт: stdio|sse|streamable-http"
|
||
},
|
||
"disable": {
|
||
"description": "Отключить сервер MCP"
|
||
},
|
||
"call": {
|
||
"description": "Вызвать инструмент MCP напрямую",
|
||
"args": "Объект аргументов JSON (встроенный)",
|
||
"args_file": "Путь к файлу аргументов JSON",
|
||
"stream": "Использовать потоковую конечную точку (/api/mcp/stream)",
|
||
"scope": "Требуемая область доступа (можно указать несколько раз, например read:health)"
|
||
},
|
||
"scopes": {
|
||
"description": "Показать доступные области доступа MCP",
|
||
"tool": "Показать области доступа, необходимые конкретному инструменту"
|
||
},
|
||
"tools": {
|
||
"description": "Просмотреть инструменты MCP",
|
||
"list": {
|
||
"description": "Показать все инструменты MCP",
|
||
"scope": "Фильтровать по области доступа"
|
||
},
|
||
"info": {
|
||
"description": "Показать метаданные инструмента MCP"
|
||
},
|
||
"schema": {
|
||
"description": "Показать JSON-схему входных и выходных данных инструмента MCP",
|
||
"io": "Тип схемы: input|output (по умолчанию: input)"
|
||
}
|
||
},
|
||
"audit": {
|
||
"description": "Журнал аудита MCP (псевдоним для audit --source mcp)"
|
||
}
|
||
},
|
||
"a2a": {
|
||
"skills": {
|
||
"description": "Показать доступные навыки A2A из карточки агента"
|
||
},
|
||
"invoke": {
|
||
"description": "Вызвать навык A2A и вернуть идентификатор задачи",
|
||
"input": "Входной объект JSON",
|
||
"input_file": "Путь к входному файлу JSON",
|
||
"wait": "Ожидать завершения задачи перед возвратом",
|
||
"timeout": "Тайм-аут ожидания завершения в мс (по умолчанию: 60000)"
|
||
},
|
||
"tasks": {
|
||
"description": "Управление задачами A2A",
|
||
"list": {
|
||
"status": "Фильтровать по статусу",
|
||
"skill": "Фильтровать по идентификатору навыка"
|
||
},
|
||
"watch": {
|
||
"description": "Опрашивать статус задачи до её завершения"
|
||
},
|
||
"stream": {
|
||
"description": "Передавать события выполнения задачи в потоковом режиме через SSE"
|
||
},
|
||
"logs": {
|
||
"description": "Показать сообщения и артефакты задачи"
|
||
}
|
||
}
|
||
},
|
||
"policy": {
|
||
"description": "Управление политиками авторизации OmniRoute",
|
||
"list": {
|
||
"description": "Показать список политик",
|
||
"kind": "Фильтровать по типу (allow|deny|rate-limit|cost-cap)",
|
||
"scope": "Фильтровать по области действия (global|api-key|provider)"
|
||
},
|
||
"get": {
|
||
"description": "Получить сведения о политике по идентификатору"
|
||
},
|
||
"create": {
|
||
"description": "Создать политику из файла JSON",
|
||
"file": "Путь к файлу JSON политики"
|
||
},
|
||
"update": {
|
||
"description": "Обновить политику из файла JSON",
|
||
"file": "Путь к файлу JSON политики"
|
||
},
|
||
"delete": {
|
||
"description": "Удалить политику по идентификатору",
|
||
"yes": "Пропустить запрос подтверждения"
|
||
},
|
||
"evaluate": {
|
||
"description": "Пробная оценка политики (код выхода 0 — разрешено, 4 — запрещено)",
|
||
"api_key": "Ключ API для оценки",
|
||
"action": "Проверяемое действие (например, chat, embed, admin)",
|
||
"resource": "Путь к ресурсу или идентификатор",
|
||
"context": "Дополнительный контекст в виде объекта JSON"
|
||
},
|
||
"export": {
|
||
"description": "Экспортировать все политики в файл JSON"
|
||
},
|
||
"import": {
|
||
"description": "Импортировать политики из файла JSON",
|
||
"overwrite": "Перезаписать существующие политики с тем же идентификатором"
|
||
}
|
||
},
|
||
"compression": {
|
||
"description": "Настройка и проверка конвейера сжатия OmniRoute",
|
||
"status": {
|
||
"description": "Показать текущий статус и настройки сжатия"
|
||
},
|
||
"configure": {
|
||
"description": "Настроить параметры сжатия",
|
||
"engine": "Механизм сжатия (caveman|rtk|hybrid|none)",
|
||
"caveman_agg": "Степень агрессивности Caveman: 0.0–1.0",
|
||
"rtk_budget": "Бюджет токенов RTK",
|
||
"language_pack": "Языковой пакет для активации"
|
||
},
|
||
"engine": {
|
||
"description": "Получить или задать активный механизм сжатия"
|
||
},
|
||
"combos": {
|
||
"description": "Управление статистикой комбинаций сжатия"
|
||
},
|
||
"rules": {
|
||
"description": "Управление правилами сжатия",
|
||
"add": {
|
||
"pattern": "Шаблон для сопоставления (регулярное выражение или поле:шаблон)",
|
||
"action": "Действие: drop|shrink|replace"
|
||
}
|
||
},
|
||
"language_packs": {
|
||
"description": "Показать доступные языковые пакеты сжатия"
|
||
},
|
||
"preview": {
|
||
"description": "Предварительно оценить эффект сжатия для запроса",
|
||
"file": "Путь к JSON-файлу запроса"
|
||
}
|
||
},
|
||
"tunnel": {
|
||
"title": "Туннели",
|
||
"listDescription": "Показать активные туннели",
|
||
"createDescription": "Создать туннель",
|
||
"created": "Туннель создан: {url}",
|
||
"stopped": "Туннель остановлен.",
|
||
"confirmStop": "Остановить туннель {id}?",
|
||
"stopDescription": "Остановить туннель",
|
||
"statusDescription": "Показать подробное состояние туннеля",
|
||
"logsDescription": "Показать журналы туннеля",
|
||
"infoDescription": "Показать сведения о конфигурации туннеля",
|
||
"rotateDescription": "Создать новый URL туннеля",
|
||
"tailOpt": "Количество отображаемых строк журнала",
|
||
"typeRequired": "Необходимо указать тип туннеля.",
|
||
"noLogs": "Журналы недоступны.",
|
||
"notAvailable": "Информация о туннеле недоступна.",
|
||
"noTunnels": "Нет активных туннелей.",
|
||
"infoTitle": "Информация о туннеле: {type}",
|
||
"rotated": "URL туннеля обновлён: {url}",
|
||
"confirmRotate": "Обновить URL туннеля {type}? (будет создан новый URL)"
|
||
},
|
||
"stop": {
|
||
"description": "Остановить сервер OmniRoute",
|
||
"stopping": "Остановка сервера (PID {pid})...",
|
||
"stopped": "Сервер остановлен.",
|
||
"notRunning": "Сервер не запущен.",
|
||
"portFallback": "PID-файл не найден, выполняется попытка остановки по порту..."
|
||
},
|
||
"restart": {
|
||
"description": "Перезапустить сервер OmniRoute",
|
||
"restarting": "Перезапуск сервера OmniRoute..."
|
||
},
|
||
"dashboard": {
|
||
"description": "Открыть панель управления OmniRoute в браузере",
|
||
"opening": "Открытие панели управления по адресу {url}",
|
||
"urlOnly": "Вывести URL панели управления, не открывая браузер",
|
||
"tui": "Открыть интерактивную TUI-панель управления (терминальный интерфейс, 7 вкладок)"
|
||
},
|
||
"models": {
|
||
"description": "Показать доступные модели (требуется сервер)",
|
||
"search": "Фильтровать модели по идентификатору, названию, провайдеру или описанию",
|
||
"noServer": "Сервер не запущен. Запустите его командой: omniroute serve",
|
||
"noModels": "Модели не найдены."
|
||
},
|
||
"audit": {
|
||
"description": "Доступ к журналам аудита соответствия требованиям и MCP",
|
||
"source": "Источник журнала: all|compliance|mcp (по умолчанию: all)",
|
||
"since": "Вернуть записи, начиная с этой временной метки (ISO 8601)",
|
||
"until": "Вернуть записи до этой временной метки (ISO 8601)",
|
||
"tail": {
|
||
"description": "Показать последние записи журнала аудита",
|
||
"follow": "Непрерывно отслеживать новые записи (опрос каждые 2 с)",
|
||
"limit": "Максимальное количество отображаемых записей (по умолчанию: 100)"
|
||
},
|
||
"search": {
|
||
"description": "Поиск записей журнала аудита по ключевому слову",
|
||
"limit": "Максимальное количество результатов (по умолчанию: 200)",
|
||
"actor": "Фильтровать по ID субъекта",
|
||
"action": "Фильтровать по названию действия"
|
||
},
|
||
"export": {
|
||
"description": "Экспортировать журнал аудита в файл",
|
||
"format": "Формат вывода: jsonl|csv (по умолчанию: jsonl)"
|
||
},
|
||
"stats": {
|
||
"description": "Показать статистику журнала аудита",
|
||
"period": "Период времени: 1d|7d|30d (по умолчанию: 7d)"
|
||
},
|
||
"get": {
|
||
"description": "Получить отдельную запись журнала аудита по ID"
|
||
}
|
||
},
|
||
"skills": {
|
||
"description": "Управление навыками OmniRoute (sandbox, builtin, custom, hybrid, skillssh)",
|
||
"list": {
|
||
"description": "Показать список установленных навыков",
|
||
"type": "Фильтровать по типу (sandbox|custom|builtin|hybrid|skillssh)",
|
||
"enabled": "Показать только включённые навыки",
|
||
"disabled": "Показать только отключённые навыки",
|
||
"api_key": "Фильтровать по API-ключу"
|
||
},
|
||
"get": {
|
||
"description": "Получить сведения о навыке по ID"
|
||
},
|
||
"install": {
|
||
"description": "Установить навык из файла или по URL",
|
||
"from_file": "Путь к JSON-файлу определения навыка",
|
||
"from_url": "URL удалённого определения навыка",
|
||
"type": "Тип навыка (sandbox|custom|hybrid)",
|
||
"enable": "Включить навык после установки"
|
||
},
|
||
"enable": {
|
||
"description": "Включить навык по ID"
|
||
},
|
||
"disable": {
|
||
"description": "Отключить навык по ID",
|
||
"yes": "Пропустить запрос подтверждения"
|
||
},
|
||
"delete": {
|
||
"description": "Удалить навык по ID",
|
||
"yes": "Пропустить запрос подтверждения"
|
||
},
|
||
"execute": {
|
||
"description": "Выполнить навык по ID",
|
||
"input": "Входной JSON-объект",
|
||
"input_file": "Путь к файлу входных данных JSON",
|
||
"timeout": "Тайм-аут выполнения в мс (по умолчанию: 30000)"
|
||
},
|
||
"executions": {
|
||
"description": "Показать историю выполнения навыков",
|
||
"skill": "Фильтр по ID навыка",
|
||
"limit": "Максимальное количество результатов (по умолчанию: 50)",
|
||
"status": "Фильтр по статусу (running|completed|failed)"
|
||
},
|
||
"skillssh": {
|
||
"description": "Управление навыками, установленными через SSH"
|
||
},
|
||
"marketplace": {
|
||
"description": "Просмотр и установка навыков из маркетплейса"
|
||
},
|
||
"mp": {
|
||
"search": {
|
||
"description": "Поиск пакетов в маркетплейсе",
|
||
"category": "Фильтр по категории",
|
||
"tag": "Фильтр по тегу",
|
||
"limit": "Максимальное количество результатов (по умолчанию: 30)",
|
||
"sort": "Сортировка по: downloads|rating|recent"
|
||
},
|
||
"info": {
|
||
"description": "Показать сведения о пакете и файл readme"
|
||
},
|
||
"install": {
|
||
"description": "Установить пакет из маркетплейса",
|
||
"version": "Версия пакета (по умолчанию: latest)",
|
||
"enable": "Включить после установки",
|
||
"yes": "Пропустить запрос подтверждения"
|
||
},
|
||
"categories": {
|
||
"description": "Показать категории маркетплейса"
|
||
},
|
||
"featured": {
|
||
"description": "Показать рекомендуемые пакеты маркетплейса"
|
||
}
|
||
}
|
||
},
|
||
"memory": {
|
||
"description": "Управление памятью диалогов OmniRoute (FTS5 + vector)",
|
||
"search": {
|
||
"description": "Поиск записей в памяти по семантическому запросу",
|
||
"type": "Фильтр по типу памяти (user|feedback|project|reference)",
|
||
"limit": "Максимальное количество результатов (по умолчанию: 20)",
|
||
"api_key": "Фильтр по ключу API",
|
||
"token_budget": "Ограничить общее количество токенов в результатах"
|
||
},
|
||
"add": {
|
||
"description": "Добавить новую запись в память",
|
||
"content": "Текстовое содержимое записи в памяти",
|
||
"file": "Прочитать содержимое из файла",
|
||
"type": "Тип памяти (по умолчанию: user)",
|
||
"metadata": "Объект метаданных JSON",
|
||
"api_key": "Связать с ключом API"
|
||
},
|
||
"clear": {
|
||
"description": "Удалить записи из памяти, соответствующие фильтрам",
|
||
"type": "Фильтр по типу",
|
||
"older": "Удалить записи старше указанного срока (30d, 6m, 1y)",
|
||
"api_key": "Фильтр по ключу API",
|
||
"yes": "Пропустить запрос подтверждения"
|
||
},
|
||
"list": {
|
||
"description": "Показать записи в памяти без поискового ранжирования",
|
||
"type": "Фильтр по типу",
|
||
"limit": "Максимальное количество результатов (по умолчанию: 100)",
|
||
"api_key": "Фильтр по ключу API"
|
||
},
|
||
"get": {
|
||
"description": "Получить одну запись из памяти по ID"
|
||
},
|
||
"delete": {
|
||
"description": "Удалить запись из памяти по ID",
|
||
"yes": "Пропустить запрос подтверждения"
|
||
},
|
||
"health": {
|
||
"description": "Показать состояние подсистемы памяти (FTS5 + Qdrant)"
|
||
}
|
||
},
|
||
"oauth": {
|
||
"description": "Управлять подключениями OAuth-провайдеров",
|
||
"providers": {
|
||
"description": "Показать список провайдеров с поддержкой OAuth и типы их потоков"
|
||
},
|
||
"start": {
|
||
"description": "Запустить поток OAuth-авторизации для провайдера",
|
||
"provider": "Идентификатор провайдера (gemini, copilot, cursor, …)",
|
||
"no_browser": "Вывести только URL — не открывать браузер",
|
||
"import_system": "Автоматически импортировать учётные данные из локальной конфигурации системы",
|
||
"social": "Провайдер входа через социальную сеть (google|github) — обязателен для kiro",
|
||
"timeout": "Время ожидания авторизации в мс (по умолчанию: 300000)"
|
||
},
|
||
"status": {
|
||
"description": "Показать список активных OAuth-подключений",
|
||
"provider": "Фильтровать по идентификатору провайдера"
|
||
},
|
||
"revoke": {
|
||
"description": "Отозвать OAuth-подключение",
|
||
"provider": "Идентификатор провайдера, подключение которого нужно отозвать",
|
||
"connection_id": "Отозвать конкретное подключение по идентификатору",
|
||
"yes": "Пропустить запрос подтверждения"
|
||
}
|
||
},
|
||
"cloud": {
|
||
"description": "Управлять задачами облачных ИИ-агентов (codex, devin, jules)",
|
||
"agents": {
|
||
"description": "Показать список доступных облачных агентов"
|
||
},
|
||
"agent": {
|
||
"description": "Управлять задачами облачного агента {agent}",
|
||
"auth": {
|
||
"description": "Авторизовать {agent} через OAuth"
|
||
}
|
||
},
|
||
"task": {
|
||
"description": "Управлять задачами облачных агентов",
|
||
"create": {
|
||
"description": "Создать новую задачу агента",
|
||
"title": "Название задачи (по умолчанию — первые 80 символов запроса)",
|
||
"prompt": "Текст запроса задачи",
|
||
"prompt_file": "Прочитать запрос из файла",
|
||
"repo": "URL репозитория для клонирования в рамках задачи",
|
||
"branch": "Имя используемой ветки",
|
||
"metadata": "Объект метаданных JSON"
|
||
},
|
||
"list": {
|
||
"description": "Показать список задач агента",
|
||
"status": "Фильтровать по статусу (running|completed|failed|cancelled)",
|
||
"limit": "Максимальное количество результатов (по умолчанию: 50)"
|
||
},
|
||
"get": {
|
||
"description": "Получить сведения о задаче по идентификатору"
|
||
},
|
||
"status": {
|
||
"description": "Вывести статус задачи (running|completed|failed|cancelled)"
|
||
},
|
||
"cancel": {
|
||
"description": "Отменить выполняемую задачу",
|
||
"yes": "Пропустить запрос подтверждения"
|
||
},
|
||
"approve": {
|
||
"description": "Утвердить план агента для запуска выполнения"
|
||
},
|
||
"message": {
|
||
"description": "Отправить сообщение выполняемой задаче"
|
||
}
|
||
},
|
||
"sources": {
|
||
"description": "Показать список исходных файлов, созданных задачей"
|
||
}
|
||
},
|
||
"eval": {
|
||
"description": "Управлять наборами и запусками оценок",
|
||
"suites": {
|
||
"description": "Управлять наборами оценок",
|
||
"list": {
|
||
"description": "Список наборов оценивания"
|
||
},
|
||
"get": {
|
||
"description": "Получить сведения о наборе оценивания по ID"
|
||
},
|
||
"create": {
|
||
"description": "Создать набор оценивания из JSON-файла",
|
||
"file": "Путь к JSON-файлу с определением набора"
|
||
}
|
||
},
|
||
"run": {
|
||
"description": "Запустить оценивание для набора",
|
||
"model": "ID модели для оценивания (по умолчанию: auto)",
|
||
"combo": "Принудительно использовать конкретную комбинацию по имени",
|
||
"concurrency": "Количество параллельных примеров (по умолчанию: 4)",
|
||
"tag": "Добавить тег к этому запуску для последующей фильтрации",
|
||
"watch": "Отслеживать ход выполнения до завершения"
|
||
},
|
||
"list": {
|
||
"description": "Список запусков оценивания",
|
||
"suite": "Фильтровать по ID набора",
|
||
"status": "Фильтровать по статусу",
|
||
"since": "Вернуть запуски, выполненные после этой временной метки",
|
||
"limit": "Максимальное количество результатов (по умолчанию: 50)"
|
||
},
|
||
"get": {
|
||
"description": "Получить сведения о запуске оценивания по ID"
|
||
},
|
||
"results": {
|
||
"description": "Показать результаты примеров для запуска оценивания",
|
||
"failed": "Показать только неуспешные примеры"
|
||
},
|
||
"cancel": {
|
||
"description": "Отменить выполняющееся оценивание",
|
||
"yes": "Пропустить запрос подтверждения"
|
||
},
|
||
"scorecard": {
|
||
"description": "Показать сводную таблицу результатов завершённого оценивания"
|
||
}
|
||
},
|
||
"webhooks": {
|
||
"description": "Управление вебхуками OmniRoute",
|
||
"events": {
|
||
"description": "Показать все доступные типы событий вебхуков"
|
||
},
|
||
"list": {
|
||
"description": "Показать настроенные вебхуки"
|
||
},
|
||
"get": {
|
||
"description": "Получить сведения о вебхуке по ID"
|
||
},
|
||
"add": {
|
||
"description": "Зарегистрировать новый вебхук",
|
||
"url": "URL назначения",
|
||
"events": "Список типов событий через запятую",
|
||
"secret": "Секрет для подписи HMAC",
|
||
"header": "Дополнительный заголовок в формате key=value (можно указать несколько раз)",
|
||
"no_enabled": "Создать вебхук в отключённом состоянии"
|
||
},
|
||
"update": {
|
||
"description": "Обновить существующий вебхук",
|
||
"enabled": "Установить состояние активности (true|false)"
|
||
},
|
||
"remove": {
|
||
"description": "Удалить вебхук",
|
||
"yes": "Пропустить запрос подтверждения"
|
||
},
|
||
"test": {
|
||
"description": "Отправить тестовое событие вебхуку",
|
||
"event": "Тип имитируемого события (по умолчанию: request.completed)"
|
||
}
|
||
},
|
||
"program": {
|
||
"description": "OmniRoute — Умный AI-маршрутизатор с автоматическим переключением",
|
||
"version": "Вывести версию и выйти",
|
||
"output": "Формат вывода (table, json, jsonl, csv)",
|
||
"quiet": "Подавить несущественный вывод",
|
||
"no_color": "Отключить цветной вывод",
|
||
"timeout": "Таймаут HTTP-запросов в миллисекундах",
|
||
"api_key": "API-ключ для сервера OmniRoute",
|
||
"base_url": "Базовый URL сервера OmniRoute",
|
||
"context": "Контекст/профиль сервера для этой команды",
|
||
"lang": "Установить язык отображения CLI (переопределяет OMNIROUTE_LANG)"
|
||
},
|
||
"files": {
|
||
"description": "Управление файлами (загрузка, просмотр списка, получение, скачивание, удаление)",
|
||
"list": {
|
||
"purpose": "Фильтровать по назначению",
|
||
"limit": "Максимальное количество результатов"
|
||
},
|
||
"get": {
|
||
"description": "Получить метаданные файла"
|
||
},
|
||
"upload": {
|
||
"description": "Загрузить файл",
|
||
"purpose": "Назначение файла (batch, assistants, fine-tune)"
|
||
},
|
||
"content": {
|
||
"description": "Скачать содержимое файла",
|
||
"out": "Сохранить по указанному пути (по умолчанию: stdout)"
|
||
},
|
||
"delete": {
|
||
"yes": "Пропустить подтверждение"
|
||
}
|
||
},
|
||
"batches": {
|
||
"description": "Управление пакетными заданиями, совместимыми с OpenAI",
|
||
"list": {
|
||
"status": "Фильтр по статусу",
|
||
"limit": "Максимальное количество результатов"
|
||
},
|
||
"create": {
|
||
"description": "Создать пакетное задание",
|
||
"inputFile": "ID входного файла",
|
||
"endpoint": "Целевая конечная точка",
|
||
"window": "Окно выполнения",
|
||
"metadata": "Добавить метаданные key=value"
|
||
},
|
||
"submit": {
|
||
"description": "Загрузить файл JSONL и создать пакетное задание",
|
||
"jsonl": "Путь к файлу JSONL",
|
||
"endpoint": "Целевая конечная точка",
|
||
"wait": "Дождаться завершения"
|
||
},
|
||
"cancel": {
|
||
"yes": "Пропустить подтверждение"
|
||
},
|
||
"wait": {
|
||
"timeout": "Тайм-аут в мс"
|
||
},
|
||
"output": {
|
||
"out": "Сохранить результат по указанному пути"
|
||
},
|
||
"errors": {
|
||
"out": "Сохранить ошибки по указанному пути"
|
||
}
|
||
},
|
||
"translator": {
|
||
"description": "Преобразование тел запросов между форматами LLM",
|
||
"detect": {
|
||
"description": "Определить формат тела запроса"
|
||
},
|
||
"translate": {
|
||
"description": "Преобразовать тело запроса из одного формата в другой"
|
||
},
|
||
"send": {
|
||
"description": "Преобразовать и отправить вышестоящему сервису"
|
||
},
|
||
"stream": {
|
||
"description": "Потоковое преобразование тела запроса"
|
||
},
|
||
"from": "Исходный формат (openai|anthropic|gemini|cohere)",
|
||
"to": "Целевой формат (openai|anthropic|gemini|cohere)",
|
||
"file": "Путь к JSON-файлу с телом запроса",
|
||
"out": "Сохранить результат в файл",
|
||
"model": "Переопределить модель",
|
||
"history": {
|
||
"limit": "Максимальное количество результатов"
|
||
}
|
||
},
|
||
"pricing": {
|
||
"description": "Управление данными о ценах на модели",
|
||
"sync": {
|
||
"description": "Синхронизировать цены с вышестоящими источниками",
|
||
"provider": "Фильтр по провайдеру",
|
||
"force": "Принудительная повторная синхронизация"
|
||
},
|
||
"list": {
|
||
"provider": "Фильтр по провайдеру",
|
||
"model": "Фильтр по модели",
|
||
"limit": "Максимальное количество результатов"
|
||
},
|
||
"defaults": {
|
||
"description": "Управление ценами по умолчанию",
|
||
"input": "Стоимость входных токенов за 1 млн (USD)",
|
||
"output": "Стоимость выходных токенов за 1 млн (USD)",
|
||
"cacheRead": "Стоимость чтения из кэша за 1 млн токенов (USD)",
|
||
"cacheWrite": "Стоимость записи в кэш за 1 млн токенов (USD)"
|
||
},
|
||
"diff": {
|
||
"description": "Показывать расхождения с ценами вышестоящего источника",
|
||
"model": "Фильтр по модели"
|
||
}
|
||
},
|
||
"radar": {
|
||
"description": "Просмотр и синхронизация локальных каналов каталога Radar",
|
||
"status": "Показать локальные настройки Radar и состояние кэша каналов",
|
||
"sync": "Синхронизировать каталог, реферальные данные, предложения и Intel через локальный сервер"
|
||
},
|
||
"resilience": {
|
||
"description": "Просмотр и управление механизмами отказоустойчивости",
|
||
"status": {
|
||
"provider": "Фильтр по провайдеру"
|
||
},
|
||
"breakers": {
|
||
"provider": "Фильтр по провайдеру"
|
||
},
|
||
"cooldowns": {
|
||
"provider": "Фильтр по провайдеру",
|
||
"connectionId": "Фильтр по ID подключения"
|
||
},
|
||
"lockouts": {
|
||
"provider": "Фильтр по провайдеру",
|
||
"model": "Фильтр по модели"
|
||
},
|
||
"reset": {
|
||
"description": "Сбросить состояние предохранителя/периода ожидания",
|
||
"provider": "Провайдер для сброса",
|
||
"connectionId": "ID подключения для сброса",
|
||
"model": "Модель для сброса блокировки",
|
||
"allCooldowns": "Сбросить все периоды ожидания для провайдера",
|
||
"yes": "Пропустить подтверждение"
|
||
},
|
||
"profile": {
|
||
"description": "Управление профилем отказоустойчивости",
|
||
"name": "Название профиля"
|
||
},
|
||
"config": {
|
||
"description": "Управление конфигурацией отказоустойчивости",
|
||
"threshold": "Порог сбоев",
|
||
"resetTimeout": "Время ожидания перед сбросом в мс",
|
||
"baseCooldown": "Базовый период ожидания в мс"
|
||
}
|
||
},
|
||
"nodes": {
|
||
"description": "Управление узлами (конечными точками) провайдера",
|
||
"list": {
|
||
"provider": "Фильтр по провайдеру",
|
||
"enabled": "Показывать только включённые узлы"
|
||
},
|
||
"add": {
|
||
"provider": "Название провайдера",
|
||
"baseUrl": "Базовый URL узла",
|
||
"name": "Название узла",
|
||
"weight": "Вес балансировки нагрузки",
|
||
"region": "Тег региона",
|
||
"authHeader": "Пользовательский заголовок авторизации (key=value)"
|
||
},
|
||
"update": {
|
||
"baseUrl": "Новый базовый URL",
|
||
"name": "Новое название",
|
||
"weight": "Новый вес",
|
||
"region": "Новый регион",
|
||
"enabled": "Включить или отключить (true|false)"
|
||
},
|
||
"remove": {
|
||
"yes": "Пропустить подтверждение"
|
||
},
|
||
"validate": {
|
||
"baseUrl": "URL для проверки",
|
||
"provider": "Провайдер, с которым нужно сверить"
|
||
},
|
||
"test": {
|
||
"description": "Отправить тестовый запрос узлу"
|
||
},
|
||
"metrics": {
|
||
"description": "Показать метрики узла",
|
||
"period": "Период времени (например, 24h, 7d)"
|
||
}
|
||
},
|
||
"context": {
|
||
"description": "Настроить конвейер обработки контекста (Caveman, RTK)",
|
||
"analytics": {
|
||
"period": "Период времени (например, 7d, 30d)"
|
||
},
|
||
"caveman": {
|
||
"description": "Управление компрессором контекста Caveman",
|
||
"config": {
|
||
"description": "Показать или обновить конфигурацию Caveman",
|
||
"aggressiveness": "Интенсивность 0.0–1.0",
|
||
"maxShrinkPct": "Максимальный процент сокращения",
|
||
"preserveTags": "Теги для сохранения, разделённые запятыми"
|
||
}
|
||
},
|
||
"rtk": {
|
||
"description": "Управление оптимизатором контекста RTK",
|
||
"config": {
|
||
"description": "Показать или обновить конфигурацию RTK",
|
||
"tokenBudget": "Бюджет токенов для RTK",
|
||
"reservePct": "Процент резерва"
|
||
},
|
||
"filters": {
|
||
"description": "Управление фильтрами RTK",
|
||
"pattern": "Шаблон фильтра (регулярное выражение)",
|
||
"priority": "Приоритет фильтра (по умолчанию: 100)",
|
||
"action": "Действие фильтра: drop|shrink|replace",
|
||
"yes": "Пропустить подтверждение"
|
||
},
|
||
"test": {
|
||
"file": "Путь к JSON-файлу запроса"
|
||
}
|
||
},
|
||
"combos": {
|
||
"description": "Управление комбинациями с учётом контекста"
|
||
}
|
||
},
|
||
"sessions": {
|
||
"description": "Просмотр активных сеансов и управление ими",
|
||
"list": {
|
||
"user": "Фильтровать по пользователю",
|
||
"kind": "Фильтровать по типу (dashboard|api-key|mcp|a2a)",
|
||
"active": "Показывать только активные сеансы",
|
||
"limit": "Максимальное количество результатов (по умолчанию: 100)"
|
||
},
|
||
"expire": {
|
||
"yes": "Пропустить подтверждение"
|
||
},
|
||
"expireAll": {
|
||
"user": "Пользователь, чьи сеансы нужно завершить",
|
||
"yes": "Пропустить подтверждение"
|
||
}
|
||
},
|
||
"tags": {
|
||
"description": "Управление тегами ресурсов",
|
||
"add": {
|
||
"color": "Цвет тега (шестнадцатеричный код или название)",
|
||
"description": "Описание тега"
|
||
},
|
||
"remove": {
|
||
"yes": "Пропустить подтверждение"
|
||
},
|
||
"assign": {
|
||
"tag": "Название тега",
|
||
"to": "Целевой ресурс в формате type:id (например, provider:openai)"
|
||
},
|
||
"unassign": {
|
||
"tag": "Имя тега",
|
||
"from": "Исходный ресурс в формате type:id"
|
||
}
|
||
},
|
||
"openapi": {
|
||
"description": "Доступ к спецификации OmniRoute OpenAPI и её тестирование",
|
||
"dump": {
|
||
"description": "Вывести спецификацию OpenAPI в stdout или файл",
|
||
"format": "Формат вывода: yaml|json (по умолчанию: yaml)",
|
||
"out": "Сохранить по указанному пути к файлу"
|
||
},
|
||
"validate": {
|
||
"description": "Проверить спецификацию OpenAPI"
|
||
},
|
||
"try": {
|
||
"description": "Протестировать конечную точку API через спецификацию",
|
||
"method": "Метод HTTP (по умолчанию: GET)",
|
||
"body": "Путь к JSON-файлу с телом запроса",
|
||
"query": "Параметр запроса в формате key=value (можно указывать несколько раз)",
|
||
"header": "Заголовок в формате key=value (можно указывать несколько раз)"
|
||
},
|
||
"endpoints": {
|
||
"description": "Показать все конечные точки API",
|
||
"search": "Фильтровать по пути или описанию"
|
||
},
|
||
"paths": {
|
||
"description": "Показать все пути API"
|
||
}
|
||
},
|
||
"combo": {
|
||
"title": "Комбинации",
|
||
"switched": "Активная комбинация: {name}",
|
||
"created": "Комбинация создана: {name}",
|
||
"deleted": "Комбинация удалена: {name}",
|
||
"noCombos": "Комбинации не настроены.",
|
||
"confirmDelete": "Удалить комбинацию {name}?",
|
||
"suggest": {
|
||
"description": "Подобрать лучшую комбинацию для задачи с помощью оценки ИИ",
|
||
"task": "Описание задачи",
|
||
"maxCost": "Максимальная стоимость запроса в долларах США",
|
||
"maxLatencyMs": "Максимальная задержка в миллисекундах",
|
||
"weights": "Веса оценки в формате JSON, например {\"latency\":0.7,\"cost\":0.3}",
|
||
"top": "Количество лучших кандидатов для отображения (по умолчанию: 5)",
|
||
"explain": "Вывести обоснование в stderr",
|
||
"switch": "Активировать комбинацию с наивысшим рейтингом"
|
||
}
|
||
},
|
||
"oneproxy": {
|
||
"description": "Управление пулом вышестоящих прокси-серверов OneProxy",
|
||
"stats": {
|
||
"provider": "Фильтровать по провайдеру",
|
||
"period": "Период времени (по умолчанию: 24h)"
|
||
},
|
||
"fetch": {
|
||
"description": "Получить прокси-серверы из пула",
|
||
"count": "Количество прокси-серверов для получения (по умолчанию: 1)",
|
||
"type": "Тип прокси: http|socks5 (по умолчанию: http)"
|
||
},
|
||
"rotate": {
|
||
"description": "Принудительно сменить прокси",
|
||
"provider": "Провайдер, для которого нужно сменить прокси",
|
||
"connectionId": "Идентификатор конкретного подключения для смены прокси"
|
||
},
|
||
"config": {
|
||
"description": "Показать или обновить конфигурацию OneProxy",
|
||
"enabled": "Включить пул прокси (true|false)",
|
||
"poolSize": "Размер пула",
|
||
"providerSource": "URL провайдера прокси",
|
||
"rotationPolicy": "Политика ротации: sticky|per-request|periodic"
|
||
},
|
||
"pool": {
|
||
"description": "Показать текущий пул прокси с метриками"
|
||
}
|
||
},
|
||
"open": {
|
||
"description": "Открыть указанную страницу панели управления OmniRoute в браузере",
|
||
"url": "Только вывести URL, не открывая браузер"
|
||
},
|
||
"telemetry": {
|
||
"description": "Получить доступ к агрегированным данным телеметрии",
|
||
"summary": {
|
||
"description": "Показать сводку агрегированной телеметрии",
|
||
"period": "Период времени: 24h|7d|30d (по умолчанию: 24h)",
|
||
"compareTo": "Сравнить с предыдущим периодом"
|
||
},
|
||
"export": {
|
||
"description": "Экспортировать события телеметрии в JSONL",
|
||
"out": "Путь к выходному файлу (по умолчанию: telemetry.jsonl)",
|
||
"period": "Период времени для экспорта (по умолчанию: 7d)"
|
||
}
|
||
},
|
||
"sync": {
|
||
"description": "Синхронизировать конфигурацию между экземплярами OmniRoute",
|
||
"push": {
|
||
"description": "Отправить конфигурацию в облако или удалённый экземпляр",
|
||
"target": "Цель (cloud или context:name)",
|
||
"bundle": "Компоненты пакета для синхронизации",
|
||
"dryRun": "Предварительный просмотр без применения"
|
||
},
|
||
"pull": {
|
||
"description": "Получить конфигурацию из облака или удалённого экземпляра",
|
||
"source": "Источник (cloud или context:name)",
|
||
"merge": "Объединить с существующей конфигурацией",
|
||
"replace": "Заменить существующую конфигурацию",
|
||
"dryRun": "Предварительный просмотр без применения"
|
||
},
|
||
"diff": {
|
||
"source": "Исходный контекст",
|
||
"target": "Целевой контекст"
|
||
},
|
||
"bundle": {
|
||
"description": "Экспортировать конфигурацию в файл пакета",
|
||
"include": "Включаемые компоненты (через запятую)"
|
||
},
|
||
"import": {
|
||
"description": "Импортировать файл пакета",
|
||
"dryRun": "Проверить без применения"
|
||
},
|
||
"initialize": {
|
||
"fromCloud": "Инициализировать из облачной резервной копии"
|
||
},
|
||
"tokens": {
|
||
"description": "Управлять токенами синхронизации",
|
||
"create": {
|
||
"name": "Имя токена",
|
||
"scope": "Область действия токена",
|
||
"ttl": "Срок действия токена (например, 30d)"
|
||
},
|
||
"revoke": {
|
||
"yes": "Пропустить подтверждение"
|
||
}
|
||
},
|
||
"resolve": {
|
||
"description": "Разрешить конфликты синхронизации в интерактивном режиме"
|
||
}
|
||
},
|
||
"config": {
|
||
"contexts": {
|
||
"description": "Управлять контекстами/профилями сервера (add, use, list, show, remove, rename, export, import)"
|
||
},
|
||
"lang": {
|
||
"description": "Управлять языком интерфейса CLI",
|
||
"getDescription": "Показать код текущего активного языка",
|
||
"setDescription": "Установить язык интерфейса и сохранить его в конфигурации",
|
||
"listDescription": "Показать все доступные языки",
|
||
"listTitle": "Доступные языки",
|
||
"current": "Язык: {code} ({name})",
|
||
"saved": "Установлен язык {code} ({name}).",
|
||
"noCode": "Необходимо указать код языка. Выполните «omniroute config lang list», чтобы просмотреть доступные коды.",
|
||
"unknown": "Неизвестный код языка: {code}. Выполните «omniroute config lang list», чтобы просмотреть доступные коды.",
|
||
"alreadySet": "Язык уже установлен на {code}.",
|
||
"envHint": "Совет: вы также можете задать OMNIROUTE_LANG={code} в переменных окружения."
|
||
}
|
||
},
|
||
"completion": {
|
||
"description": "Создать или установить сценарии автодополнения для командной оболочки",
|
||
"zsh": "Вывести сценарий автодополнения для zsh",
|
||
"bash": "Вывести сценарий автодополнения для bash",
|
||
"fish": "Вывести сценарий автодополнения для fish",
|
||
"install": "Глобально установить сценарий автодополнения для обнаруженной командной оболочки",
|
||
"refresh": "Обновить кеш комбинаций, провайдеров и моделей"
|
||
},
|
||
"logs": {
|
||
"description": "Транслировать или экспортировать журналы запросов",
|
||
"follow": "Транслировать журналы в реальном времени",
|
||
"filter": "Фильтр по уровню (error,warn,info), значения разделяются запятыми",
|
||
"lines": "Количество строк для получения",
|
||
"timeout": "Время ожидания подключения в мс",
|
||
"baseUrl": "Базовый URL API OmniRoute",
|
||
"requestId": "Фильтр по идентификатору запроса",
|
||
"apiKey": "Фильтр по ключу API",
|
||
"combo": "Фильтр по названию комбинации",
|
||
"status": "Фильтр по коду состояния HTTP",
|
||
"durationMin": "Минимальная длительность запроса в мс",
|
||
"durationMax": "Максимальная длительность запроса в мс",
|
||
"export": "Сохранить журналы в файл (json/jsonl/csv)",
|
||
"exported": "Журналы сохранены в {path}",
|
||
"stopped": "Трансляция журналов остановлена.",
|
||
"streamError": "Ошибка трансляции журналов: {message}"
|
||
},
|
||
"tray": {
|
||
"description": "Управление значком в системном трее",
|
||
"show": "Показать значок в трее (если сервер запущен с параметром --tray)",
|
||
"hide": "Скрыть значок в трее",
|
||
"quit": "Завершить работу OmniRoute через трей"
|
||
},
|
||
"autostart": {
|
||
"description": "Управление автозапуском OmniRoute при загрузке системы (Linux: пользовательская служба systemd)",
|
||
"enable": "Включить автозапуск при загрузке системы",
|
||
"disable": "Отключить автозапуск при загрузке системы",
|
||
"toggle": "Переключить автозапуск при загрузке системы",
|
||
"status": "Показать состояние автозапуска"
|
||
},
|
||
"runtime": {
|
||
"description": "Управление нативными зависимостями среды выполнения",
|
||
"check": "Проверить состояние нативных зависимостей в каталоге среды выполнения",
|
||
"repair": "Переустановить нативные зависимости в каталоге среды выполнения",
|
||
"repair_force": "Принудительно переустановить, даже если зависимости исправны",
|
||
"clean": "Удалить каталог среды выполнения (освободить место на диске)",
|
||
"clean_yes": "Пропустить подтверждение"
|
||
},
|
||
"repl": {
|
||
"description": "Интерактивный многошаговый REPL с LLM",
|
||
"model": "Используемая модель (по умолчанию: auto)",
|
||
"combo": "Название используемой комбинации",
|
||
"system": "Системный промпт",
|
||
"resume": "Возобновить сохранённый сеанс по имени"
|
||
},
|
||
"plugin": {
|
||
"description": "Управление плагинами CLI (omniroute-cmd-*)",
|
||
"list": "Показать установленные плагины",
|
||
"install": "Установить плагин из npm или по локальному пути",
|
||
"remove": "Удалить установленный плагин",
|
||
"info": "Показать сведения об установленном плагине",
|
||
"search": "Найти доступные плагины в реестре npm",
|
||
"update": "Обновить установленные плагины",
|
||
"scaffold": "Создать шаблон нового плагина"
|
||
},
|
||
"launch": {
|
||
"description": "Запустить Claude Code с подключением к OmniRoute (локально или удалённо, с --profile)",
|
||
"token": "Токен, который должен отправлять клиент Claude (ANTHROPIC_AUTH_TOKEN)",
|
||
"notRunning": "OmniRoute недоступен на порте {port}. Запустите его командой 'omniroute serve'.",
|
||
"notFound": "CLI 'claude' не найден в PATH."
|
||
},
|
||
"run": {
|
||
"description": "Запустить поддерживаемый целевой CLI через OmniRoute"
|
||
},
|
||
"setupClaude": {
|
||
"description": "Создать профили Claude Code в ~/.claude/profiles на основе каталога моделей OmniRoute"
|
||
},
|
||
"connect": {
|
||
"description": "Подключиться к удалённому серверу OmniRoute и перейти в удалённый режим"
|
||
},
|
||
"tokens": {
|
||
"description": "Управление токенами доступа CLI с ограниченной областью действия (удалённый режим)"
|
||
},
|
||
"configure": {
|
||
"description": "Выбрать провайдера и модель на активном сервере и настроить поддерживаемый локальный CLI"
|
||
},
|
||
"launchCodex": {
|
||
"description": "Запустить Codex CLI с подключением к OmniRoute (локально или на удалённом VPS)"
|
||
},
|
||
"setupCodex": {
|
||
"description": "Создать файлы профилей в ~/.codex на основе актуального каталога моделей OmniRoute"
|
||
},
|
||
"packs": {
|
||
"description": "Управление дополнительными пакетами среды выполнения (ML / автоматизация браузера)",
|
||
"listDescription": "Показать дополнительные пакеты и состояние их установки",
|
||
"installDescription": "Установить дополнительный пакет в DATA_DIR",
|
||
"verifyDescription": "Проверить установленные пакеты по поставляемому индексу контрольных сумм",
|
||
"removeDescription": "Удалить установленный дополнительный пакет",
|
||
"sourceOpt": "Каталог, содержащий данные пакетов и индекс пакетов",
|
||
"warnNoIndex": "optional-packs.index.json не найден — установка и проверка недоступны в этой рабочей копии (он входит в поставку настольных сборок)",
|
||
"errUnknown": "неизвестный пакет: {name}",
|
||
"errNoIndex": "индекс пакетов не найден; укажите --source <dir>, содержащий данные пакета (в настольных сборках он поставляется рядом с приложением)",
|
||
"installed": "пакет \"{name}\" установлен и проверен в {dir}",
|
||
"restartHint": "перезапустите сервер OmniRoute (или настольное приложение), чтобы среда выполнения подхватила пакет",
|
||
"removed": "пакет «{name}» удалён",
|
||
"notInstalled": "пакет «{name}» не был установлен",
|
||
"verifyOk": "все установленные пакеты проверены",
|
||
"verifyFailed": "не удалось проверить пакеты: {count}",
|
||
"noneInstalled": "дополнительные пакеты не установлены"
|
||
}
|
||
}
|