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-реестр:
- Убедись, что в настройках репозитория есть секрет
GITEA_NPM_TOKEN(токен пользователяCoderс правами на packages). - Создай git-тег с префиксом
v*(напримерv0.1.0-rc.7) и запушь его. - Gitea Actions запустит job
publish: workflow проверяетcheck-published.mjs, какие пакеты ещё не опубликованы (идемпотентно), и публикует их в реестр.
Публикация только по тегу; пуш в main гоняет build-test без публикации.
Установка плагина
Скрипты-установщики ставят все три плагина в активный профиль DSH, пишут в
.npmrc профиля scoped-registry @deepseek-ai → Gitea и идемпотентно
дописывают 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 после установки.