dsh-rustvy
在模型选择器中显示厂商标志,并让模型列表与提供方保持同步:把公开目录与标志镜像到本地回环地址,再依据路由自身的接口重新生成 pi-ai 路由的模型列表,写入之前先显示差异。
安装
dsh plugin --profile web add dsh-rustvy
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✓ |
| 2 列装 | ✓ |
| 3 挂载 | ✓ |
| 4 启动 | — |
四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
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)
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:15,最后更新 2026-11-06