dsh-plugins — shared DeepSeek Harness plugins monorepo
Общее монорепо кастомных плагинов для DeepSeek Harness. Каждый пакет собирается
изолированно (tsc → lib/) с core-зависимостями @deepseek-ai/* из публичного
npmjs и публикуется в npm-реестр Gitea https://git.byte-mate.ru/api/packages/Coder/npm/
под scope @deepseek-ai/*.
Состав
| Пакет | Версия | Назначение |
|---|---|---|
@deepseek-ai/dsh-tool-lab |
0.1.0-rc.7 |
Модельные lab-инструменты: ComfyUI imagegen, Docling OCR, Whishper STT |
@deepseek-ai/dsh-web-search-searxng |
0.1.0-rc.7 |
SearXNG-провайдер поиска для seam ctx.web |
@deepseek-ai/dsh-telegram-remote |
0.1.0 |
Удалённое управление DSH через Telegram Bot API |
Сборка и тесты
pnpm install # резолвит точные версии core-пакетов из npmjs
pnpm -r build # tsc каждого TS-пакета → lib/
pnpm -r test # vitest (шаблон *.spec.ts; *.e2e.ts исключён)
pnpm -r pack # контроль упаковки tarball
pnpm-lock.yaml фиксируется в репозитории. В корневом .npmrc нет маппинга
@deepseek-ai → Gitea — это сломало бы сборку (core тянется с npmjs).
Публикация
Пакеты публикуются в Gitea npm-реестр (https://git.byte-mate.ru/api/packages/Coder/npm/)
под scope @deepseek-ai/*. Транзитивные core-зависимости (@deepseek-ai/cordis,
dsh-settings, dsh-web, schemastery и т.д.) тянутся из публичного npmjs —
реестр Gitea не проксирует npmjs, поэтому скоуп @deepseek-ai НЕ перенаправляется
на Gitea при установке.
Через CI (рекомендуется)
- Убедись, что в настройках репозитория есть секрет
GITEA_NPM_TOKEN(токен пользователяCoderс правами на packages) — Settings → Actions → Secrets. - Создай git-тег с префиксом
v*(напримерv0.1.0-rc.7) и запушь его. - Job
publishв.gitea/workflows/publish.ymlсоберёт пакеты и опубликует те, которых ещё нет (идемпотентно черезcheck-published.mjs).
Пуш в main гоняет только build-test (сборка + тесты), публикация — по тегу.
Вручную
pnpm --filter @deepseek-ai/dsh-tool-lab publish --no-git-checks \
--registry https://git.byte-mate.ru/api/packages/Coder/npm/ \
"--//git.byte-mate.ru/api/packages/Coder/npm/:_authToken=$GITEA_NPM_TOKEN"
Установка плагина
Скрипты-установщики добавляют плагины в активный профиль DSH как прямые tarball
URL из Gitea-реестра (не скоупят @deepseek-ai — транзитивные core-зависимости
берутся из npmjs) и идемпотентно дописывают insert-записи в cordis.patch.yml.
Windows
$env:GITEA_NPM_TOKEN = "<токен>"
.\scripts\dsh-plugin-install.ps1 -Profile web
bash/macOS/Linux
export GITEA_NPM_TOKEN="<токен>"
./scripts/dsh-plugin-install.sh web
После установки перезапусти dsh. Пакет → id записи в cordis.patch.yml:
@deepseek-ai/dsh-tool-lab→tool-lab@deepseek-ai/dsh-web-search-searxng→web-search-searxng@deepseek-ai/dsh-telegram-remote→telegram-remote
Пользовательские конфиги плагинов (например, tokenFile, comfyBaseUrl) — поле
config той же insert-записи — редактируются в cordis.patch.yml после установки.