chore: isolate shared dsh plugins into independent monorepo
This commit is contained in:
67
README.md
67
README.md
@@ -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` после установки.
|
||||
Reference in New Issue
Block a user