# dsh-wsl-workspace [![dsh.so security](https://www.dsh.so/badge/dsh-wsl-workspace.svg)](https://www.dsh.so/artifact/dsh-wsl-workspace) [![dsh.so install](https://www.dsh.so/badge/install/dsh-wsl-workspace.svg)](https://www.dsh.so/artifact/dsh-wsl-workspace) [English](README.md) · [中文](README.zh.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Español](README.es.md) · [Português](README.pt.md) · [Русский](README.ru.md) ![alt text](image-3.png) Добавьте рабочее пространство WSL из веб-интерфейса DeepSeek Harness и запустите всю сессию агента — команды bash и чтение/запись файлов — внутри локального дистрибутива WSL с путями в формате Linux. Ничего не нужно устанавливать внутри WSL. Сессия может одновременно обращаться и к WSL, и к Windows: команды bash выполняются внутри дистрибутива WSL, а файлы Windows остаются доступными через `/mnt/<диск>` (например `/mnt/c/Users/...`). ## Установка Выберите один из трёх способов ниже, затем перезапустите `dsh web`: ```powershell # 1) npm-пакет dsh plugin --profile web add dsh-wsl-workspace # 2) Репозиторий GitHub (включает предсобранный lib/, локальная сборка не нужна) dsh plugin --profile web add https://github.com/6Mikao9/dsh-wsl-workspace # 3) Локальная папка (разработка / личное использование) dsh plugin --profile web add D:\path\to\dsh-wsl-workspace ``` После перезапуска `dsh web` рядом с Settings внизу боковой панели появится кнопка W. ## Использование Нажмите кнопку W рядом с Settings внизу боковой панели, чтобы открыть диалог «Add WSL workspace». Выберите дистрибутив, просмотрите дерево каталогов или введите абсолютный путь Linux (например `/home/me/proj`) — кнопка Check проверяет существование пути перед созданием. Язык диалога следует языку интерфейса DeepSeek Harness. Поле имени пользователя необязательно: оставьте его пустым, чтобы выполнять команды от пользователя дистрибутива по умолчанию, или укажите пользователя Linux этого дистрибутива, чтобы сессия выполнялась от его имени (эквивалент `wsl.exe -u <пользователь>`). Имя пользователя меняет только учётную запись, под которой работает инструмент bash, — инструменты файлов идут через общую папку WSL со стороны Windows и не зависят от него. Имя пользователя каждого рабочего пространства хранится в `/wsl-workspaces.json`; удалите запись (или пересоздайте рабочее пространство через диалог), чтобы вернуться к пользователю по умолчанию. Нажмите «Create & open», чтобы запустить новую сессию в рабочем пространстве. В новой сессии инструмент bash выполняет команды внутри выбранного дистрибутива, а `read`/`write`/`edit` работают с файлами WSL, поэтому каждый путь, который видит модель, — это путь Linux. Выбор режима работает как обычно: Standard, PTC, Minimal и Creative автоматически попадают на свой вариант WSL (записи вариантов WSL в селекторе двуязычные, напр. `WSL · Standard mode(标准模式)`), а файлы Windows остаются доступными из сессии через `/mnt/<диск>` (например `/mnt/c/Users/...`). ![alt text](image-2.png) ## Примечания о поведении - **Инструмент bash**: выполняется внутри дистрибутива WSL под настроенным именем пользователя (пусто = пользователь по умолчанию, часто `root`), поэтому может читать и писать в любом месте дистрибутива. Песочница Windows ACL не может обернуть `wsl.exe` — его дочерние процессы работают на стороне ядра Linux — поэтому сама WSL является границей изоляции, и политика файлов DSH не применяется к bash. - **Инструменты файлов (`read`/`write`/`edit`)**: идут через общую папку WSL 9P со стороны Windows и подчиняются политике файлов DSH. При `workspace-write` чтение работает где угодно, но запись ограничена рабочим пространством сессии; переключите политику на `danger-full-access`, чтобы разрешить запись и за его пределами. Поле имени пользователя не влияет на инструменты файлов. - Искажённый баннер пересылки порта `localhost`, который `wsl.exe` печатает в stderr, когда дистрибутив ещё не был запущен, безвреден. ## Лицензия и атрибуция MIT — см. [LICENSE](LICENSE) и [NOTICE](NOTICE). В NOTICE точно перечислено: - **Адаптированный/унаследованный исходный код**: DeepSeek Harness (MIT) — `dsh-bash-local` (механика исполнителя), `dsh-fs-local` (`WslFileSystem` наследует его) и поставляемые agent presets (читаются и преобразуются генератором вариантов); - **Ссылки на дизайн (код не копировался)**: [dsh-bash-terminal](https://github.com/MAXeaglet/dsh-bash-terminal) (MIT, подход wsl argv/WSLENV), [dsh-side-panel](https://github.com/ccq1/dsh-side-panel) (BSD-3-Clause, паттерн маршрута хоста), [vpshub](https://github.com/Sdongmaker/vpshub) (MIT, ссылка на дорожную карту). Сохраняйте `LICENSE` и `NOTICE` при распространении. ## Благодарности Особая благодарность [dsh-deep-whale](https://github.com/Small-tailqwq/dsh-deep-whale) (серия скинов 鲸鱼娘 для DSH Web · 深海女仆工坊 maid-atelier, CC BY-NC-SA 4.0): плагин скинов девушки-кита приносит в веб-интерфейс DeepSeek Harness целый набор очаровательных скинов и делает повседневное использование DSH теплее.