Skip to content
dsh.fish
Bundle

dsh-plugin-npm-run-shell

NPM Scripts Launcher for DeepSeek Harness (DSH) Web GUI with auto workspace detection and live terminal

Source
sozercaniekosmosa
License
MIT
Updated
Updated yesterday

Readme

# NPM Scripts Launcher for DeepSeek Harness (DSH)

Плагин для веб-интерфейса **DeepSeek Harness (DSH)**, который добавляет в левый нижний угол сайдбара кнопку быстрого запуска NPM-скриптов с автоопределением текущего проекта и выводом в отдельное интерактивное окно терминала.

---

## 🌟 Возможности

1. **Компактная кнопка в интерфейсе**:
   - Находится в левом нижнем углу сайдбара (рядом с настройками).
   - Заменяет собой стандартную служебную кнопку "Cordis Plugin".
   - Выполнена в виде аккуратного официального логотипа **NPM** без лишнего текста.

2. **Автоопределение и переключение Workspace**:
   - Автоматически считывает активный Workspace через хуки сессии DSH.
   - Умеет находить `package.json` как в корне проекта, так и во вложенных подпапках (например, `prj/package.json` или `src/package.json`).
   - Если открыто несколько проектов, в шапке окна доступен мгновенный переключатель-дропдаун для запуска скриптов в любом воркспейсе без необходимости переключать активный чат.

3. **Запуск в живом окне терминала**:
   - Запуск скриптов происходит через системный вызов `cmd.exe /c start "npm: <script>" cmd.exe /k npm run <script>`.
   - Открывается физическое отдельное окно командной строки Windows в директории проекта.
   - Окно остаётся открытым после выполнения команды (`/k`), позволяя просматривать логи dev-сервера, сборки, тестов или прерывать их по `Ctrl+C`.

4. **Удобный UI**:
   - Всплывающее меню аккуратно открывается вверх от футера.
   - Автоматически закрывается при клике в любое свободное место экрана.

---

## 📂 Структура файлов

```
npm-run-shell/
├── client.js          # Клиентская половина (UI попапа, хуки сессий/воркспейсов, SVG-иконка)
├── host.js            # Хостовая половина (поиск package.json, Host RPC, запуск терминала)
├── package.json       # Описание пакета и точек входа DSH
├── cordis.patch.yml   # Манифест подключения плагина к Cordis профилю
└── README.md          # Документация по установке и использованию
```

---

## 🚀 Установка на постоянной основе в DSH

Чтобы плагин запускался автоматически при каждом старте DSH (без необходимости динамического подтверждения `cordis_run`):

### Вариант 1. Через симлинк в пользовательский веб-профиль (Рекомендуемый)

1. Откройте терминал PowerShell и создайте символическую ссылку на папку плагина в `~/.dsh/profiles/web/node_modules`:

```powershell
New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.dsh\profiles\web\node_modules\npm-run-shell" -Target "D:\Dev\JS\Prj\2026\dsh-plugins\npm-run-shell" -Force
```

2. Добавьте плагин в `~/.dsh/profiles/web/package.json` в секцию `bundles`:

```json
{
  "name": "dsh-profile-web",
  "private": true,
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "dshmarket",
        "npm-run-shell"
      ],
      "patchReload": "live"
    }
  },
  "dependencies": {
    "dshmarket": "^1.65.0",
    "npm-run-shell": "workspace:*"
  }
}
```

3. Либо добавьте запись активации в файл `~/.dsh/profiles/web/cordis.patch.yml`:

```yaml
- insert:
    - id: npm-run-shell
      name: 'npm-run-shell'
```

4. Перезапустите веб-сервер DSH или обновите страницу в браузере.

---

## 🛠 Динамический запуск (в текущей сессии)

Если плагин не установлен постоянно, его всегда можно запустить на лету через вызовы Cordis Tool:
- Передайте содержимое `client.js` и `host.js` в инструмент `cordis_define`.
- Запустите полученный пакет через `cordis_run`.

Install

dsh plugin --profile web add github:sozercaniekosmosa/dsh-plugin-npm-run-shell

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source