dsh-rustvy
Vendor marks in the model picker plus a model list kept in step with the provider: mirrors the public catalog and logos to loopback, and regenerates the pi-ai route's models from that route's own endpoint, showing the drift before anything is written.
Install
dsh plugin --profile web add dsh-rustvy
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
Регистрация на Rustvy по реферальной ссылке автора: <https://rustvy.xyz/r/Z6LJC8FH>
При регистрации по этой ссылке вы получаете скидку 10% и бонусные токены.
Подробные условия акции: <https://rustvy.xyz/dashboard/referral>
Rustvy (dsh-rustvy)
Русский | [English](README.en.md)




Значки производителей в списке моделей DeepSeek Harness, список моделей, который
остаётся настолько же актуальным, насколько актуален сам провайдер, и несколько
ключей провайдера в одном профиле — каждый чат отправляет запросы тем, который
выбрал. Один плагин, одно зеркало, без перезапусков.
Что он делает
У плагина три задачи. Первые две работают от одного зеркала публичного каталога
провайдера; третьей зеркало не нужно — ей нужен только маршрут профиля.
Значки. Один монохромный значок производителя перед каждой строкой модели в
списке выбора — нарисованный так же, как его рисует собственная панель провайдера:
CSS-маска, заливаемая currentColor, поэтому один файл на производителя
обслуживает обе темы оформления и все состояния строки — наведение, выбор,
отключение — без цветовых вариантов.
Где · Что появляется
Меню моделей в композере · монохромный значок 16 px перед каждой строкой модели
Кнопка модели в композере · значок выбранной модели перед её названием (14 px)
Всплывающее окно команды /model · тот же значок на каждой строке
Скины, перерисовывающие список (dsh-claude-style) · тот же значок; собственная плашка скина в этой строке прячется, чтобы две плашки не встретились
Список моделей. Профиль подключается к стороннему провайдеру через вручную
объявленный маршрут @deepseek-ai/dsh-llm-pi-ai, и именно список models этого
маршрута определяет, что вообще можно выбрать в интерфейсе: harness предлагает
модель только тогда, когда её отдаёт маршрут. Список, написанный вручную, устаревает
в тот день, когда провайдер выпускает новую модель — новая невидима, а снятая с
публикации остаётся выбираемой и падает уже на запросе. Плагин читает, что отдаёт
собственный эндпоинт маршрута, превращает это в точный формат записей адаптера,
показывает расхождение с установленным списком и по команде записывает его обратно
через ctx.configEditor.
Ключи. Несколько ключей провайдера в одном профиле и свой ключ для отдельного
чата — выбираемый в панели инструментов композера, сразу за списком режимов
доступа. Ключ добавляется в самом плагине, кнопкой «+»: ни .env, ни
cordis.patch.yml, ни страницу Models трогать не нужно, а выбор переживает
перезапуск. Учётная запись DeepSeek не затрагивается: подмена касается только
маршрутов этого плагина.
Где · Что появляется
Настройки → Rustvy · раздел «API-ключи»: список ключей, кнопка «+», замена значения, переименование, проверка, назначение ключом по умолчанию, удаление
Композер, сразу за списком режимов доступа · компактный переключатель ключа этого чата, с меню и строкой «+ Добавить ключ»
Раздела ключей в меню моделей и в окне /model нет: выбор ключа живёт в одном
месте. Меню моделей вместо этого не показывает те группы провайдеров, которые
оказались клонами маршрутов этого кольца, — иначе один и тот же список моделей
повторялся бы по разу на каждый ключ.
Зачем это нужно
Потому что обе поломки маршрута, который поддерживают вручную, — тихие. Модель,
которую провайдер добавил, не появляется, и никто не говорит почему: ошибки нет,
есть только отсутствие. Модель, которую провайдер снял, по-прежнему видна, и её
выбор даёт сетевую ошибку, которая выглядит как проблема со связью, а не как
устаревшая строка в YAML-файле.
И то и другое лечится чтением данных у провайдера вместо их переписывания. Список,
который записывает этот плагин, несёт настоящие размер окна контекста, лимит
вывода, входные модальности и уровни рассуждения, поэтому модель, получившая
поддержку изображений или новый уровень мышления, описана верно в тот же день, а не
наследует запасное значение, которое кто-то когда-то угадал.
А поскольку значки берутся из того же зеркала, совершенно новая модель приходит уже
с кешированным значком своего производителя: зеркало перечитывает каталог в тот
момент, когда эндпоинт называет модель, которой оно раньше не видело, — то есть
ровно тогда, когда выходит релиз.
Третья задача — про другую тишину. Ключ провайдера — это отдельный лимит и отдельный
учёт, а профиль один, поэтому «свой ключ на каждый чат» без плагина означает либо
второй профиль, либо вторую строку в YAML, которую кто-то должен поддерживать вручную.
Вручную поддержанный клон маршрута устаревает по тем же правилам, что и написанный
вручную список моделей, — в день релиза. Кольцо ключей пишет клоны само и тем же
проходом, которым записывается список моделей, поэтому маршрут ключа не отстаёт от
маршрута профиля, а чат, отправляющий запросы другим ключом, видит ровно тот же
выбор моделей, что и его сосед.
Ничего из этого не привязано к одному провайдеру. Сайт-источник, маршрут и строка
профиля — настройки; https://rustvy.xyz и rustvy являются значениями по
умолчанию.
Установка
dsh plugin --profile web add dsh-rustvy
Либо прямо с GitHub, если нужна самая свежая ревизия, а не опубликованная версия:
dsh plugin --profile web add github:koliy82/dsh-rustvy
Голый koliy82/dsh-rustvy без схемы не принимается: разбор источника установки
знает имя в реестре, git-спецификацию, tarball и абсолютный локальный путь, а
git-спецификации нужна схема либо сокращение github:.
Подтверждение сборки не запрашивается н
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::15,最后更新 2026-11-06