Coder b7ac8193fa
All checks were successful
build-and-publish / build-test (push) Successful in 25s
build-and-publish / publish (push) Has been skipped
feat(telegram-remote): show transcript in Telegram only, not to AI
2026-08-27 22:50:03 +07:00

dsh-plugins — shared DeepSeek Harness plugins monorepo

Общее монорепо кастомных плагинов для DeepSeek Harness. Каждый пакет собирается изолированно (tsclib/) с 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

Сборка и тесты

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 (сборка + тесты), публикация — по тегу.

Вручную

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-labtool-lab
  • @deepseek-ai/dsh-web-search-searxngweb-search-searxng
  • @deepseek-ai/dsh-telegram-remotetelegram-remote

Пользовательские конфиги плагинов (например, tokenFile, comfyBaseUrl) — поле config той же insert-записи — редактируются в cordis.patch.yml после установки.

Description
Shared DeepSeek Harness plugins monorepo - published to Gitea npm registry
Readme 196 KiB
Languages
JavaScript 71.4%
TypeScript 26.6%
PowerShell 1.2%
Shell 0.8%