chore: isolate shared dsh plugins into independent monorepo
Some checks failed
build-and-publish / build-test (push) Failing after 1m6s
build-and-publish / publish (push) Has been skipped

This commit is contained in:
2026-08-26 22:44:31 +07:00
parent 0e0b68fed5
commit 81159a22e8
37 changed files with 3456 additions and 2 deletions

View File

@@ -1,3 +1,66 @@
# dsh-plugins
# dsh-plugins — shared DeepSeek Harness plugins monorepo
Shared DeepSeek Harness plugins monorepo - published to Gitea npm registry
Общее монорепо кастомных плагинов для 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 |
## Сборка и тесты
```sh
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-реестр:
1. Убедись, что в настройках репозитория есть секрет `GITEA_NPM_TOKEN` (токен
пользователя `Coder` с правами на packages).
2. Создай git-тег с префиксом `v*` (например `v0.1.0-rc.7`) и запушь его.
3. Gitea Actions запустит job `publish`: workflow проверяет `check-published.mjs`,
какие пакеты ещё не опубликованы (идемпотентно), и публикует их в реестр.
Публикация только по тегу; пуш в `main` гоняет `build-test` без публикации.
## Установка плагина
Скрипты-установщики ставят все три плагина в активный профиль DSH, пишут в
`.npmrc` профиля scoped-registry `@deepseek-ai` → Gitea и идемпотентно
дописывают insert-записи в `cordis.patch.yml`.
### Windows
```powershell
$env:GITEA_NPM_TOKEN = "<токен>"
.\scripts\dsh-plugin-install.ps1 -Profile web
```
### bash/macOS/Linux
```bash
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` после установки.