Files
dsh-plugins/README.md
Coder 8ccffb2901
All checks were successful
build-and-publish / build-test (push) Successful in 25s
build-and-publish / publish (push) Has been skipped
chore(telegram-remote): bump version to 0.2.0
2026-08-27 22:25:52 +07:00

80 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.2.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-реестр (`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 (рекомендуется)
1. Убедись, что в настройках репозитория есть секрет `GITEA_NPM_TOKEN` (токен
пользователя `Coder` с правами на packages) — Settings → Actions → Secrets.
2. Создай git-тег с префиксом `v*` (например `v0.1.0-rc.7`) и запушь его.
3. Job `publish` в `.gitea/workflows/publish.yml` соберёт пакеты и опубликует те,
которых ещё нет (идемпотентно через `check-published.mjs`).
Пуш в `main` гоняет только `build-test` (сборка + тесты), публикация — по тегу.
### Вручную
```sh
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
```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` после установки.